Design Principles:

Design principles are core abstract principles which we are supposed to follow while designing software architect. Remember they aren't concrete; rather abstract. They can be applied on any language, on any platform regardless of the state as long as we are within the permissible conditions.

Examples:

Encapsulate what varies.

Program to interfaces, not to implementations.

Depend upon abstractions. Do not depend upon concrete classes.

Design Patterns:

They are solutions to real world problems that pop up time and again, so instead of reinventing the wheel, we follow the design patterns that are well-proven, tested by others, and safe to follow. Now, design patterns are specific, there are terms and conditions only in which they can be applied.

Examples:

Singleton Pattern ( One class can only have one instance at a time )

Adapter Pattern ( Match interface of different classes )

The following analogy will help you understand the difference better:

Principle: We should teach others in order to educate ourselves as well as others, and overall make our nation a progressive nation.

Pattern: In our country, each medical doctor graduate is supposed to teach 6 months in a far-away village to complete his/her degree.