конфигуратор через Web http-управление

Примечание : к сожалению проект куда-то подевался. Скачать не удастся.


Хочу поделиться своими попытками настроить ESP8266 ESP-01 через Web Браузер.

    имеем:
  • Ubunutu 12.04
  • Esp-01
  • CP1202 USB программатор
  • преобразователь напряжения (вход 5-25В выход настраиваемызй = 3.3В 3 А)

Обязательно запитываем ESP-01 от внешнего питания 3.3В (примерно 2А). Иначе увидим феерверк программных исключений, что ESP не может чего-то куда-то записать и т.д., с перезапусками.

Сразу скажу , что разочаровало и отняло много времени - ArduinoJson.h , формат , в котором я пытался сохранять настройки Esp8266 в файл ( при StaticJsonBuffer<1500> все вылетало с каким-то бредом).

Таким образом хранить данные решено было просто в файле парами значений XXXX=YYYY \n по принципу обычного ini файла. Кстати готовой библиотеки в ардуино я не нашел.

Для прошивки ESP-01 коротим GPIO0 на землю и включаем ESP-01 (потом GPIO0 можно отпустить). GPIO2 должен быть подтянут к 1 иначе не получиться.

В результате получается , что свободных GPIO у ESP-01 нет , т.к. GPIO0 и GPIO2 используются для выбора реджима прошивки, а других у ESP-01 не выведено для удобного подключения. На самом деле поиграть с GPIO2 1=0=1=0 и т.д. можно для проверки посылки сообщений mqtt серверу, но при условии , что при старте ESP-01 GPIO2 должен быть = 1.

Чтобы настроить ESP8266-01 используем pin 2 - если после старта ESP-01 через 2-3 сек GPIO2 закоротить на землю, то ESP8266 загружается как Wifi Access Point с ip именем в сети ESP8266-123. Пароль для соединения с ESP8266-123 "12345678". После соединения ESP8266-123 будет отвечать по ip 192.168.1.113 как web сервер. В браузере вводим http://192.168.1.113 и настраиваем параметры ESP8266 для штатного режима:

    Для штатной работы ESP8266 надо задать:
  • для входа в вашу сеть WiFi - ssid и password
  • статический ip и netmask (или оставить пустым для автоназначения через dhcp)
  • ip и номер порта для связи с mqqt сервером для обмена командами



Теперь переходим к работе с платой для разработчика Lolin , CH340,на которой встроен программатор TTL-RS232, ESP8266 ESP-12 с кучей портов, выведенных наружу. Отлично!
Странно, но достаточно питания по USB-micro входу от ПК. Вполне нормально шьется и работает!

    Небольшая неприятность -
  • WIFI.begin() OK
  • работаем ОК
  • потом reset модуль, снова WIFI.begin() и while (WiFi.status() != WL_CONNECTED) не завершается никогда

Это решает проблему :


WiFi.persistent(false);
WiFi.mode(WIFI_OFF);
WiFi.mode(WIFI_STA);
WIFI.begin();


Опять подтверждаю , что достаточно питания по USB-micro входу от ПК.

Подключаем любой датчик например к GPIO14. Подтягиваем pin к 5В. Далее датчик в какой-то момент коротит на землю этот pin и вуаля пошел message к mqqt серверу.

Тоже проверяем например с GPIO12 . Подтягиваем pin к 5В. Далее коротим на землю в какой-то момент этот pin и пошел message к mqqt серверу.