Esp8266 устройства своими руками

ESP8266 с чего начать или первый опыт

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

Почему я это решил написать? Всё просто: я убил 3 недели времени на то, чтобы разобраться с чего начинать и как это работает. Кроме того, попробую собрать небольшой каталог ссылок по работе с ESP8266. Надеюсь, что эта информация поможет сэкономить вам хоть толику времени.

Итак, приступим!

Я заказал себе 3 варианта плат на известном китайском сайте:

  1. ESP8266 WIFI Serial Wireless Dev Test Board на основе ESP-12 (далее «Жёлтая плата») ($3.12)
  2. ESP8266 ESP-07 вместе с Adapter Plate For ESP8266 (далее ESP-07) ($2.30)
  3. LoLin V3 NodeMcu Lua на основе ESP-12 (далее «Лолин») ($3.12)

Причины, по которым я взял такой зоопарк:

  1. У Жёлтой платы уже встроены светодиодики, которыми можно сразу поморгать, для питания можно использовать не сказочные 3,3В, которые надо еще как-то добыть, а 3 батарейки типа АА или подключив 4,5В (что я и сделал).
  2. ЛоЛин меня подкупила тем, что подключается с помощью микро юсб кабеля и ей не нужны никакие UART конвертеры — в ней сразу он встроен на основе китайского чипа CH340, для которого можно легко найти драйвера как на win7x64 и на win10x64 (мои случаи), и, опять же питание от обычного адаптера с USB выходом, а не мудреные 3,3В.
  3. Конкретно эту ESP-07 я брал под метеостанцию. Ртутно-аналоговый градусник выцвел, прибивать новый лениво, да и врёт он нагреваясь от стены дома прилично. Для начинающих рекомендую брать сразу Adapter Plate — удорожание всего на 20 центов, а удобств намного больше.

Для начала — проверка модулей.

Во всех инструкциях по запуску пишут, что если Вы подключили питание и появилась WiFi сеть «AI-THINKER xxxxxxx», значит устройство работает. С моими устройствами так и вышло — они все создали WiFi сеть, к которой можно было подключиться. Ура! Заработало! Обрадовался я, но рано.

Для начала решил экспериментировать с Жёлтой платой. У продавца с лучшим показателем цена-рейтинг в описании товара были только картинки. И ни слова описания. На русскоязычных ресурсах были упоминания это платы, но конкретики именно про неё не нашёл. У некоторых продавцов я видел такую инструкцию:

1. Android phone installation IOT.APK, IOS client be released later
2. shorting cap connected to the power to enter the programming mode, enter the normal operating state removed
3. Replace the battery, mobile search network «AI-THINKER» router
4. join the router (the router module form) password is: ai-thinker
5. after the success can be added directly to the control module of the mobile phone.
6. Enter the home router «SSID» and «Password» in the «Configure Device», then click on the icon at the top of the router, wait a few moments after the jump to join the router, connect the phone router WiFi, again «discovered device» to achieve control in the LAN.

Читайте также:  Защитные маски для детей своими руками

Мой вольный перевод:

1. На устройство с Wi-Fi работающим на ОС Андроид (не работает на версии 5.0 и старше!) установите IOT.APK, Клиент для IOS будет выпущен позже
2. На плате необходимо снять пермычку, активирующую режим прошивки.
3. Перезагрузите модуль (отключить и подключить питание) и через минуту ищите на андроид устройстве Wi-Fi сеть «AI-THINKER»
4. Подключитесь к этой сети с паролем «ai-thinker»
5. После этого запустите установленной приложение IOT и нажмите на лупу. Плата должна автоматически определиться. После этого перемещайте ползунки, щелкайте выключателями и наблюдайте светодиоды на плате.

Нестыковка была в том, что моя сеть «AI-THINKER хххххххх» не спрашивала пароль, а сразу телефон к ней подключался. И приложение в упор не «видело» ESP после подключения. RGB светодиод горел синим с установленной перемычкой или зеленым без неё.

Я догадывался, что, возможно, китайцы спаять — спаяли, а прошить забыли (или криво прошили). Поэтому решил шить сам. Для прошивки я использовал ESP8266 Flasher. И тут вылез второй сюрприз: ни одна программа плату не распознавала, на команды не отвечала, прошивка не заливалась. Подключал через Ардуино и через UART-конвертер — ничего. Две другие платы уже успел перепрошить и помигать светодиодом, а тут глухо. Пока не догадался прозвонить контакты.

На этой плате отдельно выведены три контакты для прошивки: TX, RX, GND. Так вот оказалось, что TX разведен на RX самой ESP-12, соответственно RX — на TX. Т.е. просто надо было поменять местами два провода: к отдельно вынесенным трём контактам подключаем UART-конвертер по схеме:

TX-TX
RX-RX
GND-GND
Или Ардуино:
TX-RX
RX-TX
GND-GND

После такого открытия модуль ожил, была найдена оригинальная прошивка для мигания светодиодами (AI-THINKER-IOT-2014-10-17 165528.bin) и прошита все тем же ESP8266 Flasher. Появился пароль на точку доступа, и приложение сразу увидело Жёлтую плату. Единственный нюанс: для перепрошивки надо установить перемычку, для всех остальных случаев снять. И не забывать перезагружать устройство после перепрошивки.

ESP8266 ESP-07 вместе с Adapter Plate

Инструкция подключения ESP-07 (ESP-12) через UART-конвертер:

  • Красный — питание 3,3в;
  • Черный — GND;
  • Желтый — на стороне ESP8266 — RX, на стороне USB-TTL — TX;
  • Зеленый — на стороне ESP8266 — TX, на стороне USB-TTL — RX;
  • Оранжевый — CH_PD (CHIP ENABLE) — должен быть всегда подтянут к питанию;
  • Синий — GPIO0 — подключен через выключатель к земле для включения режима перепрошивки модуля. Для обычного старта модуля GPIO0 можно оставить никуда не подключенным;
  • Серый — GPIO15 (MTDO, HSPICS) этот пин необходимо притянуть к земле;
  • Если подключаете к Ардуино, то RX-RX, а TX-TX.

С помощью паяльника были объединены ESP-07 и адаптер. Адаптер рекомендую поскольку он в дальнейшем облегчает соединение беспаечным методом с помощью макетной платы и проводов. В данном случае для питания я использовал понижающий DC-DC преобразователь из Китая. В наличии были датчики DS18B20, их и было решено подключать.

HomesSmart сразу ставить не хотелось и выбор пал на такой вот пример. Не буду перепечатывать схему и код — они практически такие же. Заработало не сразу, но с гуглом и бубном завелось и полетели данные на Народный мониторинг.

Загружал скрипт через ESplorer.

Жду компактный модуль питания 220AC — 3,3DC чтобы оптимизировать количество проводов.

LoLin V3 NodeMcu (Лолин)

Эту плату советовали сразу прошить прошивкой NodeMcu, что и было сделано через программу NodeMcu flasher. Сама прошивка собирается конструктором, что позволяет включить только самое необходимое.

Читайте также:  Как сделать костюм жука своими руками

Далее предполагалось подключение и управление 2-хканальным реле и управлять двумя бра в спальне. Тут хочу остановиться на одном ньансе. У китайского варианта такого реле есть перемычка JD-VCC — VCC — GND. По умолчанию она установлена на контакты JD-VCC — VCC.

Так вот, пермычку никогда нельзя устанавливать на VCC — GND — устроите КЗ! Эти три контакта используются для дополнительного питания реле, в случаях, когда управляющее может быть недостаточным для срабатывания реле. Присутсвие перемычки обозначает, что питание идет от «управляющих» контактов.

Скрипт был использован такой:

Я не смог повторно найти ссылку на первоисточник. Но схема проста: К Лолин подключаем на выходы D3 и D4 реле 1 и реле 2 (led1 = 3 led2 = 4). Дальше заходим на выданный нашим роутером IP адресс и видим страничку:

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

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

Источник

Схема моего умного дома на основе ESP8266, часть 1

Захотелось мне сделать свой дом умным. И чтобы он был дешевым, простым и надежным. Как оказалось, это сделать возможно. Но. готовых умных домов я не смог найти. Те, что имелись на рынке, либо дорогие, либо нефункциональные, либо невнятные и т.д. и т.п. Вспомнил я про Arduino. И оказалось на нем можно это сделать (точнее не на нем, а на очень похожем на него контроллере ESP8266). Правда это уже будет целым хобби. Просто взять купить и поставить не получится. Нужно искать, собирать, паять, соединять и конечно же программировать. Ок, поехали!

Это первая моя статья на тему моего умного дома. В дальнейшем я буду выкладывать следующие статьи о том, что я конкретно сделал и как.

На кого рассчитана статья?

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

Профессионалам по электронике не будет это интересно. Я рассказываю про свой путь с нуля.

Что в итоге должно получится?

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

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

Кнопку ‘Я ушел из дома’. По которой в доме отключались приборы: например освещение, утюг, паяльник.

Датчики движения и присутствия с основным освещением комнаты. Для выключения освещения, если в комнате никого нет в течении какого-то времени.

Требования к умному дому

Итак, требования к умному дому, как хобби, такие:

Обойтись по возможности без пайки.

Не вдаваться глубоко в радиоэлектронику.

Все задачи решать в основном программированием.

Языки программирования C++ и JavaScript.

В качестве связи устройств использовать Wi-Fi, 1-Wire, I2C.

Устройства должны быть дешевле чем Xiaomi.

В общем, если заметили, требования как у программиста. Если можно, то все решать программированием. Автор все-таки программист, а не писатель и тем более не радиоэлектронщик.

Читайте также:  Как сделать подшивку газет своими руками

Устройства

После поисков был найден микроконтроллер ESP8266. Он программируется легко как Arduino. У него есть Wi-Fi на борту. Цена начинается от 80 рублей за штуку. В общем соответствует требованиям полностью. Я бы взял Arduino, но у него, к сожалению, нет на борту Wi-Fi. Единственное что смущает это энергопотребление. Но такого требования как батарейки у меня нет. Пока нет.

Контроллер ESP8266 оказался таким дешевым, что можно на каждый датчик или исполнительное устройство ставить по такому контроллеру. Можно ли так делать или нет я пока не знаю. Это я буду проверять уже на практике. Физических препятствий этому нету.

Самый дешевый вариант ESP8266, называется ESP01

Так как ESP8266 является весьма мощным контроллером, то к нему можно подсоединять несколько датчиков и исполнительных устройств. Поэтому можно сделать гибридную сеть (Wi-Fi + провода). Несколько ESP8266 соединяются с сервером по Wi-Fi. А на каждой ESP8266 могут быть несколько устройств, подсоединенными по 1-Wire или I2C. Например, сеть температурных датчиков.

ESP8266 можно программировать самостоятельно. Как Arduino. Я так и хотел сначала сделать, но нашел такое явление как готовые и универсальные прошивки для ESP8266. Их довольно много. Я выбрал под свои требования ESP Easy. Ее возможностей хватает для всего что мне нужно.

Сервер

Кроме ESP8266 в схеме умного дома будет сервер. Ну куда ж без него. Его можно написать полностью самому. Но ознакомившись с темой умного дома я нашел такие универсальные средства как: MQTT-брокер, средство визуального программирования Low Code Node Red и мост Homebridge. Последнее я припас для соединения своего умного дома с Apple HomeKit + Siri. Эти средства оказались настолько популярными, универсальными, простыми, надежными, что я решил на их основе и строить сервер.

Куда же размещать эти программные сервера? Можно просто на ноут кинуть или на что-то более специализированное. Можно также в облако. Особых требований у меня пока нет для выбора физического сервера, потому остановился на том, что больше все понравилось, а именно Малина. Итак, для сервера выбрал Raspberry Pi Zero W, который отвечает всем требованиям: цена 1500 рублей, wi-fi на борту, простота в программировании. И еще можно его запихнуть в DIN-корпус для установки в электрощиток.

Резюме

В итоге получилась такая схема. В электрощитке будет находиться Raspberry Pi Zero W для хранения логики работы моего дома. Без него умный дом работать не будет. Поэтому запитываться он будет от сети и от резервной аккумуляторной батареи.

Каждое устройство создается на основе ESP8266. Запитываться будет либо от сети либо от батарейки. Если батарейки не будет хватать хотя бы на полгода, то придется подумать как это решить (тут мне подсказывают, что ZigBee позволяет создавать более экономные устройства, чем Wi-Fi, но ZigBee более сложный, чем Wi-Fi).

В качестве голового помощника выбраны Siri и Алиса. Siri очень легко подключается. Алиса чуть сложнее. Остальные голосовые помощники отпали, т.к. информации по ним практически нет. Да и на айфоне кроме Siri и Алисы никого нету.

Что дальше?

Дальше я расскажу как собрал первое тестовое устройство. Имитация лампы освещения и кнопки. В качестве лампы будет обычный светодиод. Кнопка просто кнопка. И еще в устройстве будут два датчика DHT11 (влажность) и BMP085 (давление и температура). Все это будет подключено к Homekit и Алисе.

Источник

Оцените статью