- Введение в ESP8285
- Принципиальная схема платы разработки ESP
- Изготовление нашей платы разработки ESP8285
- Заказ печатной платы на PCBWay
- Сборка и программирование платы ESP8285
- Тестирование с помощью простого эскиза мигания светодиода
- Тестирование эскиза веб-сервера на ESP8285
Контроллеры ESP от Espressif становятся широко популярным выбором для проектов на основе Интернета вещей. На рынке уже доступно множество видов модулей ESP и плат для разработки, среди которых NodeMCU является наиболее популярным. Кроме того, ESP-12E, ESP01 также являются популярным выбором. Но если вы хотите сделать свой дизайн более гибким и компактным, скорее всего, нам придется разработать собственный модуль ESP на уровне микросхемы, а не напрямую использовать готовый модуль. В этой статье мы узнаем, как спроектировать схему и печатную плату для использования контроллеров ESP (ESP8285) напрямую, без использования модуля.
В этом проекте мы использовали ESP8285, потому что это очень интересный маленький чип. Это крошечный SoC (система на кристалле) с IoT (Интернетом вещей) и возможностями глубокого сна. Он имеет ту же мощность, что и его старший брат ESP8266, и в качестве бонуса поставляется со встроенной флэш-памятью объемом 1 МБ с большим количеством GPIO. Вы также можете использовать ESP8266 в качестве альтернативы, и большинство вещей, обсуждаемых в этой статье, останутся такими же.
В предыдущей статье я показал вам, как вы можете создать свою собственную антенну на печатной плате для 2,4 ГГц, используя в качестве примера тот же чип ESP8285. Вы можете прочитать эту статью, чтобы узнать о конструкции антенны для ESP8266 / ESP8285.
Итак, в этой статье я расскажу, как работают все схемы, и, наконец, будет видео, объясняющее все это. Я также подробно рассмотрел полную процедуру проектирования и заказа печатных плат у PCBWay для нашей конструкции модуля ESP.
Введение в ESP8285
Если вы не знаете об этом универсальном чипе ESP8285, вот краткое объяснение со списком функций. ESP8285 - это небольшой чип со встроенной флэш-памятью 1 МБ и оперативной памятью, он очень похож на модуль ESP8286, ESP-01, но внутренняя флэш-память делает его намного более компактным и дешевым.
В этом чипе находится 32-битный базовый процессор Tensilica L106 Diamond, и то же самое касается ESP8266, поэтому весь код для ESP8266 может быть прошит прямо на этот чип без каких-либо изменений, и он имеет тот же сетевой стек, что и доза ESp8266..
ESP8285 объединяет антенные переключатели, ВЧ балун, усилитель мощности, малошумящий приемный усилитель, фильтры и модули управления питанием. Компактный дизайн минимизирует размер печатной платы и требует минимального количества внешних схем. Если вы хотите узнать больше об этой ИС, вы всегда можете проверить техническое описание ESP8285 устройства в Espressif Systems.
Принципиальная схема платы разработки ESP
Схема очень проста, и я разбил ее для лучшего понимания. На приведенной ниже схеме ESP показана вся схема, как вы можете видеть, есть восемь функциональных блоков, я пройдусь по каждому из них и объясню каждый блок.
ESP8285 SOC:
В основе проекта лежит SoC ESP8285, здесь определены все GPIO и другие необходимые соединения.
Фильтр питания: на этой ИС есть 7 контактов питания, первый - это контакт питания для АЦП и IO. Я замкнул их вместе и использовал конденсатор фильтра мощности 47 мкФ и развязывающий конденсатор 0,1 мкФ для фильтрации входа 3,3 В постоянного тока.
ПИ-фильтр: ПИ-фильтр является одним из наиболее важных блоков этой конструкции, потому что он отвечает за питание ВЧ-усилителя и МШУ, любой внутренний или внешний шум может быть описательным для этого раздела, поэтому для этого ВЧ-раздел не будет работать. Вот почему очень важен фильтр нижних частот для секции LNA. Вы можете узнать больше о фильтрах PI, перейдя по ссылке.
Кварцевый осциллятор: кварцевый генератор 40 МГц служит источником тактовой частоты для ESP8285 SoC, а развязывающие конденсаторы на 10 пФ были добавлены в соответствии с рекомендациями таблицы.
Секция МШУ: Еще одна наиболее важная секция этой цепи - секция МШУ; здесь антенна PCB подключается к физическому контакту ESP. Как рекомендовано в таблице данных, используется конденсатор 5,6 пФ, и он должен нормально работать как согласующая цепь. Но я добавил два заполнителя для двух катушек индуктивности, как будто в случае несоответствия схемы согласования я всегда могу вставить несколько катушек индуктивности, чтобы настроить значения в соответствии с импедансом антенны.
В секции LNA также есть две перемычки для печатной платы с разъемом UFL. Антенна на печатной плате установлена по умолчанию, но если вашему приложению требуется немного больший диапазон, вы можете отпаять перемычку печатной платы и закоротить перемычку для разъема UFL, и вы можете просто так подключить внешнюю антенну.
Разъем входа батареи:
Вы можете видеть выше, я поместил три типа разъемов для батарей параллельно, потому что, если вы не смогли найти один, вы всегда можете установить другой.
Заголовки GPIO и заголовки программирования:
Заголовки GPIO предназначены для доступа к контактам GPIO, а заголовок программирования предназначен для прошивки основного Soc.
Схема автоматического сброса:
В этом блоке два транзистора NPN, MMBT2222A образуют схему автоматического сброса, когда вы нажимаете кнопку загрузки в среде Arduino IDE, инструмент python получает вызов, этот инструмент python является инструментом flash для устройств ESP, этот инструмент pi дает сигнал к преобразователю UART для сброса платы, удерживая вывод GPIO на земле. После этого начинается процесс загрузки и проверки.
Светодиод питания, встроенный светодиод и делитель напряжения:
Индикатор питания: индикатор питания имеет перемычку на печатной плате. Если вы используете эту плату для работы от батарей, вы можете припаять эту перемычку DE для экономии энергии.
Встроенный светодиод: многие платы для разработчиков на рынке имеют встроенный светодиод, и эта плата не является исключением; GPIO16 микросхемы подключен к встроенному светодиоду. Наряду с этим есть заполнитель для резистора 0 Ом путем заполнения резистора 0 Ом, вы подключаете GPIO16 к сбросу, и, как вы, возможно, знаете, это очень важный шаг для перевода ESP в режим глубокого сна.
Делитель напряжения: как вы знаете, максимальное входное напряжение АЦП составляет 1 В. Итак, для изменения диапазона входа на 3,3В используется делитель напряжения. Конфигурация сделана так, что вы всегда можете добавить резистор последовательно с выводом, чтобы изменить диапазон на 5 В.
HT7333 LDO:
LDO или стабилизатор напряжения с малым падением напряжения используется для регулирования напряжения на ESP8285 от батареи с минимальными потерями мощности.
Максимальное входное напряжение LDO HT7333 составляет 12 В, и оно используется для преобразования напряжения батареи в 3,3 В. Я выбрал этот LDO HT7333, потому что это устройство с очень низким током покоя. Развязочные конденсаторы 4,7 мкФ используются для стабилизации LDO.
Кнопка для режима программирования:
Кнопка подключена к GPIO0, если ваш преобразователь UART не имеет вывода RTS или DTR, вы можете использовать эту кнопку, чтобы вручную подключить GPIO0 к земле.
Подтягивающие и понижающие резисторы:
Подтягивающие и понижающие резисторы находятся там, как рекомендовано в таблице данных.
Помимо этого, при разработке печатной платы соблюдались многие нормы и правила проектирования. Если вы хотите узнать больше об этом, вы можете найти это в руководстве по проектированию оборудования для ESP8266.
Изготовление нашей платы разработки ESP8285
Схема готова, и мы можем приступить к разводке печатной платы. Мы использовали программное обеспечение для проектирования печатных плат Eagle для изготовления печатной платы, но вы можете спроектировать печатную плату с помощью предпочитаемого вами программного обеспечения. Наша конструкция печатной платы после завершения выглядит так.
Спецификацию и файлы Gerber можно загрузить по следующим ссылкам:
- Файлы Gerber для разработчика ESP8282
- Спецификация платы разработки ESP8282
Теперь, когда наш дизайн готов, пора приступить к изготовлению печатных плат. Для этого просто выполните следующие действия:
Заказ печатной платы на PCBWay
Шаг 1. Зайдите на https://www.pcbway.com/, зарегистрируйтесь, если это ваш первый раз. Затем на вкладке PCB Prototype введите размеры вашей печатной платы, количество слоев и количество требуемых печатных плат.
Шаг 2: Продолжите, нажав кнопку «Цитировать сейчас». Вы попадете на страницу, где можно установить несколько дополнительных параметров, таких как Тип платы, Слои, Материал для печатной платы, Толщина и др., Большинство из них выбраны по умолчанию, если вы выбираете какие-либо конкретные параметры, вы можете выбрать это слышно.
Как видите, нам нужны были наши печатные платы черного цвета! Итак, я выбрал черный в разделе цвета паяльной маски.
Шаг 3: Последний шаг - загрузить файл Gerber и продолжить оплату. Чтобы убедиться, что процесс проходит гладко, PCBWAY проверяет, действителен ли ваш файл Gerber, прежде чем продолжить платеж. Таким образом, вы можете быть уверены, что ваша печатная плата удобна для изготовления и будет доставлена вам в установленном порядке.
Сборка и программирование платы ESP8285
Через несколько дней мы получили нашу печатную плату в аккуратной упаковочной коробке, и качество печатной платы было как всегда хорошим. Верхний и нижний слои платы показаны ниже:
Получив плату, я сразу приступил к ее пайке. Я использовал термовоздушную паяльную станцию и много флюса для пайки основного процессора, а другие компоненты на печатной плате припаяны с помощью паяльника. Собранный модуль показан ниже.
Как только это будет сделано, я подключил свой надежный модуль FTDI для тестирования платы, загрузив эскиз, подключенные контакты и изображение платы, показанные ниже:
Модуль FTDI платы разработчика ESP8285
3,3 В -> 3,3 В
Tx -> Rx
Rx -> Tx
DTR -> DTR
RST -> RST
GND -> GND
После того, как все необходимые подключения выполнены, я настроил Arduino IDE, выбрав Generic ESP8285 Board из Tools > Board > Generic ESP8285 Module .
Тестирование с помощью простого эскиза мигания светодиода
Затем пришло время проверить плату, мигая светодиодом, для этого я использовал следующий код:
/ * ESP8285 Blink Мигает синим светодиодом на модуле ESP828285 * / #define LED_PIN 16 // Определение мигания светодиода pin void setup () {pinMode (LED_PIN, OUTPUT); // Инициализируем вывод светодиода как выход} // функция цикла выполняется снова и снова навсегда void loop () {digitalWrite (LED_PIN, LOW); // Включаем светодиод (обратите внимание, что LOW - это уровень напряжения) delay (1000); // Ждем второй digitalWrite (LED_PIN, HIGH); // Выключаем светодиод, установив напряжение HIGH delay (1000); // Ждем две секунды}
Код очень прост, сначала я определил вывод светодиода для этой платы, и он находится на GPIO 16. Затем я установил этот вывод как вывод в разделе настройки. И, наконец, в разделе цикла я включал и выключал контакт с задержкой в одну секунду между ними.
Тестирование эскиза веб-сервера на ESP8285
Когда все заработало нормально, пора протестировать скетч HelloServer из примера ESP8266WebServer. Я использую пример ESP8266, потому что большая часть кода совместима с чипом esp8285. Пример кода также можно найти внизу этой страницы.
Этот код тоже очень прост. Во-первых, нам нужно определить все необходимые библиотеки, #включают
Далее нам нужно ввести имя и пароль точки доступа.
#ifndef STASSID #define STASSID "your-ssid" #define STAPSK "your-password" #endif const char * ssid = STASSID; const char * пароль = STAPSK;
Затем нам нужно определить объект ESP8266WebServer. Пример здесь определяет его как сервер (80), (80) - это номер порта.
Затем нам нужно определить контакт для светодиода, в моем случае это был контакт № 16.
const int led = 16;
Затем определяется функция handleRoot () . Эта функция будет вызываться при вызове IP-адреса из нашего браузера.
void handleRoot () {digitalWrite (светодиод, 1); server.send (200, «текст / обычный», «привет от esp8266!»); digitalWrite (светодиод, 0); }
Далее идет функция настройки, слышите, мы должны определить все необходимые параметры, такие как:
pinMode (светодиод, ВЫХОД); // мы определили вывод светодиода как output Serial.begin (115200); // мы начали последовательное соединение со скоростью 115200 бод WiFi.mode (WIFI_STA); // мы установили режим Wi-Fi как станция WiFi.begin (ssid, password); затем мы начинаем соединение Wi-Fi Serial.println (""); // эта строка дает дополнительное пространство while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } / * в цикле while мы проверяем состояние подключения, когда ESP может подключиться к точке доступа, цикл будет тормозиться * / Serial.println (""); Serial.print («Подключено к»); Serial.println (ssid); Serial.print ("IP-адрес:"); Serial.println (WiFi.localIP ());
Затем мы печатаем имя и IP-адрес подключенного SSID в окне последовательного монитора.
server.on ("/", handleRoot); // вызывается метод on серверного объекта для обработки корневой функции server.on ("/ inline", () {server.send (200, "text / plain", "это тоже работает");}); // снова мы вызвали метод включения для / inline-примера server.begin (); // затем мы запускаем сервер с помощью метода begin Serial.println («HTTP-сервер запущен»); // и, наконец, мы печатаем инструкцию в последовательном мониторе } // что обозначает конец функции настройки void loop (void) {server.handleClient (); }
В функции цикла мы вызвали методы handleClient () для правильной работы esp.
Как только это было сделано, плате ESP8285 потребовалось некоторое время, чтобы подключиться к веб-серверу, и она успешно заработала, как и ожидалось, что ознаменовало конец этого проекта.
Полную работу платы также можно найти на видео по ссылке ниже. Надеюсь, вам понравилась эта статья и вы узнали из нее что-то новое. Если у вас есть сомнения, вы можете задать вопрос в комментариях ниже или воспользоваться нашим форумом для подробного обсуждения.