Reset для esp8266: когда необходим и способы реализации

Сброс параметров (reset) чипа ESP8266 к изначальным настройкам

26 января в 14:16

Большинство пользователей успело уже изучить и прикупить чип ESP8266-12, который был недавно выпущен Espressif. Главным достоинством разработки является её стоимость, в сравнении со стандартными платами Bluetooth-адаптерами.

Но вы не только сэкономите деньги, прикупив такой чип, а и получите плату гораздо меньших габаритов и с широким функционалом, что особенно удобно при проектировании и создании микроконтроллеров и небольших устройств. Однако даже простая плата может выдавать ошибки, лучшим решением в случае поломки будет reset для ESP8266, а в каких случаях и как его делать, мы вам расскажем ниже.

В каких случаях необходим reset для esp8266

Для начала стоит разобраться, что вообще подразумевается под «reset». В данном случае – это сброс параметров чипа к изначальным настройкам, в том числе и тех, что могли быть изменены пользователем вследствие загрузки кода и программ.

На чип изначально установлена базовая прошивка АТ, позволяющая ему взаимодействовать с другими платами и консолью Ардуино, дабы программист мог лишний раз не морочить голову с написанием вспомогательного ПО на низших языках.

Однако некоторые пользователи заходят так далеко в своих манипуляциях, что меняют различные параметры прошивки. Чаще всего это относится к разнообразным таймингам.

Не говоря уже о том, что они начинают устанавливать постороннее ПО, заменяя то, что уже хранится на чипе, дабы получить полный контроль над функционалом ESP8266.

Распиновка ESP-12

Вследствие таких манипуляций что-то может поломаться (из-за ошибок программного кода), из-за чего плата просто перестанет отвечать на посылаемые команды.

Но или, что происходит намного чаще, человек просто захочет сбросить все настройки и очистить память. И тогда ему пригодится reset и сброс всех изменений.

В данном случае это перепрошивка АТ, при которой все команды для изменения параметров, вводимые пользователем ранее, будут забыты.

Новую прошивку следует выбирать с оглядкой на то, к какой плате вы будете подключать чип в дальнейшем. Если речь об ардуино, то хорошим выбором станет «франкенштейн», позволяющий расширить функционал и упростить настройку чипа в дальнейшем.

Сам «франкенштейн» можно найти здесь — https://github.com/nekromant/esp8266-frankenstein

Дело в том, что данное ПО открывает возможность для обновления микроконтроллера и подгрузки флеш-памяти через TFTP протокол, что может здорово упростить вам жизнь. Однако сначала придётся взяться за паяльник, чтобы стереть уже заложенный в плату софт.

В самой плате нет программируемой памяти, из-за чего многие предпочитают использовать внешнюю на 512 кб. Именно на неё заливается базовая прошивка для распознавания АТ-команд через интерфейс UART.

Именно когда нарушается целостность тестового ПО и приходится заливать в флеш-память своё. Но это далеко не единственная причина для подобных действий. Дело в том, что иногда не хватает функционала, даваемого этой прошивкой, оттого она и называется «тестовой», и необходимо совершить «reset», стерев её, а затем подгрузить на плату уже свою. Но как же это сделать?

Как сделать reset для ESP8266

Прежде чем приступить, учитывайте, что при неправильном обращении плата станет вовсе бесполезной, поэтому лучше закупиться парой штук. Они пригодятся для экспериментов на время вашего обучения. Да и будут полезны, если вы делаете не одно устройство, или, например, несколько каналов связи для умного дома.

В целом, вся ответственность за любые манипуляции с чипом висит лишь на пользователе, учитывайте это, прежде чем лезть к прошивке, которая стоит на плате специально для новичков.

Если вы всё же решились сменить ПО, то для начала нам необходимо освободить память. Сделать это можно одним из двух способов.

Способ 1

Если вы не хотите лишних сложностей, то этот путь для вас. Необходимо перевести чип, при программированном замыкании, с интерфейса GPIO0 на GND, после чего подключить при помощи usb—ttl переходника к вашему ПК, заранее установив на компьютер утилиту XTCOM_UTIL (подойдёт любой её аналог).

Однако здесь могут возникнуть сложности, ведь отцепить GPIO0 от VCC выходит далеко не у всех. В зависимости от обстоятельств, задача может стать практически невыполнимой, но зачастую описанных выше действий будет достаточно, чтобы получить доступ к флеш-памяти и запрограммировать её на своё усмотрение.

Способ 2

Если же у вас возникли ожидаемые сложности, то существует более сложный, но при этом полностью рабочий способ зашить в память своё ПО.

Необходимо взять в руки припой с паяльником и попросту отсоединить память, а затем уже использовать внешний программатор.

Проще всего это сделать с помощью дешёвых китайских комбайнов, наподобие CH341А, стоят они недорого, а со своей задачей справляются на отлично.

Программатор CH341A

Установка прошивки

Неважно, каким способом вы добрались до этого момента, здесь главное – подобрать прошивку, после которой не придётся хоронить чип. Если у вас нет опыта в этом деле, выбирайте Frankenstein, его главным преимуществом является возможность свободного обновления реестров по TFTP соединению и без лишней мороки, пример которой вы можете найти выше.

Если вы всё сделаете правильно, то это был последний раз, когда паяльник лежал у вас в руках при ресете данного микроконтроллера. Найти последние версии прошивок можно на github, там же авторы приложили инструкцию по установке и базовые команды, воспринимаемые ПО.

Заключение

Если вы решите сделать для ESP8266 reset, учитывайте, что при неправильном выборе прошивки и неудачной очистке флеш-памяти микроконтроллер может попросту больше не заработать.

Однако, если процедура проведена с должной осторожностью и по описанной выше инструкции, то на выходе вы получите расширение и без того богатого функционала чипа.

Вы сможете в дальнейшем модифицировать его по своему желанию без необходимости использовать паяльник.

Особенно интересно это будет автоматизаторам и инженерам-программистам, которые хотят попробовать себя в написании низкоуровневого ПО и прошивок.

Источник: https://ArduinoPlus.ru/sbros-parametrov-esp8266/

Прошивка и запуск модуля 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 запросы управления. В режиме safe mode пароль не запрашивается !

На данной вкладке можно задать имя модулю, которое будет отображаться на главной и в системе flymon, а так же в топике на MQTT сервере.

Решение проблем с прошивкой

Иногда, после сторонних прошивок или мусора модуль может не запустится и необходимо выполнить дополнительные действия. Необходимо затереть flash память пустым бланком по адресу 0x00000. Если вы используйте прошивку с размером 1 мегабайт, то качаем этот бланк. Далее уже прошиваем саму прошивку снова.

У некоторых пользователей даже после зачистки бланком модуль не стартует или стартует только при установленном режиме 512 кб или 4мб, возможно это связано с низким качеством flash памяти или частичной её несовместимостью с чипом ESP8266.

Обратите внимание, что если даже у вас получилось запустить прошивку в режиме 4мб, то обновление по OTA в таком режиме не пройдет — модуль не запустится после обновления. По некоторым сведениям от пользователей помогает замена чипа памяти.

Если на главной странице модуля выводится сообщение «Error flash size ! (code 0x1)«, то это значит была прошита прошивка 1мегабайт в режиме 512кб.

При этом включается режим Safe Mode и возможны сбои в работе модуля из-за таких неверных настроек.

Убедитесь, что на модуле установлен необходимый размер памяти — это видно на веб вкладке ИП_АДРЕС/debug в строке Flash real size. Режим объема памяти указывается в прошивающей программе.

Читайте также:  Анемометр arduino: комплектующие, схема устройства, скетч

Если на главной странице модуля выводится сообщение «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 

Источник: http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/proshivka-i-zapusk-modulya-esp8266

ESP8266 быстрый старт

Есть у меня два модуля ESP-01, купил давно уже, на всякий случай, а тут и задача подвернулась, думаю надо их попробовать в деле.

Поначалу я даже не представлял, как будет устроена работа, на каком уровне абстракции придется работать, реализовывать ли TCP/IP стек в МК, формировать ли сетевые пакеты руками, какой вообще функционал мне предоставит модуль, ну и тому подобные переживания :).

Оказалось все очень просто, модуль представляет из себя полностью законченное сетевое устройство, он поддерживает необходимые методы шифрования и вообще реализует всю работу с TCP/IP на стороне WiFi, а с МК общается через UART посредством набора AT-команд. Т.е.

на стороне МК все предельно просто, там доступны такие удобные команды, как посмотреть список WiFi-сетей, подключиться к выбранной, открыть коннект до хоста IP на порту PORT, записать и прочитать данные из сокета, сделать пинг до хоста и т.д.

Распиновка модуля такая:также у меня есть китайска-USB-TTL адаптер, выдающий кроме 5В еще и 3.3В. Подключение модуля обещает быть проще некуда, 4 проводка и можно общаться с ним через программу-терминал. Следовательно, VCC подключаем к питанию 3.3В, GND к земле, RXD чипа к TXD адаптера, TXD чипа к RXD адаптера, CH_PD к питанию.

Втыкаю USB-адаптер в комп — модуль ожил: моргнул синим диодом и далее постоянно горит красный. Расчехляю Terminal v.1.9, ставлю 9600 бод, коннект.. ээ, дарагой.. коннект! Падлюка китайская, адаптер не пашет, COM-порта нет, дрова не ставятся, система Windows 8.1 x64.

15 минут на поиск нужных, попадается мне целая детективная история о том, как злые китайцы скопировали микросхему PL2303 и штампуют ее, не отчисляя лицензионных денег исходному производителю Prolific, зато ссылаясь на его дрова. Компания выпустила под Win8 драйвер, умеющий отличать подделку. Короче в любом случае, чипы версий HXA/XA больше не поддерживаются, а у меня оказался именно такой. Скачал я в итоге файл pl2303_hxa_xa_win8x64_181.zip, принудительная установка из архива и адаптер завелся.

Продолжаем. Питание на ESP есть, однако новой WiFi сети не вижу (фича?), при включении ESP UART моргает 1 раз, но в терминале пусто. На команду AT молчит, LED TX на адаптере моргает, значит данные уходят на модуль.

Покурил статейку http://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/#esp8266-connect

Попробовал передергивать не питание ESP, а CH_PD — получил ожидаемый мусор при старте модуля. Что ж, похоже пациент жив! Теперь надо пообщаться Мусор, однако, раз от раза может сильно отличаться по длине. То 1 символ, то 3, то целая гора.

Получить его в нормальном виде (отладочный текст) так и не вышло, ни на какой скорости. И на команду AT так и не отвечает, ни с CR+LF, ни как-то иначе.. Ресет у меня все время висел в воздухе, пробовал я его к питанию подтягивать, не помогло, так и оставил его висеть.

Один модуль я, кажется, почикал, подав ему 5В на GPIO0. Со вторым был аккуратнее, но так нифига и не получилось его завести. Ни одна из 3 программ-прошивальщиков не смогла ничего сделать с модулем. Нихрена не быстрый получился старт, как всегда собрал все возможные проблемы.

Китайский адаптер USB-TTL не внушает доверия, вероятно работает криво. Попробую другой адаптер, программатор для AVR на FTDI.

На другой день

После новой серии неудачных попыток, укорачивания проводов от программатора до чипа и подключения питания от 2xAA (мой программатор выдает только 5В) — стабильно заработал вывод отладочной инфы на скорости 74 880 бод.

И новая сеть WiFi появилась, ESP_9E606F. Линию TX на программаторе (от программатора к модулю) я подключил через резистор 1k2.

Пример вывода отладки:

Первый вчерашний модуль я пометил MD (maybe dead), но он таки оказался тоже жив, на AT ответил на скорости 9600.

Узнать текущий режим командой «AT+CWMODE?», получаю «+CWMODE:2», режим клиента и AP.
Переводим в режим клиента «AT+CWMODE=1» — OK. Посмотрим список сетей «AT+CWLAP», список выведен с задержкой около секунды.

Подключаемся к сети AT+CWJAP =»your SSID here»,»wifikey» — хер. ERROR

Пробуем настроить шифрование «AT+CWSAP=3» — ERROR.

Пробовал подключиться к случайно выбранной сети без пароля — думало секунд 15 и выдало FAIL.

Вероятно модулю не нравится имя моей сети, оно содержит пробелы и восклицательный знак:). ХЗ чо я покрутил в итоге, но с Nй попытки приконнектился.

Даже с компа пингуется 🙂

Ползем дальше.

Какой адрес получен от DHCP? «AT+CIFSR» — 172.30.0.198

У меня в сетке есть nginx сервер, попробую получить его приветственную страницу:

надо открыть коннект до порта 80, запросить GET / HTTP/1.0 и прочитать все, что отдадут.

Установим режим множественных подключений

AT+CIPMUX=1

Открываю коннект 

AT+CIPSTART=TCP,»172.30.0.1″,80

Получаю некое Link typ ERROR

… В инете вычитал 'Link typ ERROR' — can occur when MUX=0 …

AT+RST, снова установка AT+CIPMUX=1, коннект, раздумье и .. ресет модуля, в смысле он внезапно ребутнулся.

Проба повтора — снова ресет..

Обновлю ка прошивку, сейчас версия 0018 стоит, может даже из облака попробую, понтов ради )

AT+CIUPDATE

посыпались символы, как в матрице прям.. сижу довольный, жду, думаю что это код прошивки сливается 🙂

На аккумуляторах 2.5В в этот момент. пока работает.

Долго.. минут 5 наверное уже прошло, на счетчике Rx уже 220к.

Еще минут 5. Rx=410к.. Надо было UART с 9600 на 115200 наверное перевести 🙂

Флеша в модуле 512к, осталось недолго. Rx=500к, да что ж он там, под завязку что ли.

И тут, глядя на эти волны символов, и думая, откуда это у них такая закономерность, решил я терминал на 74880 бод переключить.. а там все это время оказывается фаталы сыпались.

Передернул питание и получил такой косяк

эх, надо шить вручную. понты не прошли.. запустил FLASH_DOWNLOAD_TOOLS и перешил на версию AT 0.21, SDK 0.9.5

Пробуем снова

Список сетей, коннект, MUX=1, открываем соединение 

AT+CIPSTART=TCP,»172.30.0.1″,80

теперь сразу ERROR пишет

А документация-то у меня от старой версии открыта, ну ка от 0.21 посмотрю.

Ба, тут добавилась команда PING! Попробуем

AT+PING=»ya.ru»

В ответ

+3

OK

Супер. Но что насчет коннекта по HTTP?

Открыл pdf от китайцев, оказалось, что для CIPMUX=1 первым параметром идет ID соединения.

Короче я переключился в MUX=0, и сработало

AT+CIPSTART=»TCP»,»10.0.0.101″,80

CONNECT

OK

AT+CIPSEND=18 18 это длина отправляемого заголовка + переносы строки

OK

> GET / HTTP/1.0

2 перевода строки, не забываем

SEND OK

и вуаля, наши данные!

Если на сервер запрос не посылать, то коннект он разорвет сам через какое то время, а модуль сообщит, что соединение закрыто, прислав строку

CLOSED

К концу экспериментов на аккумах было 2.27В

Я запросил вебсервер еще один раз — все работает.

Источник: http://blog.sci-smart.ru/2015/11/esp8266.html

espressif.com FAQ ESP8266 | arm | programming

espressif.com FAQ ESP8266
Добавил(а) microsin   
Здесь приведен перевод FAQ [1] с сайта espressif.com. Все непонятные сокращения и термины см. в разделе «Словарик» в конце статьи.[Приложение (Application)]Вы можете запустить скрипт gen_mish.sh в окне терминала, чтобы сгенерировать по отдельности файлы user1.bin и user2.bin. Выполняйте следующие шаги:1. Скомпилируйте user1.bin, используя корректные установки Flash и boot.2. Выполните команду «make clean», которая очистит файлы, сгенерированные на первом шаге. Скомпилируйте user2.bin, и гарантируйте при этом, что используете для него те же самые опции, что использовали для генерации user1.bin.

Файлы user1.bin и user2.bin это два разные файла. Они должны быть сгенерированы для одинаковой конфигурации flash/boot, чтобы перепрошивка по технологии OTA могла работать правильно.

Два отдельных файла нужны потому, что программа user1.bin может загрузить user2.bin, и подобным образом user2.bin может загрузить user1.bin через OTA.

Это гарантирует, что процесс обновления не будет необратимо прерван из-за разных случайных событий наподобие пропадания питания или обрыва соединения канала связи.

Причин отказа OTA может быть множество. Рекомендуется обратиться к документу «ESP8266 FOTA Guide» [2] перед использованием функций FOTA API.

Быстрый список проверки для устранения проблем с отказами OTA:

• Убедитесь, что правильно выбран размер Flash, когда загружаете firmware в память Flash.
• Когда Вы первый раз загружаете новое firmware, также всегда загружайте blank.bin.

• Убедитесь, что файлы user1.bin и (опционально) user2.bin загружены в правильные места.
• Убедитесь, что генерируете user1.bin и user2.

bin с одинаковыми конфигурационными опциями Flash/boot!

Если Вы хотите обслуживать обновления OTA через свой сервер, то должны убедиться, что сервер может понимать запросы обновления прошивки (firmware upgrade requests) и отвечать на них.

Обработку запроса обновления можно обозначить следующим образом:

1. В облако посылается HEAD, запрашивающий длину BIN. Сервер отвечает пакетом HTTP (где информация о длине BIN включена в HTTP HEAD).

2. На основе полученной таким образом информации о длине BIN, очищаются сектора ESP8266 Flash, чтобы обновить прошивку с помощью API (spi_flash_erase_sector).

3. Посылается запрос GET, чтобы получить BIN-файл с сервера. Очищенная область может быть запрограммирована новым файлом BIN.

Пользователи могут предоставлять обновления через свой собственный сервер. Этот сервер должен быть в состоянии обслуживать запросы HTTP, и у него должны быть функции управления устройством (device control features).

Для справки по API см. [3].

Для подключения с серверу обновления может использоваться стандартный протокол HTTP. Например, когда устройство ESP8266 запускает сокет и отправляет запрос Вашему пользовательскому серверу:

Источник: http://microsin.net/programming/arm/espressifcom-faq-esp8266.html

Обновление прошивки Wi-Fi модуля ESP8266

Это вторая статья автора об интегральной микросхеме ESP8266, содержащей полнофункциональный 32-битный RISC микроконтроллер и встроенную Wi-Fi схему 802.11 b/g/n. Первая статья описывала использование Arduino IDE для программирования ESP8266 и содержит важную информацию, которая здесь повторяться не будет. Если вы не читали её, то рекомендуем сделать это.

В интернете нет недостатка в информации об ESP8266; на самом деле, может быть из неё слишком много… неправильной.

Разработчики микросхемы, Espressif, по-видимому, решили не только не заниматься производством на стороне, но и избегать непосредственного участия в разработке линейки модулей ESP, которые используют микросхему ESP8266.

Вместо этого, они предлагают информацию и услуги поддержки через форум для тех, кто готов с упорством и терпением ходить по лабиринту. Добавление к путанице – это существование другого форума, который, несмотря на то, что назван esp8266.

com, не управляется компанией Espressif. Кроме того, существует множество перепродавцов, видеоблоггеров, и писателей, которые также предлагают информацию от качественной до спутанной настолько, что она может быть полностью неправильной.

Читайте также:  Делаем шагомер на основе bmi160 и arduino beetle

ESP модули доступны в различных источниках, а прошивки, содержащиеся в чипах ESP8266 на модулях, почти всегда являются устаревшими и часто вызывают подозрения относительно их происхождения.

Также иногда подозрительны «обновления» и инструменты, которые доступны в тех же источниках.

Следовательно, целью этой статьи является документирование процедуры загрузки последней доступной прошивки непосредственно от Espressif и её установка с использованием инструмента программирования, предоставляемого Espressif.

Подключение оборудования

Чтобы обновить прошивку на любом ESP8266, необходимо правильно подать на него питание и подключить его к компьютеру. Кроме того, необходимо добавить средства сброса микросхемы и перевода её в режим загрузки.

На приведенной ниже схеме и фотографии показано рекомендуемое подключение; обратите внимание, что цвета проводов на схеме соответствуют цветам на фотографии.

Как вы видите, я буду обновлять прошивку на модуле ESP-01, но ти же самые соединения будут работать и с другими модулями, если используются те же входы/выходы ESP8266, как показано на схеме. Дополнительные сведения смотрите в этой статье.

Более надежная схема прошивки приведена в этой статье.

Схема подключения модуля ESP-01 к компьютеруСборка макета подключения ESP-01 к компьютеру

Программа терминала PuTTY

Когда подключение оборудования завершено, следующий шаг – включить ESP8266 и попытаться связаться с ним. Для этого требуется простая терминальная программа; мы будем использовать PuTTY, бесплатную программу, доступную здесь. Вы можете использовать другую терминальную программу, но вам придется учесть различия между ней и PuTTY.

Откройте PuTTY и нажмите на переключатель Serial. Введите номер COM порта (который должен быть меньше 10) и скорость передачи (скорее всего, это будет 115200 или 9600).

В маленьком окне Saved Sessions (Сохраненные сеансы) введите ESP8266 и нажмите кнопку Save (Сохранить). Окно PuTTY должно быть похоже на изображение ниже.

Настройка сеанса PuTTY

Нажмите кнопку Open (Открыть), после чего должно открыться окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT, но не нажимайте Enter. Вы должны увидеть AT в окне терминала PuTTY. Если этого не произошло, вы, возможно, выбрали не тот COM порт или неправильную скорость передачи.

Закройте PuTTY и начните этот подраздел статье с самого начала.

Допустимые скорости передачи: 9600, 19200, 38400, 74880, 115200, 230400, 460800 и 921600; попробуйте по очереди каждую из них, пока не найдете ту, с которой всё заработает.

Когда вы увидите AT в окне терминала PuTTY, удерживая клавишу Ctrl, нажмите клавишу M, а затем J. Отпустите клавишу Ctrl. Вы должны увидеть OK в окне терминала PuTTY, как показано на рисунке ниже.

Отклик ESP8266 в окне терминала PuTTY

Обратите внимание, что если вы делаете ошибку при вводе в окне сеанса терминала, возможно, исправить эту ошибку не удастся.

Вместо того, чтобы пытаться отредактировать и исправить ошибку, часто лучше просто удерживать клавишу Ctrl и нажимать сначала клавишу M, а затем J, что сгенерирует сообщение об ошибке.

Затем вы можете начать снова и ввести правильный текст.

Когда вы увидите первое сообщение OK, это значит, что вы преодолели большое препятствие. Теперь вы знаете, что оборудование подключено правильно, модуль ESP работает, и вы правильно выбрали COM порт и скорость передачи. Закройте окно сеанса терминала PuTTY и нажмите OK, когда PuTTY спросит, уверены ли вы.

Теперь снова запустите PuTTY, выберите сохраненный сеанс ESP8266 и нажмите кнопку Load (Загрузить). Это должно поместить ранее выбранные вами настройки COM порта и скорости передачи в соответствующие окна. Нажмите Open (Открыть), и откроется новое окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT, но не нажимайте Enter. Вы должны увидеть AT в окне терминала PuTTY. Введите символ +, а затем GMR. Когда вы увидите AT+GMR в окне терминала PuTTY, удерживая клавишу Ctrl, нажимите сначала клавишу M, а затем J. Отпустите клавишу Ctrl. В окне терминала PuTTY вы должны увидеть информацию о прошивке ESP8266, аналогичную показанной ниже.

Вывод информации о прошивке ESP8266 в окне терминала PuTTY

В первой строке выше вы видите команду AT+GMR, которую вы набрали. Как вы, возможно, знаете или догадались, схема команд, которую мы используем для связи с ESP8266, называется «набор AT команд», потому что все команды начинаются с букв «AT».

К сожалению, существует множество версий наборов AT команд; все они содержат некоторое количество одинаковых команд, но есть много AT команд, которые не являются стандартными для всех наборов AT команд. Даже в сообществе ESP8266 существует несколько версий.

Вторая строка указывает, что это конкретное устройство 8266 запрограммировано прошивкой, которая использует версию 0.25.0.0 AT команд. Где-то есть документ, который определяет команды, которые включены в версию 0.25.0.0, но и без этого документа вы можете использовать метод проб и ошибок для определения поддерживаемых AT команд.

В лучшем случае это будет очень утомительный процесс, но, к счастью, есть решение, которое будет объяснено в чуть позже.

Третья строка определяет версию программного обеспечения (SDK), которая использовалась для данного конкретного ESP8266, как версия 1.1.1. Каждый SDK также включает в себя набор AT команд, который является частью прошивки, и подходит для управления этой прошивкой. Очевидно, версия 0.25.0.

0 AT команд работает с версией 1.1.1 SDK. Но всё же нужен документ, который описывает AT версию 0.25.0.0, чтобы узнать, какие команды включены.

Существует лучший способ, описанный в следующем разделе этой статьи, но перед тем, как перейти к нему, попробуем еще одну AT команду и посмотрим, что произойдет.

Включите Caps Lock у себя на компьютере и введите AT+CWLAP. Когда вы увидите AT+CWLAP в окне терминала PuTTY, удерживая клавишу Ctrl, нажмите сначала клавишу M, а затем J. Отпустите клавишу Ctrl. Через несколько секунд окно терминала должно выглядеть так, как показано на скриншоте ниже.

Результаты вывода команды AT+CWLAP для ESP8266

AT+CWLAP заставляет ESP8266 перечислить все доступные Wi-Fi точки доступа. В приведенном выше случае были найдены две точки доступа: одна называется «ATT936», а вторая – «tracecom 2.4». Разумеется, ваши результаты будут отличаться и должны включать вашу собственную Wi-Fi сеть, а также сети ваших соседей.

Закройте окно сеанса терминала PuTTY и нажмите OK, когда PuTTY спросит, уверены ли вы.

ESP Flash Download Tool

Хотя это редко упоминается в интернете, Espressif, разработчики микросхемы ESP8266, создали некоторую часть программного обеспечения для обновления прошивки в своих чипах. Это ESP Flash Download Tool, и этот инструмент доступен здесь. Скачайте, разархивируйте и установите последнюю версию на вашем компьютере; на момент написания статьи это FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar.

Запустите инструмент, и вы должны будете увидеть два открывшихся окна: окно графического интерфейса (GUI) с полями ввода информации и терминальное окно, в котором ведется лог выполненных действий.

Окно графического интерфейса (GUI) ESP Flash Download ToolТерминальное окно ESP Flash Download Tool

Стоит отметить несколько вещей, но нет поводов для беспокойства:

  • окно (GUI) идентифицируется как V2.3, в то время как окно журнала идентифицируется как V2.4. По-видимому, окно GUI отмечено неправильно;
  • поля выбора COM порта и скорости передачи в окне GUI могут уже содержать данные;
  • поля ввода адресов в окне GUI могут уже содержать данные;
  • окно лога уже может содержать данные.

Получение последней прошивки

У Espressif есть страница, на которой размещается последняя версия прошивки. Перейдите на страницу bbs.espressif.com, нажмите на запись SDKs в списке Downloads, а затем кликните на «latest release» в разделе Announcements. На момент написания статьи на этой странице можно было увидеть следующее:

Страница с последней версией прошивки ESP8266

Последняя версия Non-OS SDK (Software Development Kit) – это то, что нам нужно, и, похоже, что, если вы кликните на «Latest Version: 1.4.0», то получите последнюю версию.

Но это не совсем так; обратите внимание, что имеется доступный патч, указанный как esp_iot_sdk_v1.4.1_15_10_22. Это не патч; это исправленная версия прошивки версии 1.4.0. Нам нужен он и bin файлы AT_v0.50.

Кликните по очереди на каждом из них и загрузите файлы.

Конечно, к тому времени, когда вы это прочитаете, могут появиться более свежие версии SDK, и их местоположения могут быть изменены, но, по крайней мере, вы знаете, где искать. Просто убедитесь, что внимательно прочитали, чтобы быть уверенным, что скачиваете последнюю версию. Как мы увидели ранее, это не всегда бывает очевидно.

Возможно, вы заметили, что есть раздел для скачивания документов. Все они содержат качественную информацию, но иногда существенная её часть теряется при переводе с китайского на английский. На данный момен не забудьте получить последние версии ESP8266 AT Instruction Set и Espressif IOT SDK User Manual.

Установка прошивки

Запустите ESP flash download tool и убедитесь, что ни в одном чекбоксе в левом верхнем углу окна GUI не поставлена галка. Введите COM порт, который вы используете, и скорость передачи 115200 в полях ввода в нижней части окна. Обратите внимание, что при вводе данных они записываются в окне журнала.

Подайте питание на свою сборку для программирования ESP и подключите её к компьютеру. Нажмите и удерживайте кнопку Reset, а затем нажмите и удерживайте кнопку Flash. Отпустите кнопку Reset, а затем отпустите кнопку Flash.

Нажмите кнопку START окне GUI инструмента прошивки ESP. Программа загрузки флэш-памяти должна проверить ESP8266 в вашей сборке и создать отчет, похожий на тот, что приведен ниже.

Нажмите и отпустите кнопку Reset на вашем макете, чтобы выйти из режима прошивки ESP8266 и возобновить нормальную работу.

Окно графического интерфейса ESP Flash Download Tool. Вывод информации о микросхеме ESP8266Терминальное окно ESP Flash Download Tool.

Вывод информации о микросхеме ESP8266

Обратите внимание, что теперь окно GUI содержит информацию об ESP8266, включая размер флэш-памяти (в примере 8 Мбит), тактовую частоту (в примере 26 МГц) и два MAC-адреса для чипа. Такая же информация содержится в окне журнала.

Затем кликните в окне GUI по чекбоксу с надписью «SpiAutoSet«, что заставит инструмент загрузки автоматически выбрать правильные размер флэш-памяти и тактовую частоту.

Теперь нам нужно выбрать файлы для установки в ESP8266 и установить начальный адрес памяти для каждого файла. Чтобы обновить ESP чип, необходимо правильно установить четыре файла. Откройте «Руководство пользователя Espressif IOT SDK» и найдите раздел о записи образов во флэш-память. В версии 1.4 руководства он начинается со страницы 20.

Затем найдите подраздел, который описывает версию поддерживаемую Cloud Update (FOTA), и в этом подразделе найдите таблицу о размере флэш-памяти в вашем ESP8266. В этом примере размер флэш-памяти составляет 8 Мбит, что равно 1024 килобайт, следовательно, в таблице 2 на странице 25 руководства содержится информация, необходимая для примера.

Посмотрим на рисунок ниже.

Таблица адресов флэш-памяти для загрузки файлов прошивки ESP8266

Необходимы эти четыре файла: esp_init_data_default.bin, blank.bin, boot.bin и user1.bin. Адрес, по которому должен быть установлен каждый из файлов, отображается рядом с именем файла. Первые три из необходимых файлов находятся в каталоге esp_iot_sdk_v1.4.

1_15_10_22, ранее скачанном с bbs.espressif.com, а четвертый расположен в AT_v0.50 bin files. Перейдите туда, где находятся эти загруженные файлы, и скопируйте пути к ним в поля ввода в верхней части окна GUI программы Flash Download Tool; введите правильный адрес для каждого файла в поле рядом с именем файла.

Выполните следующие шаги для каждого файла:

  • кликните внутри поля ввода «set firmware path»;
  • кликните по кнопке … справа от поля ввода;
  • перейдите к месту хранения файла и кликните по файлу. GUI автоматически введет путь к файлу в поле ввода;
  • введите правильный адрес (из таблицы) для каждого файла.
Читайте также:  Уроки ардуино: измеряем скорость вращения спинера

Обратите внимание, что файлы, которые должны быть загружены, могут быть не такими, как те, что указаны в таблице в этом примере, но будут близки к ним.

Теперь кликните на четыре флажка слева от имени каждого из файлов. Окно графического интерфейса программы Flash Download Tool должно быть похоже на рисунок ниже. Дважды проверьте адреса по таблице.

Настройка параметров прошивки ESP8266 в программе Flash Download Tool

На своем макете прошивки ESP нажмите и удерживайте кнопку Reset, а затем нажмите и удерживайте кнопку Flash.

Отпустите кнопку Reset, а затем отпустите кнопку Flash. Нажмите кнопку START окне GUI инструмента прошивки ESP.

Должна начаться загрузка, и её прогресс должен быть показан в окне графического интерфейса и окне журнала Flash Download Tool, как показано ниже.

Отображение процесса загрузки прошивки ESP8266 в терминальном окне Flash Download Tool

Как показано выше, успешная операция прошивки флэш-памяти приведет к тому, что все файлы будут отправлены в ESP8266, а COM порт будет закрыт.

Проверка успешности прошивки

Когда операция прошивки будет завершена, закройте программу Flash Download Tool. Снимите питание с макета программирования ESP, а затем снова подключите питание.

Снова запустите PuTTY, выберите сохраненный сеанс ESP8266 и нажмите кнопку Load (Загрузить). Это должно поместить ранее выбранные вами настройки COM порта и скорости передачи в соответствующие окна. Нажмите Open (Открыть), и откроется новое окно сеанса терминала PuTTY.

Включите Caps Lock у себя на компьютере и введите AT, но не нажимайте Enter. Вы должны увидеть AT в окне терминала PuTTY. Введите символ +, а затем GMR. Когда вы увидите AT+GMR в окне терминала PuTTY, удерживая клавишу Ctrl, нажимите сначала клавишу M, а затем J. Отпустите клавишу Ctrl. В окне терминала PuTTY вы должны увидеть информацию о прошивке ESP8266, аналогичную показанной ниже.

Вывод информации о прошивке ESP8266 в окне терминала PuTTY

Как вы можете видеть, в ESP8266 очевидно установлена новая прошивка. Она была обновлена с SDK версии 1.1.1 на SDK версии 1.4.0. Кроме того, также была установлена соответствующая версия 0.50.0.0 набора AT команд.

Закройте окно сеанса терминала PuTTY и нажмите OK, когда PuTTY спросит, уверены ли вы.

И напоследок

Пара тренировок, и весь процесс обновления прошивки займет гораздо меньшее время, чем требуется для прочтения данной статьи. Как только вы сделаете это, то будете уверены в том, что находится внутри вашего ESP8266 и сможете сосредоточиться на своем Wi-Fi проекте, вместо угадывания прошивки ESP и надежды на поддержку необходимого набора AT команд.

Оригинал статьи:

  • Charles R. Hampton. Update the Firmware in Your ESP8266 Wi-Fi Module

ESP-12E WiFi модуль (ESP8266)

WiFi модуль ESP-12E разработан компанией Ai-thinker и построен на базе процессора с ядром ESP8266, отличительной особенностью которого является наличие радиоинтерфейса WiFi. Ядро ESP8266 интегрировано в Tensilica L106 – 32-битный микроконтроллер с ультранизким энергопотреблением. Поддержка тактовых частот 80 и 160 МГц, поддержка RTOS, встроенные Wi-Fi MAC/BB/RF/PA/LNA, микрополосковая…

USB-UART конвертер USB-TTL 3.3/5В (FT232RL FTDI)

USB-UART конвертер USB-TTL на FTDI FT232RL.

USB-UART конвертер на чипе FTDI FT232RL — адаптер для для программирования отладочных плат, в том числе модулей ESP на микросхеме ESP8266, а также подключения устройств, имеющих интерфейс UART к компьютеру. Помимо стандартных линий — RX, TX, DTR, на плате в виде разъемов под пайку выведено множество дополнительных, позволяющих использовать дополнительные…

ESP-01 Wi-Fi модуль (ESP8266)

Wi-Fi модуль на базе однокристальной системы (SoC) ESP8266. По сравнению с другими модулями имеет небольшие размеры и ULP технологию. Модуль специально сконструирован для создания мобильных устройств и интернета вещей (IoT).

Источник: https://radioprog.ru/post/212

Режим экономии энергии ESP8266 (DEEP SLEEP)

Режим экономии энергии ESP8266 (DEEP SLEEP)

 Итак, вы создали потрясающий проект, используя аппаратное обеспечение ESP8266, в котором есть LiPo аккумулятор, или вы просто подключили свой NodeMCU к USB-аккумулятору. Но после запуска вы понимаете, что питание от аккумулятора длится недолго.

Поскольку мы много времени не контролируем аппаратное обеспечение / компоненты в микроконтроллере, мы не можем оптимизировать оборудование. Но мы можем написать прошивку, которая будет отключать оборудование, чтобы сэкономить электроэнергию. Во время сна устройство потребляет гораздо меньше энергии, чем при пробуждении.

В этой статье мы сосредоточимся на режиме DEEP SLEEP (режим экономии электроенергии) с ESP8266.ТИПЫ СНАСуществует четыре режима сна для ESP8266: No-sleep, Modem-sleep, Light-sleep и Deep-sleep.

Все они имеют разные функции.Установка No-Sleep режима значить что постоянно будет работать все оборудование.

Очевидно, что это наиболее неэффективно и будет потреблять больше всего энергии.В режиме «MODEM-SLEEP» ESP8266 отключает модем (WiFi) на как возможно дольше. Он отключает модем между интервалами DTIM Beacon. Этот интервал устанавливается вашим маршрутизатором.

Light-sleep выполняет ту же функцию, что и «MODEM-SLEEP», но также отключает системные часы и приостанавливает работу CPU. CPU не выключен. Это просто холостой ход.Все выключено, но часы реального времени (RTC) включены потому что нужно контролировать время.

Поскольку все выключено, это наиболее энергоэффективный вариант.

Если вам нужна дополнительная информация, обязательно ознакомьтесь с документацией.

DEEP-SLEEP

 С Deep-sleep структура наших приложений будет выполнять следующие шаги:Выполните некоторые действия (считывание информации с датчика)Сон на n микросекундПовторение

Важно отметить, что время сна указано в микросекундах (мкс).

Забавный факт, вы не можете отключить ESP8266 на вечно. Согласно SDK ESP8266, вы можете отключить его только на 4 294 967 295 мкс, что составляет около ~ 71 минуты.Теперь давайте посмотрим код. В этих примерах я собираюсь использовать IDE Arduino.

Давайте рассмотрим простой пример:Несмотря на то, что мы ничего не подключаем, чтобы включить Deep-sleep, нам нужно связать контакт RST с GPIO 16 на ESP8266. На NodeMCU GPIO 16 представлен как D0.Если мы посмотрим на распиновку для NodeMCU, мы увидим, что GPIO 16 является специальным выводом:Вывод RST поддерживается сигналом HIGH при запуске ESP8266.

Однако, когда контакт RST получает сигнал LOW, он перезапускает микроконтроллер. Когда ваше устройство находится в режиме глубокого сна, он отправит сигнал LOW на GPIO 16, когда таймер сна будет включен. Вам необходимо подключить GPIO 16 к RST для пробуждения (или сброса) устройства, когда Deep-sleep закончился.

Вот пример кода:/**  * An example showing how to put ESP8266 into Deep-sleep mode  */   void setup() {   Serial.begin(115200);   Serial.setTimeout(2000);   // Wait for serial to initialize.   while(!Serial) { }     Serial.println(«I'm awake.»);   Serial.println(«Going into deep sleep for 20 seconds»);   ESP.

deepSleep(20e6); // 20e6 is 20 microseconds } void loop() { }В этом примере мы заходим в Serial, спим в течение 20 секунд и повторяем. Вы можете использовать этот пример в качестве шаблона для других программ.В реальном мире мы хотим выполнить действие, например, сделать сетевой запрос, в то время как устройство отключено.

Давайте рассмотрим пример отправки показаний датчика температуры в Losant каждые 20 секунд и сон между ними.
 Вот код:/**    An example showing how to put ESP8266 into Deep-sleep mode */ #include #include #include // WiFi credentials. const char* WIFI_SSID = «wifi-ssid»; const char* WIFI_PASS = «wifi-pass»; // Losant credentials.

const char* LOSANT_DEVICE_ID = «device-id»; const char* LOSANT_ACCESS_KEY = «access-key»; const char* LOSANT_ACCESS_SECRET = «access-key»; WiFiClientSecure wifiClient; LosantDevice device(LOSANT_DEVICE_ID); void connect() {   // Connect to Wifi.   Serial.println();   Serial.println();   Serial.print(«Connecting to «);   Serial.println(WIFI_SSID);   WiFi.

begin(WIFI_SSID, WIFI_PASS);   // WiFi fix: https://github.com/esp8266/Arduino/issues/2186   WiFi.persistent(false);   WiFi.mode(WIFI_OFF);   WiFi.mode(WIFI_STA);   WiFi.begin(WIFI_SSID, WIFI_PASS);   unsigned long wifiConnectStart = millis();   while (WiFi.status() != WL_CONNECTED) {     // Check to see if     if (WiFi.status() == WL_CONNECT_FAILED) {       Serial.

println(«Failed to connect to WiFi. Please verify credentials: «);       delay(10000);     }     delay(500);     Serial.println(«…»);     // Only try for 5 seconds.     if (millis() — wifiConnectStart > 15000) {       Serial.println(«Failed to connect to WiFi»);       return;     }   }   Serial.println(«»);   Serial.println(«WiFi connected»);   Serial.println(«IP address: «);   Serial.

println(WiFi.localIP());   Serial.println();   Serial.print(«Connecting to Losant…»);   Serial.print(«Authenticating Device…»);   HTTPClient http;   http.begin(«http://api.losant.com/auth/device»);   http.addHeader(«Content-Type», «application/json»);   http.

addHeader(«Accept», «application/json»);   /* Create JSON payload to sent to Losant        {          «deviceId»: «575ecf887ae143cd83dc4aa2»,          «key»: «this_would_be_the_key»,          «secret»: «this_would_be_the_secret»        }   */   StaticJsonBuffer jsonBuffer;   JsonObject& root = jsonBuffer.

createObject();   root[«deviceId»] = LOSANT_DEVICE_ID;   root[«key»] = LOSANT_ACCESS_KEY;   root[«secret»] = LOSANT_ACCESS_SECRET;   String buffer;   root.printTo(buffer);   int httpCode = http.POST(buffer);   if (httpCode > 0) {     if (httpCode == HTTP_CODE_OK) {       Serial.println(«This device is authorized!»);     } else {       Serial.println(«Failed to authorize device to Losant.

«);       if (httpCode == 400) {         Serial.println(«Validation error: The device ID, access key, or access secret is not in the proper format.»);       } else if (httpCode == 401) {         Serial.println(«Invalid credentials to Losant: Please double-check the device ID, access key, and access secret.»);       } else {         Serial.

println(«Unknown response from API»);       }       Serial.println(«Current Credentials: «);       Serial.println(«Device id: «);       Serial.println(LOSANT_DEVICE_ID);       Serial.println(«Access Key: «);       Serial.println(LOSANT_ACCESS_KEY);       Serial.println(«Access Secret: «);       Serial.println(LOSANT_ACCESS_SECRET);       return;     }   } else {     Serial.

println(«Failed to connect to Losant API.»);     return;   }   http.end();   device.connectSecure(wifiClient, LOSANT_ACCESS_KEY, LOSANT_ACCESS_SECRET);   while (!device.connected()) {     delay(1000);     Serial.print(«.»);   }   Serial.println(«Connected!»);   Serial.

println(«This device is now ready for use!»); } void reportTemp(double degreesC, double degreesF) {   StaticJsonBuffer jsonBuffer;   JsonObject& root = jsonBuffer.createObject();   root[«tempC»] = degreesC;   root[«tempF»] = degreesF;   device.sendState(root); } void setup() {   Serial.begin(115200);   Serial.setTimeout(2000);   // Wait for serial to initialize.   while (!Serial) { }   Serial.

println(«Device Started»);   Serial.println(«————————————-«);   Serial.println(«Running Deep Sleep Firmware!»);   Serial.println(«————————————-«);   connect();   int temp = analogRead(A0);   double degreesC = (((temp / 1024.0) * 3.2) — 0.5) * 100.0;   double degreesF = degreesC * 1.8 + 32;   Serial.println();   Serial.print(«Temperature C: «);   Serial.println(degreesC);   Serial.print(«Temperature F: «);   Serial.println(degreesF);   Serial.println();   reportTemp(degreesC, degreesF);   Serial.println(«Going into deep sleep for 20 seconds»);   ESP.deepSleep(20e6); // 20e6 is 20 microseconds } void loop() { }В этом примере мы выполняем следующие шаги:Подключение к Wi-Fi (если не подключено)Считывание датчика температуры из аналоговогоРежим сна — 1минПовторениеВывод

Теперь, когда вы знаете, как использовать режим экономии энергии (DEEP-SLEEP), вы можете сделать свое оборудование более энергоэффективным.

Источник: https://ngin.pro/smart-house/300-rezhim-ekonomii-energii-esp8266-deep-sleep.html

Ссылка на основную публикацию