Примечание : к сожалению проект куда-то подевался. Скачать не удастся.
Хочу поделиться своими попытками настроить 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 серверу.