Прошивка и запуск модуля ESP8266
Для начала необходимо определить сколько памяти установлено на модуле ESP8266. Встречаются варианты модулей, с установленной памятью 512 кбайт(4 мегабита) , а так же 4мбайт(32 мегабита). Редко, но попадаются с флеш памятью 1 мбайт(8 мегабит). Почти все разновидности ESP-12 и новые ESP-07 имеют на борту 4 мегабайта. Объем памяти можно определить по маркировке flash чипа, посмотреть в программе Flash Download Tool или на вкладке /debug. Маркировка имеет вид 25QXX, где XX — объем в мегабитах, например 25Q32 имеет на борту 32 мегабита=4 мегабайта.
Определение размера памяти по вкладке ip_adr/debug:
Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.
Если у вас нет купленых ключей, то прошивку можно скачать на страничке проекта, где доступны2 облегченных варианта прошивки:
-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт. Данная прошивка прошивается и в модули и с бОльшим объемом flash. Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с 512кб не поддерживаются !!
-Вариант без поддержки OTA. Подходит для любого объема flash памяти. Необходимо обязательно выбирать в прошивающей программе размер памяти 512кбайт !!
Возможность дальнейшего обновления прошивки по OTA доступна только у кого есть активированные ключи !
Прошивку можно собрать так же в конструкторе прошивки , где необходимо выбрать настройки для поддержки OTA и объема flash 1 мегабайт.
При использовании OTA и с объемом 512кб невозможно одновременно использовать множество опций конструктора, а так же использовать новые SDK, т.к. прошивка в модуль не помещается !!
Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !
Подключение модуля для прошивки
Для прошивки ESP8266 необходим USB-UART переходник или Arduino. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от ARDUINO или от USB-UART подключать не рекомендуется — модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.
Подключение ESP8266 к USB-UART: Необходимо подключить общие выводы GND(минус). RX у USB-UART на TX ESP, TX у USB-UART на RX ESP. Подключаем так же источник питания 3.3в.
Подключение ESP8266 к Arduino: Необходимо подключить общие выводы GND(минус).RX у Arduino на RX ESP, TX у Arduino на TX ESP. Подключаем так же источник питания 3.3в. RESET у Arduina необходимо подключить к GND.
На модуле ESP8266 вывод CH_EN необходимо подключить к +3.3в для того, чтобы включить чип.
GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 можно отключить от GND. Если на модуле выведен GPIO 15, то его необходимо подключить на GND через резистор 10кОм на постоянной основе !!
Прошивка модуля
Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.
Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соотвествии выбранным размером flash памяти (в байтах). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.
Прошивка через Flash download tool: Описание в разработке(Действия аналогичны).
Прошивка через esptool. Пример команды esptool.py —port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m параметр нужен только для указания размера при одномегабайтовой прошивке.
Скорость COM порта рекомендуется ставить не выше 115200.
Запуск модуля
После успешной прошивки необходимо запустить режим safe mode, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266. В эфире появится точка с именем homessmart , к которой можно подключится используя смартфон или ноутбук.
После успешного коннекта заходим по адресу http://192.168.4.1 . Настраиваем подключение на свой роутер на вкладке main веб интерфейса. Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим «Station mode». После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.
Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.
Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. По умолчанию логин esp8266, пароль 0000. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции «Full Security» и на все GET запросы управления. В режиме
На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.
Решение проблем с прошивкой
Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Если вы используйте прошивку с размером 1 мегабайт, то качаем этот бланк. Далее уже прошиваем саму прошивку снова.
У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. Обратите внимание, что если даже у вас получилось запустить прошивку в режиме 4мб, то обновление по OTA в таком режиме не пройдет — модуль не запустится после обновления. По некоторым сведениям от пользователей помогает замена чипа памяти.
Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x1)«, то это значит была прошита прошивка 1мегабайт в режиме 512кб. При этом включается режим Safe Mode и возможны сбои в работе модуля из-за таких неверных настроек. Убедитесь, что на модуле установлен необходимый размер памяти — это видно на веб вкладке ИП_АДРЕС/debug в строке Flash real size. Режим объема памяти указывается в прошивающей программе.
Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x2)«, то это модуль имеет всего 512кб flash памяти и это значит, что необходимо использовать прошивку без включенного режима 1 мегабайт или не использовать OTA. Можно так же перепаять микросхему flash памяти на более ёмкую.
ВАЖНО !! Если модуль не может получить IP адрес. Висит постоянно статус connect , то рекомендуется вписать IP адрес вручную ниже. Для этого необходимо выбрать режим Static IP и вписать IP модуля и IP шлюза(IP роутера). После этого можно заходить на модуль уже внутри сети по IP адресу, который указали в настройках..
Сохранение настроек в файл
Настройки модуля можно сохранить в файл, исключая настройки WI-FI, состояния GPIO, список датчиков DS18B20. Файл необходимо скачать по адресу ИП_АДРЕС/configsave.bin . Записывается обратно в модуль через программатор по адресу 0x3C000 для 512кб прошивки, 0x7C000 — для 1мб. Настройки можно скачать и через esptool.py используя пример ниже подставив нужный адрес.
Скачать настройки WI-FI можно по адресу ИП_АДРЕС/configsave.bin?pg=66 для 512кб, ИП_АДРЕС/configsave.bin?pg=130 для 1 мег. Скачать через esptool.py можно командой esptool.py read_flash 0x7E000 4096 mywifi_settings.bin для 512 кб (Для 1024кб адрес будет 0xfe000).
Полезные ссылки:
Видеоиструкция по настройке от Umka
homes-smart.ru
Друзья, напоминаем, что самовывозом забрать заказ можно после подтверждения менеджером.
|
arduino.ua
Модуль ESP-01(esp8266) или WiFi для начинающих.
Рано или поздно все мы приходить к тому что нам не хватает подключения к Сети в наших проектах на платформе Ардуино. Действительно как же в 21 веке без статуса Онлайн )) И тут нам на выручку приходит WiFI чип ESP8266 и готовые модули на его основе. У меня в руках самый простой модуль (для новичков) ESP-01 :
Модуль устроен достаточно просто и имеет минимальный набор выводов :
- ESP8266EX — сердце всего модуля.
- P25Q80H (или другой чип) — Flash Memory на 1 Мбайт.
- Кварц и обвязка со свето диодиками.
ESP8266EX
Китайский производитель Espressif сделал дешовый чип с интерфейсом Wi-Fi и возможностью исполнять программы из внешней флеш-памяти с интерфейсом SPI. По сути это микроконтроллер и радио модуль для Wi-Fi в одном корпусе :
- 80 MHz 32-bit процессор Tensilica.
- IEEE 802.11 b/g/n Wi-Fi. Поддерживается WEP и WPA/WPA2.
- 14 портов ввода-вывода(из них возможно использовать 11), SPI, I²C, I²S, UART, 10-bit АЦП. В нашем случае мы можем использовать только ограниченные выводы чипа.
- Питание 2,2…3,6 В. Логика и питание чипа 3.3 В, будьте внимательны !
- Интегрированный стек TCP/IP. HTML
Выводы, подключение :
Возможности чипа очень большие, будем разбираться по степенно.
Выводы модуля :
- VCC — плюс питания 3.3 В
- GND — минус питания 3.3 В
- TX — аппаратный UART.
- RX — аппаратный UART.
- RST — кратковременно подав на неё низкий логический уровень, модуль перезагрузиться. Лучше прижать ее через резистор 10 кОм к плюсу питания.
- CH_PD(или по-другому EN) — служит для перевода модуля в энергосберегающий режим, в котором он потребляет очень маленький ток. Ну и снова — не будет лишним «прижать» эту ногу резистором на 10 кОм к плюсу питания.
По умолчанию во флешь-память ужа записана заводская прошивка с поддержкой АТ команд для управления чипом. Конечно можно залить и другие прошивки, но в этой статье мы будем работать именно в таком режиме с модулем. Суть проста по UART передаем команду, получаем ответ от модуля. Для этого нам потребуется USB-to-Serial TTL конвертор что бы подключить модуль к компу. Так как у меня под рукой его нету то я буду использовать Arduino Nano в его качестве.
Питание модуля отдельный вопрос. Пиковое потребление чипа может достигать 250 мА ( в datasheet указано 170 мА при использование Tx802.11b). Внимание! Этот модуль основан на 3.3 В логике, так что придется его питать от своего источника питания. Или через резисторный делитель(1 кОм и 2 кОм) с вывода +5 Ардуино. Выводы RX и TX надо тоже подключить через делитель или через logic converter (например CD4050B).Что бы Ардуино превратить в USB-to-Serial TTL конвертор зальем в контролер пустой скетч :
void setup() { } void loop() { }
Далее Arduino нужно замкнуть RESET на GND. Это изолирует процессор от I/O пинов. Альтернатива этому удаление микросхемы из «кроватки». При этом выводы TX, RX устройства нужно подключить без перекрещивания. т.е. :
esp TX → ard TX
esp RX → ard RX
Подключаем все , открываем монитор портов в Arduino IDE и поехали.
Для простоты вы можете купить USB адаптер у наших Китайских партнеров.
AT-Команды.
Для на чало мы проверим что все работает и отправим в терминале:
AT OK
Проверим прошивку :
AT+GMR AT version:1.2.0.0(Jul 1 2016 20:04:45) SDK version:1.5.4.1(39cb9a32) Ai-Thinker Technology Co. Ltd. Dec 2 2016 14:21:16 OK
Для подключения Wi-Fi выберем режим модуля: доступны следующие режимы: 1 — STA, 2 — AP, 3 — Station+AP
AT+CWMODE=1 OK
Смотрим список точек доступа командой:
AT+CWLAP +CWLAP:(3,"MTSRouter-047188",-77,"00:1f:ce:ac:e4:de",2,-21,0) +CWLAP:(3,"RT-WiFi_2958",-93,"78:96:82:44:29:58",4,10,0) +CWLAP:(3,"Test",-63,"ac:f1:df:c9:a5:82",6,0,0) +CWLAP:(3,"TP-LINK_4E54E0",-85,"f8:1a:67:4e:54:e0",6,103,0) +CWLAP:(3,"GARNIER",-89,"60:a4:4c:df:83:38",6,-31,0) +CWLAP:(2,"Oslik",-73,"bc:f6:85:cb:d7:53",7,-9,0) +CWLAP:(3,"Keenetic-6619",-80,"e8:37:7a:9a:93:46",8,8,0) +CWLAP:(2,"beeline-router_78",-90,"fc:75:16:4a:39:42",9,-26,0) +CWLAP:(3,"ASUS",-91,"f4:6d:04:df:d3:e8",11,-14,0) +CWLAP:(4,"Beeline_2G_F14986",-83,"78:94:b4:a3:8c:cc",11,-14,0) OK
В скобках указывается: SECURITY, SSID, RSSI, BSSID, CHANNEL
SECURITY может принимать значения:
0 — OPEN, 1 — WEP, 2 — WPA-PSK, 3 — WPA2-PSK, 4 — MIXED (WPA-WPA2-PSK)
Подключаемся к нашей точке:
AT+CWJAP="Oslik","password"
WIFI CONNECTED
WIFI GOT IPOK
Посмотреть какой ip получил наш модуль:
AT+CIFSR +CIFSR:STAIP,"192.168.0.55" +CIFSR:STAMAC,"b4:e6:2d:22:f6:61" OK
Все настройки запоминаются во флешь память, сбросить настройки на заводские можно командой:
AT+RESTORE
Задать скорость UART :
AT+CIOBAUD=9600 OK
Перезагрузить модуль :
AT+RST OK ?)⸮⸮⸮@H <⸮⸮⸮⸮@H⸮⸮!`̌⸮ ⸮K⸮ZHRh|$ ⸮⸮ؤ⸮ Ai-Thinker Technology Co. Ltd. ready
Команды делятся условно на три части : системные, Wi-Fi,TCP. Полный список команд можно посмотреть в datasheep. Ну а мы перейдем к командам режима TCP-сервера. На плате ESP-01 можно запустить TCP-сервер для приема-отправки данных или она может выступать TCP-клиентом для приема-отправки данных на сервер.
Для запуска TCP-сервера выполним следующие команды:
AT+CIPMODE=0 OK
0 — not data mode (сервер может отправлять данные клиенту и может принимать данные от клиента).
1 — data mode (сервер не может отправлять данные клиенту, но может принимать данные от клиента).
Устанавливаем возможность множественных соединений:
AT+CIPMUX=1 OK
0 — single connection.
1 — multiple connection.
Запускаем сервер на порту 80:
AT+CIPSERVER=1,80 (mode,port) OK
0 — to close server
1 — to open server
Теперь можно подключиться к ESP-01 и отправить-принять какие-нибудь данные. На потребуется telnet клиент, я использую PuTTY. При подключение модуль нам сообщает что подключился клиент и показывает нам id клиента.
0,CONNECT +IPD,0,21:⸮⸮⸮⸮ ⸮⸮⸮⸮'⸮⸮⸮⸮⸮⸮
Посмотреть список активных подключений к ESP-01 можно командой AT+CIPSTATUS
Пример:
AT+CIPSTATUS +CIPSTATUS:0,"TCP","192.168.0.19",57907,80,1 OK
Закрыть активное соединение можно командой
AT+CIPCLOSE=id или все соединения AT+CIPCLOSE без параметров.
AT+CIPCLOSE=0 0,CLOSED OK
Отправляем данные с ESP-01 на ПК. Для режима Single connection отправка идет так :AT+CIPSEND=length, для режима Multiple connection отправка идет так: AT+CIPSEND=id,length.
AT+CIPSEND=0,6 (6 байт) OK > Hellow busy s... Recv 6 bytes SEND OK
Возможно эти статьи будут вам интересны.
xn--90aeniddllys.xn--p1ai
Распиновка ESP8266, различные модификации модулей на базе ESP8266 – esp8266
ESP8266 ESP-01 ESP-02 ESP-03 ESP-04 ESP-05 ESP-06 ESP-07 ESP-08 ESP-09 ESP-10 ESP-11 ESP-12
Распиновка, характеристики и отличия модулей esp8266 вы найдете в таблице ниже. Также Вас может заинтересовать распиновка чипа ESP8266EX
Информация обновлена по состоянию на 05.06.2015 г.
Самая распространенная версия модуля — это ESP-01. Иногда в сети встречается обозначение Wi07c. Как видите, на ней разведены 8 контактов: VCC 3.3v, GND, UTXD, URXD, CH_PD, GPIO0, GPIO2, GPIO6. На плате реализована PCB антенна.
Модуль ESP-01 имеет конструктивные недостатки:
- Большинство выводов SoC ESP8266EX в модуле ESP-01 находятся в «висячем» состоянии, т.е. никуда не подключены, что приводит к непредсказуемым состояниям и может приводить к повышенному потреблению и перегреву чипа.
- Модуль ESP-01 не поддерживает режим «глубокого сна» (deep_sleep)
- Модуль ESP-01 не имеет ни одной ножки, на которой нет сигналов при старте модуля, т.е. управлять им даже включением лампочки никак. Она будет моргать при включении.
Кроме модуля ESP8266 ESP-01 в продаже сейчас еще несколько модификаций: с подключением внешней антенны, с керамической антенной, с PCB антенной, без антенны. Также на разных модулях выведено разное количество GPIO.
Если вы планируете приобрести ESP8266, то мы рекомендуем вам присмотреться к ESP-07 (керамическая антенна) или к одной из модификаций ESP-12 с PCB антенной (ESD-12, ESP12E и т.д.)
Для удобства работы с беспаечными макетными платами можно использовать специальный адаптер или приобрести недорогую dev board со встроенным стабилизатором питания и подтянутыми GPIO, которая неплохо себя зарекомендовала.
Внимание! Сейчас нет единого стандарта на распиновку модулей. В разное время производители модулей использовали разные варианты распиновки. Старайтесь приобретать модули, по возможности, с подписанными пинами прямо на плате. Если пины на вашем модуле не подписаны, то требуйте у продавца описание подключения.
Внимание! Очень много модулей ESP-07, ESP-12 и других, с перепутанными GPIO4 и GPIO5.
Обсуждение модификаций модулей на нашем форуме
Модули ESP8266
ESP-01, ESP-02, ESP-03, ESP-04, ESP-05, ESP-06, ESP-07, ESP-08, ESP-09, ESP-10, ESP-11, ESP-12, ESD-12, ESP-13, WROOM, WROOM-02Фото модуля | Распиновка (pinouts) модуля | Описание модуля |
---|---|---|
ESP8266 ESP-01 | ESP8266 ESP-01 V090 pinouts ESP8266 ESP-01 V080 pinouts | ESP8266 ESP-01 V090 (он же Wi07c) самый популярный модуль. PCB антенна обеспечивает дальность — до 400м на открытом пространстве. Следует знать, что существует старая версия V080, в которой разведены только 4 контакта |
ESP8266 ESP-02 | ESP8266 ESP-02 pinouts | ESP8266 ESP-02 SMD, разъем IPX для внешней антенны |
ESP8266 ESP-03 | ESP8266 ESP-03 pinouts | ESP8266 ESP-03 SMD, керамическая антенна, разведены все доступные GPIO |
ESP8266 ESP-04 | ESP8266 ESP-04 pinouts | ESP-04 SMD, без антенны, разведены все доступные GPIO |
ESP8266 ESP-05 | ESP8266 ESP-05 pinouts | ESP-05, разведены только VCC33, GND, TX, RX, RST, миниатюрная антенна |
ESP8266 ESP-06 | ESP8266 ESP-06 pinouts | ESP-06 контактные площадки расположены снизу, сверху металлический экран |
ESP8266 ESP-07 | ESP8266 ESP-07 pinouts | ESP-07 керамическая антенна и разъем для внешней антенны, металлический экран |
ESP8266 ESP-08 | ESP8266 ESP-08 pinouts | ESP-08 как ESP-07, только без антенны |
ESP8266 ESP-09 | ESP8266 ESP-09 pinouts | ESP-09 самый маленький модуль — 10х10мм, контактные площадки расположены снизу |
ESP8266 ESP-10 | ESP8266 ESP-10 pinouts | ESP-10 patch interface, ширина модуля 10мм |
ESP8266 ESP-11 | ESP8266 ESP-11 pinouts | ESP-11 patch interface, керамическая антенна |
ESP8266 ESP-12 | ESP8266 ESP-12 pinouts | ESP-12 PCB антенна, flash память 512 кбайт |
ESD-12 (ESPD-12) Внешний вид и распиновка в точности как у ESP-12. Отличается только размером flash памяти — 4Мбайт | ||
esp-12-e | esp12-e pinouts | ESP-12-E как ESP-12 только выведено дополнительно с торца 6 пинов. Существуют еще модификации ESP-12-D и ESP-12-Q отличающиеся размером flash памяти |
esp-13 | esp-13 pinouts | ESP-13 — аналог WROOM-02 от Espressif, только производства AI-THINKER |
wroom | wroom pinouts | WROOM модуль примечателен тем, что выпущен производителем SoC ESP8266EX Espressif |
wroom-02 | wroom-02 pinouts | WROOM-02 модуль примечателен тем, что выпущен производителем SoC ESP8266EX Espressif. Имеет клон — это ESP-13 от AI-THINKER |
esp8266.ru
Прошивка и запуск модуля ESP8266
Определение размера памяти по вкладке ip_adr/debug:
Вкладка debug содержит разную полезную информацию, в том числе и реальный размер чипа флеш памяти в строке Flash real size, а так же размер памяти, установленный в прошивающей программе Flash set size, который важен для правильной поддержки OTA.
Если вы не зарегистрированы в конструкторе, то вы можете скачать собранные прошивки на главной странице, где доступны 2 облегченных варианта прошивки:
-Вариант с поддержкой OTA с объемом памяти чипа 1мбайт и выше. Необходимо обязательно выбирать в прошивающей программе размер памяти 1мбайт !! Модули с размером flash памяти 512кб не поддерживаются режимом OTA !!
-Вариант без поддержки OTA.Если размер получаемого файла(одним файлом) более 496кб, то требуется поддержка flash памяти не менее 1 мегабайта !! По сравнению с режимом OTA в этом варианте количество включенных опций можно включить значительно меньше.
Возможность дальнейшего обновления прошивки по OTA доступна только у кого есть активированные ключи !
Если у вас имеются проблемы со стартом прошивки, то обязательно смотрим ниже абзац про решение проблем с прошивкой !
Сборка прошивки в конструкторе
Конструктор позволяет собрать прошивку под свои требования, включив в прошивку только те функции и датчики, которые нужны.
Не имеет смысла включать все опции в прошивке — в этом случае прошивка может не собраться так как не влезет в модуль. Лучше прошивку пересобрать снова, если вы хотите испытать другие опции.
Некоторые опции имеют дополнительные настройки, которые находятся в значке-шестеренке. Там можно выбрать доступное количество например термостатов или других опций. При изменении количества из-за динамических настроек могут «слететь» другие опции модуля после последующего обновления. При первоначальной настройке желательно сразу выбрать нужное количество опций, чтобы таких проблем не было.
При первоначальной сборке прошивки рекомендуется воспользоваться опцией OTA , чтобы следующее обновление было возможно через интернет без использования подключения программатора. С опцией OTA количество опций можно включить больше, но требуется чтобы память на модуле была не меньше 1 мегабайта !!
При сборке прошивки можно выбирать разный SDK. Рекомендуемая версия SDK 1.3.0. В новых версиях замечена проблема с режимом точки доступа (Safe Mode)(???) , но нет проблем с надежностью связи с роутером. SDK — это набор библиотек и функций от производителя чипа для работы устройства.
После нажатия кнопки «скомпилировать» через некоторое время конструктор прошивки выдаст ссылки для скачивания:
В режиме без OTA можно прошить файлы прошивки одним файлом — тогда все настройки модуля, если они были сбросятся. Если вы обновляете прошивку и не хотите чтобы настройки удалились, то необходимо обновлять прошивку двумя файлами по адресам, которые указаны в имени файла.
В режиме OTA достаточно залить прошивку одним файлом. Но 0x81000.bin может потребоваться, если вы хотите обновить прошивку по кабелю после использования OTA, когда загружен файл user2.bin — в этом случае обновление прошивки одним файлом не обновит активную прошивку.
Подключение модуля для прошивки
Для прошивки ESP8266 необходим USB-UART переходник или Arduino. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от ARDUINO или от USB-UART подключать не рекомендуется — модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.
Подключение ESP8266 к USB-UART: Необходимо подключить общие выводы GND(минус). RX у USB-UART на TX ESP, TX у USB-UART на RX ESP. Подключаем так же источник питания 3.3в.
Подключение ESP8266 к Arduino: Необходимо подключить общие выводы GND(минус).RX у Arduino на RX ESP, TX у Arduino на TX ESP. Подключаем так же источник питания 3.3в. RESET у Arduina необходимо подключить к GND.
На модуле ESP8266 вывод CH_EN необходимо подключить к +3.3в для того, чтобы включить чип.
GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 нужно отключить от GND. Если на модуле выведен GPIO 15, то его необходимо подключить на GND через резистор 10кОм на постоянной основе !!
Если у вас модуль esp8266 имеет уже на борту USB-UART (например Wemos, NodeMCU) , то указанные выше действия проводить не требуется.
Прошивка модуля
Для начала необходимо установить драйвера для вашего USB-UART переходника или Arduinы.
Прошивка через Nodemcu Flasher: Устанавливаем на вкладке Advanced Параметр Flash size в соответствии выбранным размером flash памяти (в байтах). Режим работы flash ставим QIO (при использовании GPIO 9/10 — DIO). Остальные параметры не трогаем. Указываем на вкладке Config путь на файл прошивки с адресом 0x0000. На вкладке Operation выбираем COM порт и жмем кнопку FLASH.
Прошивка через Flash download tool: Действия аналогичны.
Прошивка через Flasher for WiFi-IoT.com http://flasher.wifi-iot.com/ . Программа имеет русскоязычный интерфейс и поддерживается как Windows, так и Linux системы. На данный момент прошивка идет только по 0x0000 адресу файла «Скачать одним файлом (0x00000)». При установленном API ключе возможна автоматическая загрузка заранее собранной прошивки напрямую из конструктора(только с режимом OTA). Для очистки памяти вместо бланка можно использовать опцию «стереть чип перед прошивкой».
Для модулей ESP8285 и модулях с памятью PN25F08B требуется установка режима памяти DOUT !!
Прошивка через esptool. Пример команды esptool.py —port /dev/ttyUSB0 write_flash -fs 8m 0x00000 esp8266.bin . где -fs 8m параметр нужен только для указания размера при одномегабайтовой прошивке.
Скорость COM порта рекомендуется ставить не выше 115200.
Перед первой прошивкой рекомендуется залить в модуль blank по адресу 0x0000 , особенно, если в модуле до этого использовалась какая либо другая прошивка.
Прошивка файла ESP INIT DATA
Рекомендуется прошить в модуль файл esp_init_data_default.bin с калибровками по умолчанию, эти настройки влияют на работу wifi и adc. В большинстве случаев модули работают корректно без этого файла. Последние SDK могут вообще не запускаться без данного файла.
Адрес прошивки файла зависит от установленного размера flash памяти:
0x7c000 для 512 kB.
0xfc000 для 1 MB.
0x3fc000 для 4 MB.
0xffc000 для 16 MB.
Так же данные настройки можно загрузить подав GET команду http://[IP]/configinit?def=1 , последние SDK сами прописывают данные настройки.
Запуск модуля
При первом включении модуль включается в режим safe mode автоматически так как не содержит имени точки доступа. В режиме safe mode в эфире появится точка с именем WiFi-IoT (в прошивках до 12.10.16 homessmart) , к которой можно подключится используя смартфон или ноутбук.
В режим safe mode еще можно попасть, замкнув между собой RX и TX и перезапустив модуль или нажать 3 раза подрят (с интервалом нажатия около секунды) кнопку RESET на ESP8266.
Далее возможны два варианта подключения к модулю:
1. Используя Captive Portal мобильное устройство выведет уведомление о подключении, при нажатии на которое происходит автоматическое открытие главной веб страницы модуля. Можно так же зайти в модуль введя в браузере адрес iot.local (или любое другое, например iot.ru). Captive Portal не поддерживается если прошивка собрана на SDK 0.9.5 !
2. После успешного коннекта заходим вручную по адресу http://192.168.4.1 используя веб браузер.
Далее настраиваем подключение на свой роутер на вкладке main веб интерфейса.Необходимо вбить в поля WiFi options данные своей точки доступа. Для подключения к роутеру выбираем режим «Station mode». После нажатия кнопки set ниже появится IP адрес, на который можно заходить внутри своей беспроводной сети.
Далее обновляем страницу и видим внизу IP адрес, на который уже можно будет заходить внутри Вашей локальной сети.
Тут же вы можете установить свой логин и пароль на странички настроек веб интерфейса. Длинна логина и пароля не более 8 символов. Пароль затребуется на все вкладки настроек. А при установленной опции «Full Security» и на все GET запросы управления. В режиме safe mode пароль не запрашивается !
На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.
Указанные выше действия выполнять не требуется, если прошивка была собрана с опцией Настройки по умолчанию , где были заранее прописаны параметры роутера и IP адрес. После успешной прошивки и перезагрузки сразу можно заходить на указанный IP адрес модуля внутри своей wi-fi сети.
Решение проблем с прошивкой
Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Далее уже прошиваем саму прошивку снова.
У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266. По некоторым сведениям от пользователей помогает замена чипа памяти.
Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x1)», то это значит была прошита прошивка 1мегабайт в режиме 512кб. При этом включается режим Safe Mode и возможны сбои в работе модуля из-за таких неверных настроек. Убедитесь, что на модуле установлен необходимый размер памяти — это видно на веб вкладке ИП_АДРЕС/debug в строке Flash real size. Режим объема памяти указывается в прошивающей программе.
Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x2)», то это модуль имеет всего 512кб flash памяти и это значит, что необходимо использовать прошивку без включенного режима 1 мегабайт или не использовать OTA. Можно так же перепаять микросхему flash памяти на более ёмкую.
ВАЖНО !! Если модуль не может получить IP адрес. Висит постоянно статус connect , то рекомендуется вписать IP адрес вручную ниже. Для этого необходимо выбрать режим Static IP и вписать IP модуля и IP шлюза(IP роутера). После этого можно заходить на модуль уже внутри сети по IP адресу, который указали в настройках..
Иногда статус connect может висеть, если тип шифрования на роутере включен, который не поддерживается чипом ESP8266.
Сохранение настроек в файл
Настройки модуля можно сохранить в файл, исключая настройки WI-FI, состояния GPIO, список датчиков DS18B20. Файл необходимо скачать по адресу ИП_АДРЕС/configsave.bin . Записывается обратно в модуль через программатор по адресу 0x3C000 для 512кб прошивки, 0x7C000 — для 1мб. Настройки можно скачать и через esptool.py используя пример ниже подставив нужный адрес.
Скачать настройки WI-FI можно по адресу ИП_АДРЕС/configsave.bin?pg=66 для 512кб, ИП_АДРЕС/configsave.bin?pg=130 для 1 мег. Скачать через esptool.py можно командой esptool.py read_flash 0x7E000 4096 mywifi_settings.bin для 512 кб (Для 1024кб адрес будет 0xfe000).
Полезные ссылки:
Видеоинструкция по настройке от Umka.
Видеоинструкция по настройке от Genia1no_prosto
Видеоинструкция по настройке от Sergiy (ArmoR)
wifi-iot.com
AT | Проверка модуля | базовая | AT | — | Если модуль успешно стартовал, то отвечает «OK» |
AT+RST | Перезапуск модуля | базовая | AR+RST | — | После успешного перезапуска возвращает «OK» |
AT+GMR | Отобразить версию прошивки. | базовая | AT+GMR | — | Версия отображается в виде 8 цифр. Первая группа 4 цифры — версия AT (например, 0022), вторая группа 4 — версия SDK (например, 0100) |
AT+GSLP | Переход в режим пониженного энергопотребления | базовая | AT+GSLP= | Пример: AT+GSLP=5000 (5сек) Для того, чтобы модуль вышел из режима сна, необходимо соединить выводы XPD_DCDC и EXT_RSTB | |
ATE | включить/выключить эхо | базовая | ATE0 ATE1 | Замечание: ATE без 0 или 1 приводит к ошибке. | |
AT+RESTORE | Сбросить на заводские настройки | базовая | AT+RESTORE | Примечание: после сброса настроек произойдет перезагрузка модуля | |
AT+UART_CUR | Настройка последовательного интерфейса для текущего сеанса (current, т.е. без сохранения во flash память) | базовая | AT+ UART_CUR= baudrate, databits, stopbits, parity, flow control | скорость 4400-4608000 биты данных 5:5 бит 6:6 бит 7:7 бит 8:8 бит стоп биты 1:1 стоп бит 2:1.5 стоп бит 3:2 стоп бит контроль четности 0: нет 1:Odd 2:EVEN flow control 0:flow control отключен 1:включен RTS 2:включен CTS 3:включены оба RTS и CTS (MTCK — UART0 CTS , MTDO — UART0 RTS) Пример: AT+UART=115200,8,1,0,0 | |
AT+UART_DEF | Команда полностью аналогична AT+UART_CUR | базовая | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CWMODE_CUR | Переключение режима wifi для текущего сеанса (current, т.е. без сохранения во flash память) | wifi | AT+CWMODE_CUR= | AT+CWMODE_CUR? AT+CWMODE_CUR=? | 1=Station (WiFi клиент), 2=SoftAP (точка доступа), 3=Оба режима (Station+SoftAP) Например, AT+CWMODE_CUR=1 |
AT+CWMODE_DEF | Команда полностью аналогична AT+CWMODE_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CWJAP_CUR | Подключение к AP, точке доступа (current, т.е. без сохранения во flash память) | wifi | AT+CWJAP_CUR =, | AT+CWJAP_CUR? Возвращает имя сети, к которой подключены | Возвращает OK или ERROR. SSID WiFi сети и пароль указываются в двойных кавычках, пароль до 64 символов ASCII. Команда недоступна в режиме SoftAP (точка доступа). Данные сети НЕ сохраняются во флеш памяти. В случае наличия в SSID или пароле специальных символов (’,’、’“’ и’\’) их необходимо экранировать обратным слешем. Например, если SSID “ab\,c” и пароль “0123456789”\” то команда примет вид AT+CWJAP_CUR =“ab\\\,c”,“0123456789\”\\” |
AT+CWJAP_DEF | Команда полностью аналогична AT+CWJAP_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CWLAP | Отобразить список доступных точек доступа | wifi | AT+CWLAP показывает все доступные точки доступа | AT+CWLAP=ssid,mac,ch показывает точки доступа, только соответствующие заданным параметрам | Выводит SSID, метод шифрования, силу сигнала, MAC адрес, номер канала. Типы шифрования: 0:Open, 1: WEP, 2:WPA_PSK, 3:WPA2_PSK, 4:WPA_WPA2_PSK Примеры: AT+CWLAP=»wifi»,»ca:d7:19:d8:a6:44″,6 или поиск WiFi сети с именем «home» AT+CWLAP=»home»,»» |
AT+CWQAP | Отключение от точки доступа | wifi | AT+CWQAP | AT+CWQAP=? тест команды | — |
AT+CWSAP_CUR | Создать SoftAP (точку доступа) для текущего сеанса | wifi | AT+CWSAP_CUR= ,,, | AT+CWSAP_CUR? возвращает текущие параметры точки доступа | Команда доступна только когда модуль находится в режиме SoftAP (точка доступа). Требуется AT+RST. SSID и пароль указываются в двойных кавычках. Пароль не более 64 символов. Типы шифрования: 0:Open, 2:WPA_PSK, 3:WPA2_PSK, 4:WPA_WPA2_PSK (Шифрование WEP недоступно в этой версии) Пример: AT+CWSAP_CUR=»ESP8266″,»1234567890″,5,3 |
AT+CWSAP_DEF | Команда полностью аналогична AT+CWSAP_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CWLIF | Отобразить IP адреса станций, подключенных к ESP8266 SoftAP точке доступа | wifi | AT+CWLIF | — | (только для режимов 2-SoftAP и 3-Station+SoftAP) |
AT+CWDHCP_CUR | Включить или выключить DHCP сервер для текущего сеанса | wifi | AT+CWDHCP_CUR=, | 0 : ESP8266 SoftAP 1 : ESP8266 station 2 : SoftAP и station 0 : Выключить DHCP 1 : Включить DHCP Пример: AT+CWDHCP_CUR=0,1 | |
AT+CWDHCP_DEF | Команда полностью аналогична AT+CWDHCP_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CWAUTOCONN | Автоматическое подключение к точке доступа (сохраняется во флеш память) | wifi | AT+CWAUTOCONN= | 0 : не подключаться автоматически к точке доступа после старта модуля 1 : подключаться автоматически к точке доступа после старта модуля По умолчанию ESP8266 station автоматически подключается к точке доступа | |
AT+CIPSTAMAC_CUR | посмотреть/установить MAC адрес в режиме station для текущего сеанса | wifi | AT+CIPSTAMAC= | AT+CIPSTAMAC_CUR? отображает текущий MAC адрес Station | Пример: AT+CIPSTAMAC_CUR=»18:fe:35:98:d3:7b» |
AT+CIPSTAMAC_DEF | Команда полностью аналогична AT+CIPSTAMAC_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CIPAPMAC_CUR | посмотреть/установить MAC адрес в режиме SoftAP (точка доступа) для текущего сеанса | wifi | AT+CIPAPMAC_CUR= | AT+CIPAPMAC_CUR?отображает текущий MAC адрес точки доступа SoftSP | Пример: AT+CIPAPMAC_CUR=»1a:fe:36:97:d5:7b» |
AT+CIPAPMAC_DEF | Команда полностью аналогична AT+CIPAPMAC_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CIPSTA_CUR | посмотреть/установить IP адрес в режиме station для текущего сеанса | wifi | AT+CIPSTA_CUR=[,,] | AT+CIPSTA_CUR?отображает текущий IP адрес station | ip — ip адрес в виде строки, — шлюз по умолчанию, — маска подсети. Пример: AT+CIPSTA_CUR=»192.168.6.100″,»192.168.6.1″,»255.255.255.0″ |
AT+CIPSTA_DEF | Команда полностью аналогична AT+CIPSTA_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CIPAP_CUR | Посмотреть/установить IP адрес в режиме SoftAP (точка доступа) для текущего сеанса | wifi | AT+CIPAP_CUR= | AT+CIPAP_CUR?отображает текущий IP адрес SoftAP (точки доступа) | Пример: AT+CIPAP_CUR=»192.168.5.1″ |
AT+CIPAP_DEF | Команда полностью аналогична AT+CIPAP_CUR | wifi | Параметры команды сохраняются во флеш память и загружаются при следующем старте модуля. | ||
AT+CWSTARTSMART | Команда запускает процесс SmartConfig | wifi | AT+CWSTARTSMART = | — 1:ESP_TOUCH 2:AirKiss 1. Прочтите дополнительную документацию о SmartConfig от Espressif. | |
AT+CWSTOPSMART | Команда останавливает процесс SmartConfig | wifi | AT+CWSTOPSMART | Независимо от результатов работы команды AT+CWSTARTSMART всегда используйте после ее завершения команду AT+CWSTOPSMART для освобождения ресурсов | |
AT+CIPSTATUS | Отобразить статус подключения | TCP/IP | AT+CIPSTATUS | — | Возвращает =ID соединения 0-4, =тип соединения (2 — получен IP, 3 — подключен, 4 — отключен) “TCP” или “UDP”, =удаленный IP адрес, =удаленный порт,=тип связи: 0: подсоединен как клиент, 1: как сервер |
AT+CIPSTART | Установить подключение TCP или UDP или получить информацию о текущем соединении | TCP/IP | 1. Одиночное подключение (+CIPMUX=0) AT+CIPSTART= ,, [,(),()] 2. Множественное подключение: (+CIPMUX=1) AT+CIPSTART= , [,(),()] | AT+CIPSTART=? | ID соединения 0-4, =TCP или UDP, =IP адрес удаленного хоста, = порт удаленного хоста. [] только для UDP [] только для UDP Возвращает «OK», «ERROR» или «ALREADY CONNECT» 0 : destination peer entity of UDP will not change. 1 : destination peer entity of UDP can change once. 2 : destination peer entity of UDP is allowed to change. используется только совместно Пример: AT+CIPSTART=»TCP»,»192.168.101.110″,1000 Дополнительная информация в документе «Espressif AT Command Examples» |
AT+CIPSEND | Отправить данные | TCP/IP | 1. Одиночное подключение (+CIPMUX=0) AT+CIPSEND= 2. Множественное подключение: (+CIPMUX=1) AT+CIPSEND= , 3. Для «unvarnished transmission mode» AT+CIPSEND | AT+CIPSEND=? только для теста | Длина данных в пакете до 2048 байт. После получения данной команды модуль выводит приглашение «>» и переходит в режим приема данных через UART, после приема данных необходимой длины передает их в радиоканал. При успешной передаче возвращает «SEND OK». При неудаче «ERROR». В режиме «unvarnished transmission mode» прервать режим приема данных и перейти в командный режим можно последовательностью «+++» в отдельном пакете. Между пакетами интервал 20мс. Примеры можно найти в документе “Espressif AT Command Examples” |
AT+CIPCLOSE | Закрыть соединение TCP или UDP | TCP/IP | 1. Множественное подключение: (+CIPMUX=1) AT+CIPCLOSE= 2. Одиночное подключение (+CIPMUX=0) AT+CIPCLOSE | AT+CIPCLOSE=? возвращает OK | Возвращает «LINK IS NOT» или «UNLINK» если ID соединения уже разорвано, ERROR если соединения нет. Если в режиме клиента =5, то закрываются все соединения |
AT+CIFSR | Отобразить локальные IP адреса, адрес, который получили от точки доступа, к которой подключены и IP адрес ESP8266 SoftAP (локальной точки доступа) | TCP/IP | AT+CIFSR | AT+CIFSR=? Только для теста | Возвращает IP адрес ESP8266 SoftAP и IP address ESP8266 Station |
AT+CIPMUX | Выбрать режим одиночного или множественных подключений | TCP/IP | AT+CIPMUX= | AT+CIPMUX? Возвращает текущий режим 1 или 0 | 0=одиночные подключение, 1=множественные подключения. Изменить режим можно только после закрытия всех подключений. Если запущен сервер, то требуется перезагрузка модуля. “AT+CIPMUX=1” команда доступна только при “AT+CIPMODE=0” |
AT+CIPSERVER | Запустить (перезапустить) TCP сервер | TCP/IP | AT+CIPSERVER= [, ] | — | 0=сервер отключен, 1=сервер запущен. Порт указывать необязательно, по умолчанию: 333. Для запуска сервера модуль должен быть в режиме множественных подключений AT+CIPMUX=1. Примеры: AT+ CIPMUX=1 AT+CIPSERVER=1,1001 |
AT+CIPSTO | Установить/посмотреть таймаут сервера | TCP/IP | AT+CIPSTO= | AT+CIPSTO? возвращает установленный таймаут | таймаут в секундах от 0 до 7200. Пример: AT+CIPMUX=1 AT+CIPSERVER=1,1001 AT+CIPSTO=10 |
AT+CIPMODE | Установить сквозной режим «unvarnished transmission mode» | TCP/IP | AT+CIPMODE= | AT+CIPMODE? | 0=обычный режим, 1=unvarnished transmission mode (режим 1 доступен только при AT+CIPMUX=0). Пример: AT+CIPMODE=1 |
AT+SAVETRANSLINK | Save transparent transmission link to Flash | AT+SAVETRANSLINK =,, | 0-normal mode 1-transparent transmission mode удаленный ip адрес удаленный порт. Пример: AT+SAVETRANSLINK=1,”192.168.6.110”,1002 | ||
AT+CIUPDATE | Обновление прошивки через облако. Модуль должен быть в режиме 1 или 3 и быть подключен к точке доступа с выходом в интернет. | TCP/IP | AT+CIUPDATE | 1 found server 2 connect server 3 got edition 4 start update | |
AT+PING | Пинг по имени хоста или IP адресу | TCP/IP | AT+PING=ip | Примеры: AT+PING=”192.168.1.1” AT+PING=”esp8266.ru” | |
+IPD | Получить данные | TCP/IP | (+CIPMUX=0) +IPD,: (+CIPMUX=1) +IPD,,: | — | 1. Одиночные подключения (+CIPMUX=1) +IPD,: 2. Множественные подключения (+CIPMUX=1) +IPD,,, Когда модуль получает данные по сети, то он их отправляет в UART командой +IPD |
esp8266.ru
Управляем со смартфона через Blynk – esp8266
Еэспэшники — вливайтесь в ряды блинкеров!
Сегодня мы за 5 минут настроим управление ESP8266 с вашего смартфона (iOS или Android) с помощью нового облачного сервиса Blink. Видео и подробности под катом.
Установите приложение Blynk на смартфон
Зарегистрируйтесь в приложении и создайте новый проект.
Создание нового проекта в Blynk
Введите название проекта, например ESP8266. В поле Hardware Model выберите ESP8266. (надеюсь, что вы заметите впечатляющий список поддерживаемого оборудования) Автоматически сгенерированный Auth Token отправьте на свой почтовый ящик.
Проект Blynk
После нажатия на кнопку Create вам станет доступно пустое поле для проектирования UI вашей панели управления ESP8266.
Пустой проект Blynk
Жмете на плюсик вверху справа — появится панель инструментов Widget Box для добавления виджетов на вашу панель управления. Стоит заметить, что список виджетов еще будет пополняться.
Виджеты Blynk
Для пробы выберем тип виджета Button — этот виджет сразу добавится на вашу панель. Отредактируйте его одним прикосновением. Название можно не заполнять, чуть правее можно выбрать цвет индикатора, в поле OUTPUT PIN выберите справа Digital, а слева любой свободный пин GPIO. Ниже переключите тип кнопки на Switch.
Blynk button
На моей отладочной плате к светодиодам разведено 10 GPIO — я все их подключу к панели Blynk.
Blynk
Все, интерфейс готов, пока отложите смартфон в сторонку.
Если вы еще не знакомы с Arduino IDE для ESP8266 — почитайте здесь и здесь. Установите Arduino IDE, как описано здесь.
Далее установите библиотеку Blynk в Arduino IDE. В этом вам поможет официальная инструкция. Также можете взять библиотеку самую последнюю версию прямо из репозитария и установить вручную. Далее выбираем пример ESP8266_Standalone и прописываем в нем Auth Token, который мы получили по почте, SSID и пароль вашей WiFi сети. Компилируем и заливаем скетч в ESP8266.
ESP8266 Blynk
Вот, собственно, и все.
Возвращаемся к нашему приложению на смартфоне, жмем маленький треугольничек, похожий на кнопку Play, в верхнем правом углу и переходим из режима редактирования проекта в режим управления ESP8266 и жмем созданные нами кнопочки и мигаем светодиодами, как на видео в начале статьи.
Замечания
1. Стоит отметить, что еще есть возможность использовать ESP8266 в качестве WiFi шилда для ардуино.
2. Облачный сервер Blynk — open source и может быть развернут в вашей локальной сети
P.S. Blynk на Kickstarter неплохо отработал — собрал почти 50k
Команда Blynk:
- Pasha Baiborodin — Founder and user experience design warrior
- Dmytro Dumanskiy — Co-Founder and server side guru
- Volodymyr Shymanskyy — embedded Yoda
- Max Kareta — iOs ninja
- Alex Kipar — Android samurai
- Iryna Liashchuk — Communications princess
Не могу не сообщить, что создал этот суперклассный дизайн интерфейса Vitalii Kramar
Большое еспэшное СПАСИБО вам!
Обсуждение Blynk на нашем форуме
Обсуждение Arduino IDE для ESP8266 на нашем форуме
esp8266.ru