Беспроводной веб-сервер на базе ESP8266 | Проекты Ардуино
Беспроводной веб-сервер на базе ESP8266 | Проекты Ардуино
Этот проект беспроводного веб-сервера на базе ESP8266 построен на базе Arduino. В настоящее время ESP8266 набирает популярность в области электроники, поскольку он недорог, надежен и легко доступен на рынке. Большинство документов, относящихся к этому модулю, написаны на китайском языке, и информации, представленной в технических характеристиках, недостаточно для использования ESP8266 в приложении.
Чтобы восполнить этот пробел, люди из разных стран создали форум сообщества ESP8266, на котором дается необходимая информация о программировании и других вопросах, связанных с этим модулем.
Рис. 1 Авторский прототип беспроводного веб-сервера на базе ESP8266
ESP8266 содержит встроенные 32-битные процессоры CPU, ROM и RAM с низким энергопотреблением. Это полное и автономное сетевое решение Wi-Fi, которое может использовать программные приложения как автономное устройство или подключаться к микроконтроллеру (MCU). Модуль имеет встроенную прошивку AT Command, которую можно использовать с любым MCU через COM-порт. Отличительными особенностями ESP8266 являются:
Модуль ESP8266
Протокол 802.11 b/g/n
Прямая (P2P), программная точка доступа.
Интегрированный стек протоколов TCP/IP
Встроенные PLL, регуляторы и блоки управления питанием.
Выходная мощность +19,5 дБм в режиме 802.11b
Поддерживает разнесение антенн.
Встроенный 32-разрядный процессор с низким энергопотреблением MCU
SDIO 2.0, SPI, UART
Беспроводная связь SoC
Имеет GPIO, I2C, ADC, SPI, PWM
Максимальная частота — 80 МГц.
64 КБ инструкции RAM
96 КБ данных RAM
64 КБ загрузочного RAM
RISC-архитектура
Беспроводной веб-сервер на базе ESP8266
Принципиальные схемы Основная плата и дочерняя плата показаны на рисунках 3 и 4 соответственно. Мы использовали ESP8266 как автономное устройство. Напряжение питания модуля Wi-Fi составляет 3,3 Вольта. Дочерняя плата должна быть установлена на основной плате.
CON2 используется в качестве интерфейса COM-порта для подключения модуля к ПК, а модуль программируется с помощью преобразователя USB в последовательный порт. Если на ПК доступен физический COM-порт, преобразователь USB в последовательный порт не требуется.
Модуль ESP8266 имеет 16 контактов. Вывод 1 (RESET) подключен к 3,3 В через резистор R5, а кнопка S2 предназначена для ручного сброса. Вывод 12 режима программирования (GPIO0) подключен к 3,3 В через R3, а S1 используется для перевода модуля в режим программирования. Контакт 3 (CH_PD) подключен к 3,3 В через R8.
ESP8266 также имеет 10-битное разрешение общего назначения ADC (контакт 2). Обычно он используется для измерения напряжения датчика или аккумулятора. Его нельзя использовать во время передачи чипа, иначе напряжение может быть неточным.
Рис. 3 Принципиальная схема основной платы недорогого беспроводного веб-сервера на базе ESP8266Рис. 4 Принципиальная схема дочерней платы для схемы, показанной на рис. 3
Все контакты цифрового ввода/вывода (I/O) защищены от перенапряжения с помощью схемы мгновенного возврата, подключенной между контактной площадкой и землей. Напряжение возврата обычно составляет 6 В, а напряжение удержания — 5,8 В. Это обеспечивает защиту от перенапряжения и ESD. Выходные устройства также защищены от обратного напряжения диодами. LED1 подключен к контакту 11 (GPIO2). Контакт 6 (GPIO12) подключен к 3,3 В через R4 и снабжен кнопкой (S3) для целей отладки.
Каждый поставщик модулей Wi-Fi придерживается своей схемы расположения выходных контактов. Поэтому невозможно следовать стандартному шаблону PCB. Читатели EFY могут создать свой собственный PCB. Авторы этой статьи приобрели модуль ESP8266 (модель Sunrom № 4255) у Sunrom Technologies, и PCB разработан с учетом их требований.
Рис. 5 Окно настроек Arduino IDE
Реализовано приложение для измерения температуры в помещении с помощью датчика температуры LM35 и элемента управления LED (включение/выключение) с помощью веб-браузера. LM35 — это калиброванный датчик температуры, чувствительность которого составляет 10 милливольт/1°C, но можно также создавать индивидуальные проекты.
Рис. 6 Окно веб-страницыРис.7 Логотип EFY
ESP8266 можно использовать в домашней автоматизации, ячеистых сетях, промышленном беспроводном управлении, камерах IP, сенсорных сетях, интеллектуальных розетках питания, радионянях, носимой электронике, идентификационных метках безопасности, маяках системы определения местоположения и устройствах, определяющих местоположение.
Программное обеспечение
Мы использовали Arduino IDE для компиляции и загрузки программ на этом беспроводном веб-сервере на базе ESP8266. Сообщество ESP8266 разработало подходящий плагин для ESP8266 для использования с Arduino IDE. Плагин поддерживает три типа плат ESP8266 Wi-Fi. Это базовая плата ESP8266, плата узла MCU ESP8266 и плата разработки OLIMEX ESP8266.
Установка дополнения ESP8266 Arduino. Установите Arduino IDE (версия 1.6.5).Запустите Arduino IDE и откройте окно настроек, выбрав «Файл» -> «Настройки» (рис. 5). Выберите поле URL-адреса дополнительных менеджеров плат: и введите http://Arduino.esp8266.com/stable/package_esp8266com_index.json. Нажмите ОК.
Откройте Менеджер досок, выбрав «Инструменты» ->>gt; Доска: Arduino Uno -> Boards Manager и прокрутите вниз, чтобы найти ESP8266 от сообщества ESP8266. Выделите поле и появится кнопка «Установить». Нажмите на него. При наличии подключения к Интернету этот процесс займет около 30 минут.
Программное обеспечение простое. Процедура setup() инициализирует оборудование, настраивая последовательный порт, вывод GPIO2 в качестве выхода и GPIO12 в качестве входа. Процедура setupWiFi() настраивает секцию беспроводной связи. Функция цикла() обрабатывает запросы от клиента.
Функция size_t sendProgmem (клиент WiFiClient, const char progmem[], size_t size) отправляет данные клиенту. массив IN[ ] соответствует веб-странице (рис. 6), массив image[ ] соответствует EFYLOGO (рис. 7), а массив ES[ ] соответствует модулю (рис. 2).
Массивы создаются с помощью программы преобразования файлов в массив hexy. Оно бесплатное и его можно скачать из Интернета. При создании массива удалите расширение изображения jpg для целей декодирования. В эту статью включены все файлы jpg.
Включены подходящие процедуры для изменения и сохранения SSID и пароля. После того, как конфигурация ESP8266 выполнена для Wi-Fi, для интерфейса LCD используется 8-битная программа последовательного сдвига в регистр параллельного сдвига с использованием HCF4094.
Создание и тестирование
Односторонний PCB для основной платы показан на рис. 8, а расположение его компонентов — на рис. 9. Односторонний PCB для дочерней платы показан на рис. 10, а расположение его компонентов — на рис. 11. IC6 припаивается к нижней стороне после правильной идентификации.
Рис. 8 PCB рисунок основной платыРис. 9 Расположение компонентов основной платы
Установите программное обеспечение драйвера преобразователя USB в последовательный UART (рис. 12) и выполните тестирование по шлейфу.
Выберите универсальный модуль платы ESP8266 на панели инструментов: Arduino Uno. Arduino IDE примет вашу плату, и вы сможете объединить программу с помощью кнопки «Загрузить». Чтобы объединить программу с модулем, подключите COM-порт (CON2) основной платы к компьютеру через преобразователь последовательного сигнала в USB и выберите, а также запишите номер эмулируемого виртуального COM-порта.
Удерживая кнопку программирования S1 (GPIO0), нажмите кнопку сброса (S2). Отпустите кнопку Reset, а затем отпустите кнопку S1 (GPIO0). Теперь ESP8266 перейдет в программный режим. Нажмите кнопку «Загрузить», и программа скомпилируется, а сгенерированный bin-файл загрузится в модуль.
Рис. 12 Преобразователь USB в последовательный UART
Отключите основную плату и включите ключ Wi-Fi. Откройте гипертерминал (гипертерминал X-CTU использовался в лаборатории EFY) на ПК со скоростью передачи данных 115200 и выберите COM-порт. Удерживайте S3 и включите основную плату. Вы получите запрос на ввод SSID и пароля. Отпустите switch и введите SSID и пароль вашей сети Wi-Fi через запятую. Нажмите Enter. SSID и пароль будут храниться в EEPROM.
Для последующего использования вам не обязательно использовать S3. При подключении Wi-Fi на LCD1 будет отображаться адрес IP модуля ESP8266. Запустите браузер с адресом IP. Вы получите веб-страницу, как показано на рис. 6. Кнопки, обозначенные как LEDON и LEDOFF, предназначены для включения и выключения LED1. Такие устройства, как вентиляторы и двигатели, можно включать и выключать с помощью подходящей схемы релейного драйвера с использованием оптронов, подключенных к контакту 11 (GPIO2). Состояние контакта 6 (GPIO12) и показания температуры отображаются с помощью сценариев AJAX без обновления всей веб-страницы.
Загрузите PCB и PDF-файлы компоновки компонентов:нажмите здесь
Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов!
Подробно тут! Жалоба