Обзор WiFi-модуля для самоделок и «умного дома» ESP8266

Обзор WiFi-модуля для самоделок и «умного дома» ESP8266

ESP8266 «Witty Cloud» — самый удачный на данный момент WiFi-модуль для самоделок и «умного дома»

Разные варианты реализации модуля ESP8266 обозревались тут не раз, и заслуженно. Этот мелкий, с монету, чип с WiF на борту может работать и точкой доступа, и клиентом и программируется как угодно — и продаётся за считанные доллары.

Не успели мы привыкнуть к мысли, что всякие интересные поделки можно сделать на грошовой Arduino, Attiny или STM — как и устройства с WiFi и мощными процессорами на 80 мегагерц стали им конкурентами по цене. (Чёрт, у меня процессор в первом собственном компьютере был немногим быстрее, какой же я старый).

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

За что мы «любим» разные варианты ESP8266:

  • Они питаются от 3.3 вольт, а не от более привычных пяти
  • Им в пике надо ток до 320mA, что не под силу обычным преобразователям USB-TTL
  • Шаг между выходами платы обычно составляет не стандартные 2,54 мм, а 2 мм ровно — что делает пайку затейливым приключением
  • Есть только одна версия платы с шагом между контактами 2,54 мм («ESP8266-01»), но у неё минимум полезных контактов
  • В режим программирования чип переводится замыканием контактов, что требовало сноровки. Либо припаивания кнопки
  • С Reset та же беда — либо отключать питание, либо кнопку паять

И тут китайпром выдал «ESP8266-12E» под названием «Witty Cloud»:

Плата представляет собой «бутерброд» из двух. На верхнем слое (слева на обоих фото) сам чип ESP8266, под ним — разъём питания MicroUSB и регулятор напряжения AMS1117-3.3, задача которого — превратить 5 вольт в 3.3. По datasheet регулятору по зубам токи до 0.8А, так что для питания чипа этого хватает с лихвой. Там же — кнопка Reset для перезагрузки.

Чтобы было чем занять пустующие углы платы, китаец впихнул туда RGB LED и фоторезистор, о них — позже.

На нижнем слое «бутерброда» (на фото справа) расположился полноценный MicroUSB, чип CH340G и кнопки «Flash» (режим прошивки) и «Reset».

«Бутербродность» даёт бoльшую свободу действий. Вы можете подключить «бутерброд» к компьютеру в нижний (полноценный) разъём USB, перепрограммировать его — и затем встроить в вашу поделку только верхнюю часть, сэкономив на размерах корпуса.

Более того, низ «бутерброда» можно использовать для программирования самодельных модулей. Я сам паял завалявшиеся модули ESP8266-12 и ESP8266-07 на не очень удачные платы-адаптеры за $2,22 и приделывал «на соплях» регуляторы AMS1117 — оба работали безо всяких проблем и оказались стопроцентно совместимы по разъёмам и кнопкам:

Ладно, хватит нахваливать модуль, давайте сделаем что-нибудь полезное.

На странице продавца рекламируется какой-то SDK и даже какое-то китайское «облако» для устройств на базе ESP8266 и Android, правда информации о них на английском (почти) нет. Раз так, махнём на них, запустим Arduino IDE 1.6 и полезем в настройки.

В окно «Additional URLs» вставим строку

Код:
http://arduino.esp8266.com/package_esp8266com_index.json

Затем откроем «Boards manager» и введём в строку поиска «ESP8266». Нажмём Install и приготовимся ждать, пока скачается аж 130 мегабайт пакетов:

Подключим «бутерброд» к компьютеру в нижний (полноценный) разъём MicroUSB. Windows должна определить конвертер USB-TTL «CH340G» и присвоить ему виртуальный порт. Именно этот порт мы и укажем в настройках Arduino IDE. Остальные настройки такие:

Закинем в память элементарный код

Код:
#include

const char* ssid = "??? имя вашей точки WiFi ???";
const char* password = "??? пароль ???";

WiFiServer server(80);

void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
server.begin();
Serial.print("IP-адрес нашего модуля: ");
Serial.println(WiFi.localIP());
}

void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
client.flush();
String s = "HTTP/1.1 200 OKrnContent-Type: text/plainrnrnhello from esp8266!n";
client.print(s);
delay(1);
}

Обратите внимание — в процессе прошивки кнопку Flash жать не нужно — плата обо всём позаботится сама.

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

Либо с помощь Arduino serial monitor (скорость порта — 115200), либо в вебинтерфейсе роутера подсматриваем IP-адрес, который заполучил в домашней WiFi-сети наш ESP8266. Открываем этот адрес в браузере компьютера или телефона:

Наше устройство подключилось к домашней сети, подняло веб-сервер и нам отвечает.

Убедились в работоспособности устройства? Едем дальше.

Для того, чтобы оно сгодилось на что-то полезное в быту, интересно «подружить» его, например, с реле. Правда, классические реле на 5 вольт по определению отпадают — слишком велик риск, что напряжения 3.3 вольта не хватит, чтобы электромагнит смог сдёрнуть якорь. Поэтому берём твердотельное реле Omron за $1.90. По даташиту имеющегося у нас напряжения ему хватит для чёткого срабатывания:

Подключаем «плюс» и «минус» к контактам VCC и GND верхнего слоя «бутерброда», а третий, сигнальный, провод — к, например, контакту GPIO 2. В качестве программы можно взять скетч WiFiWebServer, который прилагается к библиотеке Ардуино.

Я для теста взял простую галогеновую лампочку на 20Вт и вдоволь ей «нащёлкался»:

Срабатывание происходит за долю секунды после подачи команды. Чтобы проверить надёжность, я вставил в код простенький счётчик и набросал простой bat-файл, который с паузой в секунду включал и выключал лампочку. До кучи открыл пару дополнительных окон, из которых начал бомбардировать IP-адрес модуля бесконечной командой ping. Через несколько часов счётчик включений-выключений превысил 19 тыс., но всё работало — что вселяет некоторую уверенность в надёжности устройства.

Если вы дочитали досюда, но в голове крутится мысль «что-то это всё сложно», у меня для вас заготовлено приятное

Помните, я упоминал, что китайский производитель «на сдачу» поставил на плату RGB-светодиод и фоторезистор? С ними можно поэкспериментировать, даже если у вас нет никаких иных датчиков и прочей периферии.

В этом варианте сделать над собой усилие и запустить Arduino IDE вам потребуется ровно один раз.

  • Откройте www.blynk.cc/getting-started/
  • Скачайте оттуда мобильное приложение (есть как под Андроид, так и под Айфон)
  • Запустите приложение и получите свой уникальный ключ («token»). Его можно не переписывать, а одним нажатием кнопки отправить себе на почту.

  • Установите в Arduino IDE библиотеку github.com/blynkkk
  • Из меню File — Examples — Blynk — Boards and Shilelds откройте пример «ESP8266 standalone»

  • В пример впишите (а) название вашей сети (б) пароль от неё и (в) ключик, который вы получили от приложения на Email
  • Залейте код в ESP8266
  • Всё, можете выключать компьютер, он вам больше не понадобится. Всё остальное мы будем делать в приложении.

Экран приложения — это пустое поле, на котором можно, как на приборной доске, разместить элементы. Для начала попробуйте «zeRGBa» и «gauge»:

В настройках «зебры» укажите, что трёхцветный светодиод на плате подключён к пинам 12 (зелёный), 13 (синий) и 15 (красный):

В настройках «gauge» укажите, что фоторезистор на плате подключён к аналоговому входу «adc0»:

Активируйте то, что вы наваяли, нажав на кнопку в правом верхнем углу. Вы увидите, что жёлтый индикатор меняет показания в зависимости от освещённости, а RGB LED на «бутерброде» меняет цвет, когда вы тыкаете по «зебре»:

Практика показала, что эта штуковина очень нравится детям. Одно дело — играть на планшете в чужие игры, другое — это сделать и раскрасить «пульт» самому и управлять чем-то осязаемым. Достаточно взять на себя подготовительную часть в Arduino, а затем показать, как этим пользоваться, выдать несколько светодиодов, кнопок или деталек типа аналогового датчика температуры LM35 — у вас немедленно отберут «игрушку» и чадо будет занято надолго. За уши не оторвёте, проверено.

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

Резюме

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

«Бутерброд» оказался на диво удачным. Он менее чем на доллар дороже «голого» ESP8266-12, но экономит вам кучу времени и хлопот. Ворох проводов и макетка — не нужны.

Ход с предустановкой на плату LED и фотодатчика — очень удачный. Даже если у вас кроме модуля и кабеля MicroUSB ничего нет, вы всё равно можете хоть что-то для начала испробовать и получить удовольствие от покупки. Если они не нужны на готовом изделии — просто отпаяйте или срежьте.

По такой цене «бутерброд» — явный конкурент Arduino Nano, и делает очень ненужными модули Bluetooth (типа HC-05) и тем более — радиомодули NRF24L01+.

Ссылка на магазин:

Проверенный магазин…>>>

17.07.2016, 15:32

Оставить комментарий

Вы можете использовать следующие теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>