В мире появляется все больше проектов, показывающих полезность применения популярного Wi-Fi модуля ESP8266. Доступность SDK и поддержка сообществом ускоряют их появление.
В данном случае рассматривается проект, в котором показывается автономная работа ESP8266 (без внешнего контроллера, например, Arduino): запуск HTTP daemon, настройка через вебинтерфейс, использование пользовательского интерфейса для управления светодиодом, подключенным к линии GPIO модуля, использование пользовательского интерфейса для считывания данных с датчика температуры и влажности DHT22.
В мире существует несколько версий модуля ESP8266. Наиболее популярной является DIP-версия. Но у нее выведены на разъем только линии GPIO0 и GPIO2, поэтому в данном случае воспользуемся SMD-версией, где доступны все выводы.

Для более удобной работы разводку и подключение можно сделать на печатных платах для прототипирования.


Конденсатор желательно поставить для обеспечения модуля бОльшим током, поскольку переходник FTDI выдает только примерно 50 мА, а при активной работе модуля в режиме WiFi может потребоваться до 200 мА. В данном случае используется конденсатор на 1000 мкФ, хотя можно взять на 470 мкФ.
SMD-версия (ESP-03) имеет следующее расположение выводов:

Для программирования ESP8266 некоторые выводы должны быть соединены следующим образом:
1. CH_PD к VCC
2. GPIO02 к VCC
3. GPIO00 к GND
4. GPIO15 к GND
Для нормального запуска достаточно подключить CH_PD к VCC и GPIO15 к GND.
Благодаря представленному сообществом проекту «esp8266 httpd» запуск http-сервера не представляет большого труда. Зачастую для встраиваемых систем довольно сложно настроить соединение и произвести конфигурацию. Но этот проект преодолевает данные трудности благодаря предоставлению пользовательского интерфейса. Если после запуска модуль не в состоянии соединиться с WiFi сетью, используя сохраненные настройки, то автоматически активируется режим точки доступа (Access Point), и вы увидите ESP_XXXXXX, где XXXXXX будут представлять собой последние 6 цифр MAC-адреса модуля ESP8266.

Вы можете подключиться к этой открытой точке доступа и пройти по http://192.168.4.1 для сканирования WiFi сетей и ввода пароля.
Главная страница:

Страница соединения с WiFi:

Пароль будет сохранен, и после этого модуль автоматически будет подключаться к данной сети. После соединения с сетью, возможно, вам будет интересно, какой IP-адрес использует ваш ESP8266. Модуль использует DHCP, поэтому его адрес может меняться. Вы можете настроить статический IP, если ваш маршрутизатор позволяет это, либо находить IP-адрес каждый раз, когда вы хотите использовать его. В Linux’e для этого можно ввести команду:
sudo arp-scan –retry 7 –quiet –localnet –interface=wlan0 | grep -s -i 18:fe:34
Переход по IP-адресу модуля откроет такой же пользовательский интерфейс, который мы видели раньше. Ниже показаны интерфейсы для управления светодиодом и для считывания температуры и влажности с датчика DHT22.


В данном случае светодиод соединен с выводом GPIO13, но вместо него можно подключить, например, реле. Страница для DHT22 представляет собой обычную html-страницу, но она может быть и JSON-строкой, которая может периодически опрашиваться с панели http://freeboard.io/, или потоком Node-RED.
Исходный код приложения доступен здесь, в архиве также имеются бинарники, так что вы сразу же можете запрограммировать ESP8266 без использования SDK:
sudo ./esptool.py –port /dev/ttyUSB0 write_flash 0x00000 firmware/0x00000.bin
sudo ./esptool.py –port /dev/ttyUSB0 write_flash 0x40000 firmware/0x40000.bin
sudo ./esptool.py –port /dev/ttyUSB0 write_flash 0x12000 webpages.espfs
Перевод © digitrode.ru