DiyУмный дом

Встречайте убийцу Ардуино: ESP8266

Встречайте убийцу Ардуино: ESP8266

Wi-Fi является неотъемлемой частью любого DIY-проекта Internet of Things (IoT), но наш любимый Arduino не поставляется с Wi-Fi, а добавление щита Wi-Fi может привести к общей стоимости около 40 долларов. Что если я скажу вам, что есть Arduino-совместимая dev-плата со встроенным Wi-Fi менее чем за 10 долларов? Ну, есть.

Встречайте убийцу Ардуино: ESP8266. Это был лишь вопрос времени, когда корона была украдена у блестящей головы нашей дорогой платы разработки Arduino. Можно ли влюбиться в печатную плату?

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

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

Конечно, вы не ограничены использованием Arduino IDE — они совместимы и с Lua (который выглядит как укороченный Python для моих глаз новичка), но, поскольку мы решаем эту проблему с точки зрения тех из нас, кто научился на Arduino это то, что мы расскажем исключительно сегодня.

В настоящее время существует довольно много моделей ESP8266, но я собираюсь пойти дальше и порекомендовать эту: ESP-12E (также известный как NodeMCU 1.0 или его новейший родной NodeMCU 2.0).

Это немного дороже, чем другие (6,50 долл. По сравнению с 4 долл.!), Но включает в себя драйвер последовательного интерфейса, необходимый для программирования чипа, и имеет встроенный регулятор мощности, а также множество выводов ввода-вывода. Он широко поддерживается и на самом деле ничего не нужно, кроме USB-соединения для программирования или питания, поэтому с ним проще всего работать. Если вы покупаете какую-либо другую плату ESP8266, вам может понадобиться отдельный стабилизатор питания 3,3 В и подходящее соединение FTDI для программирования.

Начало работы с ESP8266-12E и Arduino

Сначала установите драйверы для этой платы. Возможно, вам придется отключить подпись KEXT, если вы используете El Capitan из-за новых систем безопасности.

Далее нам нужно включить поддержку ESP8266 от менеджера плат Arduino IDE. Откройте «Настройки» и введите следующий URL-адрес, на котором написано « Дополнительные URL-адреса менеджера доски объявлений» :

Arduino Board Manager URLS

Нажмите Ok, затем откройте Boards Manager из меню Tools -> Board , найдите esp8266 и установите платформу. Теперь вы должны увидеть выбор для NodeMCU 1.0.

выберите доску

Оставьте процессор и загрузите скорость как есть, и выберите ваш вновь установленный последовательный порт. На Mac это выглядит как cu.SLAB_USBtoUART .

В качестве первой программы я бы предложил простой сканер Wi-Fi — найдите его в меню Файл -> Примеры -> ESP8266WiFi -> WifiScan . Обратите внимание, что загрузка происходит довольно медленно, но в конечном итоге будет сказано «завершена загрузка», и в этот момент (не раньше или вы прервете процесс загрузки) вы можете открыть монитор последовательного порта. Вы должны увидеть что-то похожее на это:

тест сканирования wifi esp8266
Успех! Теперь давайте попробуем подключиться к одному.

Вот абсолютно простой код для подключения к сети Wi-Fi. Он не делает ничего, кроме подключения, но вы можете добавить его позже. Просто не забудьте изменить YOUR_SSID и YOUR_PASSWORD на свои данные Wi-Fi. Загрузите, откройте консоль Serial и вы увидите, что она подключается.

#include const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; WiFiClient wifiClient; void setup() { Serial.begin(115200); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void loop() { } 

Разве это не здорово, как это просто смешно?

Прежде чем мы продолжим, вот схема распиновки — она ​​может пригодиться позже. Обратите внимание, что номера контактов, указанные в коде, являются номерами GPIO, а не D0-16, вероятно, написанными на вашей печатной плате. Если вы абсолютно точно не можете понять, почему датчик не работает, вы, вероятно, перепутали номера выводов.

NodeMCU__v1.0_pinout

Быстрый Умный Дом Датчик с MQTT и DHT11

Вот практический пример, который вы можете сразу использовать для наблюдения за своим домом. Мы добавим датчик температуры и влажности DHT11, а затем сообщим о значениях по протоколу MQTT по сети Wi-Fi, в моем случае, в систему домашней автоматизации OpenHAB DIY (если нет, вы можете прочитать наше руководство для начинающих по на Raspberry Pi , часть 2, посвященная установке сервера MQTT. )

Со стороны проводки подключите датчик DHT к GND , 3,3 В и ~ D4 (или GPIO 2). Это все, что нам нужно на данный момент.

Загрузите эти библиотеки MQTT и DHT . Даже если они у вас уже есть , все равно загрузите их, сделайте резервную копию того, что у вас есть, и перезапишите их. Последняя библиотека DHT11 от Adafruit использует автоматический алгоритм для определения скорости, с которой данные считываются с датчика, но в ESP8266 она глючит и 90% времени приводит к ошибкам чтения.

В старой версии 1.0 библиотеки, которую я включил в загрузку, вы можете вручную изменить время: 11 лучше всего подходит для этих плат ESP2866. Я также просмотрел множество копий библиотеки MQTT, пытаясь найти одну хорошую функцию обратного вызова , и, наконец, приземлился на включенную. Вам нужно будет перезапустить Arduino IDE после их замены.

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

Похожие посты
Умный дом

Что такое «Эхо Амазонки Авто»?

Умный дом

Что такое умный туалет и стоит ли его покупать?

Как сделатьУмный дом

Как добавить Alexa в ваше умное зеркало

Tech новостиКак сделатьУмный дом

Как контролировать свои потолочные вентиляторы в SmartHome