I still use the excellent cover rules from 4e, adapted to 5e.
Determining Cover: To determine if a target has cover, choose a corner of a square you occupy (or
a corner of your attack’s origin square) and trace imaginary lines from that corner to every corner
of any one square the target occupies. If one or
two of those lines are blocked by an obstacle or an enemy, the target has 1/2 cover (a line isn’t blocked if it runs along the edge of an obstacle’s or an enemy’s square.) If three of those lines are blocked, the target has 3/4 cover. If all four lines are blocked, the target has total cover.
I also rule that cover from creatures can't be better than 1/2 cover, unless there's more than one creature in the way.