Андрей Смирнов
Время чтения: ~14 мин.
Просмотров: 3

esp8266 — Сообщество разработчиков

А теперь поговорим о прошивке микропроцессора ESP8266 для получения всех вкусностей.Это  не страшно и не сложно )))Огромное достоинство этой прошивки — не надо уметь программировать, то есть абсолютно. Собираем из кубиков нужные задачи  и все готово. А как это работает уже и не важно )))Таже отмечу замечательную возможность перепрограммирования системы «по воздуху», то бишь через WiFi/ Первый раз прошиваем по проводу, а потом все легко и просто летает само!!!Как писал рядом прошиваемся либо через конвертер usb либо напрямую подключаем плату кабелем. Для начала скачаем программу прошивальщик.Их много есть, но как по мне — так это nodemcu-flasherСкачиваете нужную вам версию (Win32 или Win64) и устанавливаете на компьютер.Подключаем кабель к компьютеру и к ESP8266.Дальше в папке Release запускаем «ESP8266Flasher.exe» и видим интерфейс программы, можно посмотреть тут, но учтите мои дальнейшие замечания.Пока не буду рисовать картинки их полно в нижеприведенных ссылках, отмечу подводные камни.— выбираем на первой вкладке Com порт, можно методом тыка, он наверняка будет не первым— на второй вкладке выбираем файл для прошивки, можно сразу несколько, но не советую … (про выбор файла поговорим чуть ниже).— на третьей выбираем Flash size = 16mByte (практически все ESP на сегодняшний день такие)— SPI Mode = QIO (если после успешной прошивки модуль не запускается попробуйте изменить SPI mode. пошагово вниз, на некоторых модулях работает только DOUT )— остальные настройки не трогаем.Вот вроде и все готово, нажимаем на первой вкладке Flash и через пару секунд должен появится 3D код вашего устройства и побежать линия прошивки. Если этого нет — что то пошло не так (((Можно воспользоваться и другой программой — ESPFlashDownloadToolТеперь чем прошивать!!!  Конечно прошивкой из конструктора прошивки wifi-iot.com , но перед каждой прошивкой программы рекомендую прошить модуль чистым бланком, пустой прошивкой, чтобы убрать всякий случайный мусор. Берем ее  тутИтак — знакомимся с КОНСТРУКТОРОМ ПРОШИВКИ.  Я смело пишу это большими буквами, т.к. для меня это оооочень замечательная вещь.1.jpgВот как это выглядит. Тут даже чайнику становиться понятно, что и как. Ставим галочки около тех функций которые нам нужны на модуле и создаем прошивку, которую можно сохранить , изменить и скачать. Около каждого элемента есть подсказка, желательно, ооочень желательно, их читать, чтобы потом «не было мучительно больно за бесславно прожитые часы» в поисках ошибок и непоняток.Теперь я остановлюсь на сложных моментах :Главное — не пожалейте 100 рублей и купите прошивку официально, упростите себе жизнь на порядок. Даже если вас устраивают все бесплатные опции, через неделю захочется что то добавить и будут танцы с бубнами …..1. Профилей прошивок можно создать много и каждому присвоить собственное имя. Следует понимать, что одну прошивку можно привязать к любому числу модулей ESP8266. но каждому конкретному модулю соответствует только одна конкретная прошивка. Если изменить прошивку в конструкторе и не обновить ее в модуле, то в дальнейшем это будут разные вещи. В самом модуле всегда можно посмотреть имя и номер загруженной прошивки (ip_adr/debug — > OTA Profile name: Бутерброд).2. Не надо выбирать  самое свежее SDK (Software Development Kit или набор программ разработчика самого модуля ESP8266), пользуйтесь рекомендованным. Оно проверенное и надежное, другое можно использовать когда точно знаешь чего хочешь.3. Ни в коем случае не стремитесь включить все функции — не пройдет. Проблема не в прошивке, а в модуле. У него просто не хватит памяти на всё. На модуле надо прошивать ТОЛЬКО то что будет использоваться!!!!4. Читайте WiKi !  Там практически все описано и показано, метод научного втыка тут врядли сработает.5. При первоначальной сборке прошивки прошивайте опцию OTA , чтобы следующее обновление было возможно  без использования проводов и подключения программатора.6. Внимание! При обновлении по воздуху методом  ОТА закачивается последняя скомпилированнная в вашем конструкторе прошивка, она может быть и от другого модуля, будьте внимательны.При обновлении по воздуху методом  Auto ОТА закачивается  обновленная  прошивка для данного конкретного модуля.Вот теперь настало время прочитать основную инструкцию и прошить свой модуль.«Ё мое, что же я наделал ??? «2.jpgДа вот, как то так, приблизительно.Про основные настройки в самом модуле можно посмотреть тут.Практически все данные которые есть в модуле можно передавать в свою базу данных организованную на сервере на Raspberry Pi  или другом аналогичном компьютере и смотреть все это в виде красивых картинок.Подробнее о настройке Raspberry смотрите в тут и тут.В настройки ESP необходимо добавить опцию TCP/UDP Клиент 11.jpgТекст запроса содержит только один пробел, после тэга t2=rssi.Для целых чисел добавляется — i.Все символы в запросе обязательны.Если один датчик перестанет работать, не будет данных в запросе, вся отсылка прекратиться.Пример :Query text:      Name,t1=rssi rssi=_RSSI_i,adc=_ADC_

To be continued https://www.youtube.com/watch?v=zMlgdLScpn0&feature=youtu.be https://geektimes.ru/post/271754/ http://homes-smart.ru/index.php/oborudovanie/bez-provodov-wi-fi/proshivka-i-zapusk-modulya-esp8266 https://esp8266.ru/tag/nodemcu/ Скоро добавлю …

  • Цена: $2.74

Лежал у меня на полочке вай фай модуль esp8266 купленный где-то около года назад. Одним вечерком, бороздя просторы интернета, наткнулся я на сайт wifi-iot.ru где можно самому, без знания языков программирования, легко собрать прошивку под свои нужды. И тут я вспомнил про свой без дела лежащий модуль esp8266 и решил собрать прошивку для мониторинга погоды и дальнейшей отправки погодных данных на сайт народный мониторинг. Сборка прошивки с данного сайта оказалось очень легким делом, просто ставишь галочки в нужных функциях и компилируешь прошивку. Все это дело я решил разместить в корпусе от роутера d-link. Нашел в интернете подходящий мне файл печатной платы, ссылка на плату cxem.net/arduino/arduino214.php и переделал его под себя. Вот что из этого вышло:

Решил также прикрутить для удобства и экранчик с i2c переходником
Вот как был расположен датчик температуры в первой версии. Но не долго думая я решил переделать свое устройство в отдельный уличный модуль, так как нашел для этого подходящий корпус
Разработал под данный корпус новую плату, которая предусматривала установку всех компонентов на одной платеправая плата. вот так выглядит готовая плата
Схема самого модуля: Напечатал на 3D принтере держатель для выносного модуляи закрепил все это дело на улице, в теневой стороне дома
Пришлось вынести датчик температуры наружу так как при разводке платы не учел тот факт что линейный стабилизатор напряжения будет нагреваться, и это скажется на показаниях датчика. Скоро должен придти датчик атмосферного давления и влажности BME280, как приедет установлю его внутри модуля и будет у меня уже полноценная станция погодного мониторинга. Вот показания станции на данный момент
Вот фотографии девайса после одного месяца работы на улице
Как видно, месяц работы на улице, зимой, никак не повлиял на состояние платы. А вот очередное устройство на esp8266:
На этих платках можно автоматизировать дома любой процесс, можно также собрать свою систему умного дома.

IoT Manager может обмениваться командами и данными с любыми устройствами, поддерживающими MQTT. Я продемонстрирую вам взаимодействие с ESP8266, причем сразу с двумя модулями. В этот раз я не буду поднимать локальный MQTT брокер (в одной из предыдущих статей мы поднимали mosquito на OpenWRT), а воспользуемся бесплатным аккаунтом (до 10 клиентов) CloudMQTT.com. Подробности под катом.

IoT Manager — это гибридное (не нативное) приложение, созданное с помощью Ionic Framework, на HTML5 и AngularJS, обмен с брокером реализован на Paho, который обеспечивает полное соответствие стандарту MQTT. Отличает это приложение от других: расширенные возможности отладки, отправка push уведомлений через OneSignal HTTPS REST API и html-based настройка внешнего вида виджетов.

androidstore.png

Быстрый старт

Push уведомления

Настройки IoT Manager

Дополнительные возможности IoT Manager

Планы на будущее

Ссылки по теме

Начать лучше с регистрации бесплатного аккаунта на CloudMQTT.com, но вы можете использовать любой MQTT брокер (главное, чтобы была возможность подключения через WebSockets), в том числе и установленный в вашей локальный сети.

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

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

После регистрации на CloudMQTT.com идем в Control Panel. Здесь нам нужно создать брокер кнопочкой Create, даем произвольное название брокеру, выбираем датацентр (Европа или США), тарифный план не трогаем (по умолчанию — бесплатный Cute Cat). Я создал сразу два: TEST в Европе и TEST2 в США.

cloudmqtt1-300x140.jpg

СloudMQTT

Жмем на кнопку Details.

cloudmqtt2-300x133.jpg

CloudMQTT

Здесь нас интересует только имя хоста m11.cloudmqtt.com и WebSockets порт 30927 (для мобильного приложения), то же имя хоста и порт 10927 берем для скетча Arduino IDE нашего DIY устройства. Имя пользователя и пароль, в этом разделе, указаны для юзера облачного хоста, под которым крутится брокер mosquito, и вам их лучше не использовать в клиентах в целях безопасности. Нужно создать нового пользователя. Я сделал пользователя test с паролем test. Далее ему нужно дать права на чтение и запись на все топики (ставим просто #). В итоге должно получиться так:

cloudmqtt3-300x176.jpg

CloudMQTT

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

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

Устанавливаем IoT Manager на ваш смартфон/планшет. IoT Manager не начнет работать до тех пор, пока вы не сделаете настройки подключения:

Screenshot_2015-10-10-23-24-54-169x300.jpg

IoT Manager

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

Screenshot_2015-10-10-23-30-14-169x300.jpg

IoT Manager

Пусть вас не смущает No data — это нормально до тех пор, пока не запущены ваши IoT устройства, так как именно в них прописаны все настройки. Главное сейчас — это зеленый индикатор (в верхнем правом углу) успешного соединения с CloudMQTT.

Далее скачиваем с https://gist.github.com/4refr0nt/IoTmanager.ino или IoTmanager2.ino или оба скетча, если у вас под рукой две платы ESP8266. Исправляем в скетче WiFi SSID и пароль на ваши, вводим адрес вашего mqtt брокера, порт 10927 (не WebSockets), пользователя и пароль (test, test). В скетче Arduino IDE указывается адрес хоста, а не его имя. Чтобы узнать IP адрес любого хоста по его имени, можно в командной строке выполнить ping имя_вашего_cloudmqtt_хоста, и вы увидите необходимый вам адрес.

С помощью ESP8266 Arduino IDE заливаем все это в ESP8266.

Примечание 1. Эти скетчи были набросаны мною по-быстрому и отнюдь не идеальны. В реальных проектах вам может потребоваться сохранение состояний GPIO, вы захотите подключить реальные датчики, а не бесполезный фоторезистор на ADC, оптимизировать код. Я не стал этого делать, чтобы не загромождать код, моей задачей было показать возможности приложения. Если у вас возникнет желание поделиться своими наработками — публикуйте свои работы на нашем форуме, это очень поможет новичкам и будет вполне интересно и для более опытных.

Примечание 2. Железо и прошивки ваших IoT девайсов могут быть любыми, не обязательно ESP8266. Это вполне может быть Arduino с Ethernet или WiFi шилдом, RaspberryPi или другое устройство. При использовании ESP8266 прошивка на борту может быть любой, лишь бы поддерживала MQTT для датчиков и/или HTTPS для push уведомлений. Мне, да и многим нашим читателям, было бы очень интересно увидеть различные примеры. Публикуйте свои работы на нашем форуме

Screenshot_2015-10-05-16-34-17-169x300.jpg

IoT Manager

Еще один вариант использования приложения: push уведомления. На видео и демо скетчах push уведомление приходит на смартфон каждые 10 секунд, если значение ADC, подключенного к фоторезистору, более 100 (для этого на видео я накрываю всю плату светонепроницаемой коробкой). Если вы управляете своим устройством без использования IoT Manager, а каким-то другим способом, но не имеете возможности отправлять push уведомления — IoT Manager вам поможет. Никаких настроек приложения не требуется, брокер не используется. Необходимо только, хотя бы один раз, запустить приложение. При первом запуске приложения происходит автоматическая регистрация вашего смартфона на сервисе OneSignal.com, ему присваивается уникальный идентификатор, который вы можете увидеть на странице статистики. Далее, в своих IoT устройствах, вы можете настроить отправку специально сформированного HTTPS POST запроса, при выполнении заданных вами условий, и сможете получать push уведомления на все смартфоны и планшеты, на которых установлен IoT Manager и id которых вам известны. Прием push уведомления на смартфон происходит вне зависимости от того, запущено мобильное приложение или нет. Прием push уведомлений можно приостановить/возобновить в настройках IoT Manager.

Screenshot_2015-10-05-16-34-48-169x300.jpg

IoT Manager

  • Enable events logging — включает/отключает логгирование событий, которые можно потом посмотреть в журнале
  • Enable Toast messages — включает/отключает отображение всплывающих сообщений (тостов), которые уведомляют вас о важных событиях
  • Enable Push notifications — включает/отключает прием PUSH уведомлений. PUSH уведомления могут генерироваться вашими IoT устройствами и их получение не зависит от того, запущено ли приложение.
  • Reconnect after connection lost — включает/отключает автоматическое переподключение к брокеру при проблемах связи
  • Show connection status — включает/отключает индикатор текущего состояния подключения к брокеру в верхнем правом углу на всех страницах приложения
  • End-user mode — включает/отключает режим конечного пользователя. Этот специальный режим можно включить, когда вы закончили отладку и установили приложение человеку, далекому от брокеров, портов и логов — большинство страниц приложения, предназначенных для отладки вашей системы, будут скрыты, как и настройки подключения к брокеру. Останутся лишь главная панель управления, разделы настройки и помощи.

Screenshot_2015-10-05-16-34-29-169x300.jpg

IoT Manager

Screenshot_2015-10-05-16-34-54-169x300.jpg

IoT Manager

View log. Если в настройках включен режим логгирования, то здесь вы увидите все события, которые происходят (точнее, последние 100 записей). Это и публикация данных в топики, поступление данных от устройств и остальные события. Логи будут незаменимы для отладки, особенно если вы не пользуетесь mqtt-spy.

Screenshot_2015-10-05-16-34-34-169x300.jpg

IoT Manager

Subscribed — это список топиков, на которые вы подписаны. Для отладки.

Screenshot_2015-10-05-16-34-39-169x300.jpg

IoT Manager

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

IoT Manager

Statistics — простой подсчет принятых/отправленных сообщений. Также на этой странице вы можете увидеть ID вашего девайса (необходим для отправки push уведомлений с ваших IoT устройств). Вы можете отправить ID к себе на почту для дальнейшего использования.

Примечание. Нет смысла пытаться использовать ID из скриншота — он недействителен.

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

Если удастся монетизировать приложение более 100$, то опубликую в Apple AppStore версию для IOS (у Apple нужно ежегодно оплачивать аккаунт). Встраивать рекламу или делать приложение платным я считаю нецелесообразным, так что если у вас появится желание финансово поддержать проект, то это будет только приветствоваться.

Желтая плата с ESP8266 из видео на AliexpressОбсуждение этой статьи и IoT Manager на нашем форумеОбсуждение Arduino IDE для ESP8266 на нашем форумеОбсуждение mqtt-spy на нашем форумеОбсуждение CloudMQTT.com на нашем форумеОбсуждение mosquito на нашем форуме

Используемые источники:

  • http://whitefluffybear.blogspot.com/p/wifi-iot.html
  • https://mysku.ru/blog/aliexpress/59595.html
  • https://esp8266.ru/iot-manager-for-diy/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации