Добрый день дорогой читатель, хочу поделиться опытом подключения ESP8266 в систему HomeBridge (HomeKit). На примере охранной системы. Для этого нам понадобиться Raspbery pi с установленным HomeBridge, контроллер ESP8266 и любое совместимое устройство (реле, датчик открытия, движения, температуры, влажности), покажу на примере nodeMCU.
Подключаемся по SSH к нашей Raspbery pi и далее в терминале
bash
Копировать
sudo apt update sudo apt install -y mosquitto mosquitto-clients
Во время установки Вам потребуется ввести «Y» и нажать «Enter»
bash
Копировать
sudo systemctl enable mosquitto.service
Поздравляю вы получили рабочий брокер у себя на Raspbery Pi
Первым делом скачаем и распакуем последнюю версию прошивки. Я использовал ESP_Easy ссылка, архив состоит из набора прошивок под разный объем памяти устройств и программы для заливки прошивки в ESP FlashESP8266. Подключаем ESP8266 к компьютеру, Подключение осуществляется двумя способами:
— при помощи usb-micro usb кабеля (вопросов не должно возникнуть)- или при помощи ttl конвертера, обратите внимание пины ttl конвертера 3.3v, GRND, RX, TX на пины ESP8266 3.3v, GRND, TX, RX (TX и RX нужно поменять местами).Далее запускаем FlashESP8266.exe из скаченного архива.
На этом прошивка закончена. Переходим к настройке ESP8266
Берем телефон или планшет в руки. Открываем настройки Wi-Fi, и видим там новую сеть ESP-0, подключаемся к ней, пароль configesp. Нас перекидывает в настройки ESP_Easy, выбираем смою домашнюю wifi сеть и вписываем пароль.
Если все верно роутер назначит для ESP ip адрес. Дальнейшие действия возможны на компьютере.
Открываем в браузере 192.168.1.113 и попадаем в админку ESP_Easy.Первым делом нужно настроить MQTT клиент. Переходим во вкладку Сontrollers и нажимаем в первой строчке Edit. Выбираем Protocol: OpenHAB MQTTController IP: ip adress брокераController Port: 1883 (по дефолту)Controller User/Password: admin/admin (по дефолту) Ставим галочку Enabled и жмем Submit
Покажу на примере такого реле:
Практически все устройства подключаются тремя пинами (3. 3v, GND, и информационный пин IN). Так вот, подключаем 3.3v и GND, а пин IN устройства подключаем на свободный GPIO нашей ESP (в моем случаи GPIO-0).Далее идем в админку ESP_Easy в раздел Devices и нажимаем Edit.Выбираем Device: Switch input — Switch Name: Relay1 Enabled: Ставим галочку 1st GPIO: GPIO на плате при подключении в моем случаи GPIO-0 Send to Controller: Ставим галочку #Name: Switch
Нажимаем SubmitПереходим к настройкам плагина для homebridge.
Я использовал homebridge-mqttthing, он мне понравился большим количеством поддерживаемых устройств.Подключаемся по SSH к малине и пишем в командной строке:
bash
Копировать
sudo npm install -g homebridge-mqttthing
далее nano ~/.homebridge/config.jsonи добавляем аксессуары в конфиг:
json
Копировать
{ "accessory": "mqttthing", "type": "switch", "name": "switch", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getOn": "/ESP_Easy/Relay1/Switch", "setOn": "/ESP_Easy/gpio/0" }, "integerValue": "true", "onValue": "0", "offValue": "1" }
Перезагружаем homebridge и радуемся проделанной работой.
Модуль реле (4 канала)
Экран LCD 2004 (HD44780) c I2C (IIC) адаптером
Датчик температуры и влажности DHT22
Инфракрасный PIR датчик HC-SR501
Сирена 12В.
NodeMcu V3 Lua (ESP8266, Ch440)
Она выглядит очень просто.
Алгоритм работы системы:
Реле1 — Охрана (добавил как датчик движения)
Реле2 — Сирена
Если «Датчик движения» или «Датчик открытия» сработал тогда замкнуть «Реле1» (это мы настраиваем в разделе Rules)Если «Реле2» Включено в приложении HomeKit у нас сработает «Сирена»
Также если Сирена выключена/включена по событиям с Датчика движения/открытия нам прилетают push уведомления и включается освещение в гараже:
Правила для срабатывания охраны и включения освещения.
bash
Копировать
on contact#State do if [contact#State]=1 gpio,0,0 gpio,16,0 else gpio,0,1 gpio,16,1 endif endon on motion#State do if [motion#State]=1 gpio,0,0 gpio,16,0 else gpio,0,1 gpio,16,1 endif endon
json
Копировать
{ "accessory": "mqttthing", "type": "switch", "name": "Sirena G", "url": "http://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getOn": "/garage/Sirena/Switch", "setOn": "/garage/gpio/14" }, "integerValue": "true", "onValue": "0", "offValue": "1" }, { "accessory": "mqttthing", "type": "motionSensor", "name": "Ohrana G", "url": "mqtt://127. 0.0.1", "username": "admin", "password": "admin", "topics": { "getMotionDetected": "/garage/Ohrana/Switch" }, "integerValue": "true", "onValue": "0", "offValue": "1" }, { "accessory": "mqttthing", "type": "lightbulb", "name": "Svet G", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getOn": "/garage/Svet/Switch", "setOn": "/garage/gpio/16" }, "integerValue": "true", "onValue": "0", "offValue": "1" }, { "accessory": "mqttthing", "type": "switch", "name": "Relay", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getOn": "/garage/Relay/Switch", "setOn": "/garage/gpio/10" }, "integerValue": "true", "onValue": "0", "offValue": "1" }, { "accessory": "mqttthing", "type": "contactSensor", "name": "Contact G", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getContactSensorState": "/garage/contact/State" }, "integerValue": "true", "onValue": "1", "offValue": "0" }, { "accessory": "mqttthing", "type": "temperatureSensor", "name": "Temp G", "url": "mqtt://127. 0.0.1", "username": "admin", "password": "admin", "topics": { "getCurrentTemperature": "/garage/dht22/Temperature" } }, { "accessory": "mqttthing", "type": "humiditySensor", "name": "Hum G", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getCurrentRelativeHumidity": "/garage/dht22/Humidity" } }, { "accessory": "mqttthing", "type": "motionSensor", "name": "Motion G", "url": "mqtt://127.0.0.1", "username": "admin", "password": "admin", "topics": { "getMotionDetected": "/garage/motion/State" }, "integerValue": "true", "onValue": "1", "offValue": "0" }
yaml
Копировать
mqtt: broker: localhost port: 1883 protocol: 3. 1 binary_sensor: - platform: mqtt name: "Garage_motiom" state_topic: "/garage/motion/State" payload_on: "1" payload_off: "0" device_class: motion - platform: mqtt name: "Garage_Vorota" state_topic: "/garage/contact/State" payload_on: "1" payload_off: "0" device_class: opening - platform: mqtt name: "Garage_Ohrana" state_topic: "/garage/Ohrana/Switch" payload_on: "0" payload_off: "1" device_class: motion switch: - platform: mqtt name: Garage_Sirena state_topic: "/garage/Sirena/Switch" command_topic: "/garage/gpio/14" payload_on: "0" payload_off: "1" optimistic: false qos: 1 retain: true - platform: mqtt name: "Garage_Svet" state_topic: "/garage/Svet/Switch" command_topic: "/garage/gpio/16" payload_on: "0" payload_off: "1" optimistic: false qos: 1 retain: true - platform: mqtt name: "Garage_Relay" state_topic: "/garage/Relay/Switch" command_topic: "/garage/gpio/10" payload_on: "0" payload_off: "1" optimistic: false qos: 1 retain: true sensor: - platform: mqtt name: "Garage_Temperature" state_topic: "/garage/dht22/Temperature" unit_of_measurement: '°C' - platform: mqtt name: "Garage_Humidity" state_topic: "/garage/dht22/Humidity" unit_of_measurement: '%'
Таким образом я подключил к одной ESP8266 nodeMCU 5 устройств, датчик движения, открытия, температуры/влажности, сирена. Экран для вывода информации Поместилось все это в очень маленький корпус и теперь трудиться в гараже.
ESP8266 nodeMCU: 180р.LCD дисплей: 300р.Модули реле: 200р.Движение: 50р.геркон покупал в городе: 200р.Температура/Влажность DHT22: 200р.БП от сетевого оборудования, нашел в гараже 9в.Бокс 70р. В хоз магазине.
В статье описывается вариант подачи как дискретных, так и ШИМ сигналов, исполнителем которых является плата на контроллере ESP8266, а посредником — Android телефон с доступом в Интернет и с установленной системой визуального потокового программирования Node-RED и MQTT-брокером mosquitto. Аналогично будет продемонстрирован вывод показаний температуры по запросу из Телеграм с помощью датчика ds18b20. Также будет показана возможность сохранения ресурса аккумулятора при постоянно подключенном зарядном устройстве через недозаряд при помощи linux-скрипта ACC.
Обладателям старых Android-смартфонов и газовых котлов на даче посвящается!
Моя задача на данную статью — показать лишь базовые возможности организации дискретного и ШИМ управления через Telegram-бота, иначе бы текст получился слишком раздутый.
На данный момент, существует три наиболее легких способа получить контроль над Arduino-устройством через интернет:
1. Blynk — недостатки в ограниченном количестве контролируемых выводов в бесплатной версии, зависимость от чужого облака. В старой версии приложения можно было делать неограниченное количество контролируемых выводов, но эта версия приложения больше не поддерживается.
2. Arduino cloud — аналогично, ограниченное количество контролируемых выводов в бесплатной версии, зависимость от чужого облака.
3. Node-RED Богатый функционал при бесплатности. Возможность организовать на «белом» IP доступ к выстроенной панели управления приборами из любой точки земли, либо настроить общение через Telegram-бота.
Встраивается в системы управления умным домом, например Home assistant, но и сама по себе представляет широкие возможности для построения автоматизации различной сложности.Следует отметить, что автоматизация на Node-RED уже затрагивалась на данном ресурсе — №1, №2, что говорит об универсальности данной системы программирования.
Мы же будем действовать по такой схеме (чертил в diagrams.net, рекомендую):
Приложение Telegram на компьютере или смартфоне через бота отправляет команду (через меню команд, глобальную клавиатуру или клавиатуру под сообщением). Команда доходит до Node-RED, хостящейся на смартфоне под управлением Android с установленным приложением Termux (на котором поднят Node.js). Далее специальный модуль node-red-contrib-telegrambot обрабатывает полученную команду, интерпретирует ее в команды топиков MQTT, брокер которого тоже хостится на Android-телефоне посредством Termux. Платы контроллеров с wi-fi со специально адаптированной прошивкой (с подписками на соответствующие топики) следят за изменением событий на подписанных топиках и при изменении посылают сигнал на дискретные выходы.
Как видно, при этом мы вольны как угодно распоряжаться балансом сложности логики контроллер-потоки Node-RED и в зависимости от задачи оставлять сложную логику на стороне контроллера или водружать ее на плечи Node-RED.
Видео демонстрирует возможность как дискретного управления 6 светодиодами, так и пропорционального управления ими же, с шагом 25% (чтобы не усложнять логику работы с двумя клавиатурами бота телеграм). А также позволяет запрашивать текущую температуру с датчика ds18b20.
Чтобы организовать всю эту систему нам нужно:
1. Выбрать сервер под Node-RED и mosquitto. Сервером будет служить смартфон под управлением Android версии не ниже 7.
2. Установить на сервер приложение Termux.
3. В Termuxe поднять node.js, установить зависимости для Node-RED и установить саму Node-RED. Установить брокер MQTT mosquitto.
4. Написать логику работы с Телеграм-ботом в Node-RED.
5. Написать прошивку под вышеозначенную логику для wi-fi-контроллеров.
6. Разобраться с деградацией аккумулятора телефона-сервера при постоянно подключенном к сети состоянием посредством скрипта ACC.
Для систем домашней автоматизации принято использовать одноплатные компьютеры, например: orange pi, banana pi. Однако, в базовой комплектации они хранят свои данные на простой microSD, которая исчерпывает свой срок службы не столько за сравнительно короткое время (от полугода до года), но вдобавок еще и умирает внезапно, что несет определенные риски. Конечно, можно настроить ОС на минимацию записи на диск, но при наличии активной БД, все равно результат будет плачевным. Выходом может служить покупка nand-модуля памяти, но тогда и так не бюджетная система еще сильнее оттягивает карман. А ведь к ней нужно еще докупать ИБП модуль с аккумуляторами.
Автор уверен, что в современном хозяйстве с большой долей вероятности найдется ненужный Android-телефон, в котором уже имеется Nand-памят и встроенный ИБП в виде аккумулятора. Даже если версия системы будет меньше 7, то на известном ресурсе наверняка найдется ветка с достаточным количеством актуальных прошивок. Для наших нужд достаточно будет от 1.5ГБ ОЗУ (думаю, даже с 1ГБ все заведется).
У меня основным сервером служит Jiayu S3 без физического экрана. Будучи один раз настроенным на отладку по USB в заранее сохраненную виртуальную машину, я, при необходимости увидеть рабочий стол телефона, подключаюсь к нему через программу Scrcpy. Но 99% времени я взаимодействую с сервером через командную строку по SSH.
Последнюю версию данного приложения можно скачать непосредственно со страницы релизов на GitHub либо установить магазин приложений Fdroid и уже оттуда установить Termux.
Внимание, версия из Google Play не поддерживается и не рекомендуется к установке!
Если не собираетесь поднимать Node-RED на смартфоне, можно сразу переходить к п.4.
Чтобы не мучиться с неудобной клавиатурой смартфона, предлагаю законнектиться к телефону по SSH и с компьютера комфортно вводить команды через копипаст. Для этого надо установить OpenSSH и задать пароль.
Запускаем Termux и в нем проделываем последовательность команд
Порядочное количество терминальных команд Linux
pkg update
В случае запроса, чей пакет ставить — нажимает Y, т.е. пакет мейнтейнера.
pkg install openssh passwd
Задаем пароль, запускаем сервер SSH командой
sshd
и уже с компьютера (который находится в одной сети с телефоном) вводим
ssh -p 8022 x.x.x.x
Где x.x.x.x ваш IP, который можно узнать через команду ifconfig (секция wlan0).
При первом соединении через командную строку вас попросят подтвердить соединение, на что мы должны вбить yes и дальше можно работать через компьютер. Также можно соединяться по SFTP через программу WinSCP для передачи файлов.
А если вы установите
pkg install termux-api
И выполните в консоли
termux-setup-storage
Затем подтвердите на смартфоне запрос на доступ к файловой системе, то в домашней папке Termux будете иметь смонтированную домашнюю директорию Android. Кстати, на скрине Termux с настроенной оболочкой zsh и темой PowerLevel10K. Здесь написано, как все это настроить.
Начинаем подготовку зависимостей для Node-RED.
pkg install wget wget https://raw.githubusercontent.com/its-pointless/its-pointless.github.io/master/setup-pointless-repo.sh chmod +x setup-pointless-repo.sh ./setup-pointless-repo.sh
Скрипт отрабатывает криво и настраивает репозиторий с древними версиями gcc. Надо это поправить.
nano /data/data/com.termux/files/usr/etc/apt/sources.list.d/pointless.list
И меняем 21 на 24, сохраняемся по Ctrl+O, выходим из nano по Ctrl + X и делаем
pkg update
pkg install python make clang gcc-11 nodejs-lts npm i -g --unsafe-perm node-red termux-fix-shebang $(which node-red)
Теперь установим mosquitto.
pkg install mosquitto
Настроим mosquitto. Для этого в конце файла конфигурации брокера запишем параметры мониторинга порта и разрешим анонимный вход. Делаем:
nano /data/data/com.termux/files/usr/etc/mosquitto/mosquitto.conf
добавляем в конце файла:
listener 1883 allow_anonimus true
Настроим автозапуск. Для этого из магазина F-Droid нужно скачать приложение Termux:Boot и единоразово запустить его. Далее
cd .termux mkdir boot cd boot nano start.sh
После чего попадаем в пустой только созданный файл, в котором вводим
#!/data/data/com.termux/files/usr/bin/sh termux-wake-lock sshd & mosquitto -c /data/data/com.termux/files/usr/etc/mosquitto/mosquitto.conf & node-red
Внимание! После апгрейда Node-RED на новую версию, нужно сделать
termux-fix-shebang $(which node-red)
один раз, иначе автозагрузка Node-RED не будет работать.
Сохраняемся. Вводим в терминале
termux-wake-lock
На смартфоне должно высветиться предложение не ограничивать работу приложения Termux в фоне. Соглашаемся.
После перезагрузки в менеджере процессов по команде top должен быть Node-RED.
Мы уже научились узнавать IP сервера по ifconfig (секция wlan0). Соответственно в браузере компьютера, находящегося в одной сети со смартфоном, вводим
http://x.x.x.x:1880/
Видим приветственное сообщение и после него редактор Node-RED
У данной статьи нет цели описывать органы управления редактора Node-RED, поэтому я буду лишь направлять читателя, давая определенную последовательность действий, ведущую к результату. Подробнее ознакомиться с тонкостями Node-RED можно в русскоязычной Wiki.
Сначала нам нужно установить модуль node-red-contrib-telegrambot. Для этого в правом верхнем углу щелкаем на «гамбургер» и жмем «Manage palette» (alt + p), выбираем «Install» и вводим node-red-contrib-telegrambot, жмем «Install». Если Node-RED просит перезапуститься, чтобы модуль заработал, то перезапускаемся.
Теперь наша задача создать своего Телеграм-бота, получить его токен и Chat-ID диалога с ботом, а далее внести эти данные в поток. Переходим в https://t.me/botfather, в меню выбираем /newbot, задаем имя бота, юзернейм, заканчивающийся на «bot» и получаем в ответном сообщении токен
Для получения ChatID своего бота cоздаем следующую конструкцию из нод, находящихся в левой части редактора. Это простейший бот, возвращающий отосланное сообщение.
Два быстрых клика на ноде «Telegram receiver» и перед нами окно создания нового бота. Нажимаем на карандаш, вводим имя бота и наш токен. Нажимаем на Done. И применяем изменения по кнопке Deploy в правом верхнем углу
Теперь идем в приложение Телеграм, вписываем в поиск юзернейм бота (заканчивающийся на bot) и вступаем с ним в диалог. Достаточно написать туда «Привет». Бот вернет это сообщение.
А в правой части редактора на вкладке «Debug» будет отображен Payload нашего сообщения (т.к. на выход мы подключили отладочную ноду). Запишем из него chatId.
Далее нам нужно импортировать мой поток (Flow), где я разместил логику работы Телеграм-бота (берем на Pastebin). Жмем на «гамбургер» и выбираем «Import» (ctrl + i). Вставляем мой JSON и после импорта в редакторе должна появиться вкладка Telegram LEDs с настроенным потоком:
Заметьте, что фильтр потока яркости лампы я сделал двумя способами — с функциональной нодой и на стандартных нодах. Первый вариант информативнее, но занимает больше места в редакторе. Сочетание данных стилей позволяет сделать ваши потоки по-настоящему простыми в восприятии.
Перенастраиваем все Telegram-ноды на своего бота. Для этого при двойном клике на соответствующей ноде выбираем свого бота. А также во всех функциональых нодах «Sent to TG light number» в chatId нужно вставить свой chatId. В розовых нодах MQTT нужно поменять IP на IP смартфона. Не забываем задеплоить изменения.
Удобно иметь наглядное представление набора доступных команд в едином меню.
Для этого в BotFather набираем /setcommands выбираем своего бота и задаем список команд с описанием в соответствии с синтаксисом. Например:
temp - Температура ds18b20 leds - Выбор светодиодов red - 5 степеней ШИМ красного LED green1 - 5 степеней ШИМ зеленого LED1
Делаем уже знакомую нам операцию импортирования потока (берем на Pastebin). Настраиваем ноды Telegram, MQTT и в функциональной ноде записываем свой chatId.
Уже сейчас мы можем посмотреть первые результаты работы. Для этого нам нужен MQTT-клиент. Рекомендую MQTT Explorer. Им мы будем мониторить изменения в наших топиках.
После запуска программы настраиваем подключение в соответствии с IP нашего MQTT-сервера.
И после соединения мы уже будем видеть активный топик $SYS. Если сейчас послать в диалог нашего бота команду /temp то появится топик Temp с сообщением Request=Yes. Аналогично и с другими командами.
Осталось настроить микроконтроллер так, чтобы он реагировал на изменения в соответствующих топиках.
Для Arduino есть несколько библиотек, реализующих протокол MQTT. Мы остановимся на PubSubClient, как наиболее популярной и имеющей подробную документацию. Примеры ее использования есть в поставляемой документации, а также на замечательном сайте Стива.
Прикрепляю код на Pastebin. Для его работы нужны библиотеки DallasTemperature by Miles Burton, OneWire by Paul Stoffregen и, собственно, сам PubSubClient. Отмечу, что чтобы функционально реализовать работу с ШИМ, мне потребовалось вынести обработку входящих данных из функции callback в основной цикл. Обратите внимание на пины, к которым подключены ds18b20 и светодиоды.
Работа смартфона в серверном режиме предполагает постоянное подключение к сетевой зарядке. Есть несколько факторов, приводящих к ускоренной деградации аккумулятора в таком режиме.
1. Постоянное нахождение в режиме 100% заряженности, что вредно для Li-ion аккумуляторов.
2. Если контроллер заряда телефона не поддерживает прямую поставку тока к потребителю, в обход аккумулятора при достижении 100% зарядки аккумулятора, то он будет находиться в постоянном цикле заряд-микроразряд. Что также вредно.
Для решения эти проблем существует скрипт ACC. Внимание, для его работы нужны root-права! Вот статистика работы аккумулятора моего смартфона с этим скриптом за 20 дней.
Как видно, за этот период батарея ни разу не заряжалась полностью. А если бы не такой большой промежуток, можно было бы увидеть «пилу» между зарядом от 60%, ниже которого при подключенной зарядке телефон не разряжается, и до 70%, после которого идет разряд при подключенном зарядном устройстве.
Скрипт устанавливается как модуль Magisk и после перезагрузки запускается сам. Существует android приложение ACCA, позволяющее наглядно управлять параметрами скрипта.
Я писал это, чтобы в дальнейших статьях, где описывается более сложная автоматизация на основе NodeRED, ссылаться на уже готовый гайд. Рекомендую группу в телеграме, где вы можете получить консультацию по этой системе программирования. И желаю удачи в освоении программирования в разных его ипостасях!
Основные мультиплатформенные инструменты для любого разработчика ESP8266 от автора luatool, включая LUA для NodeMCU и MicroPython. Также поддерживаются AT-команды.
Требуется установленная JAVA (SE версии 7 и выше).
Windows (x86, x86-64)
Linux (x86, x86-64, ARM soft & hard float)
Solaris (x86, x86-64)
Mac OS X (x86, x86-64, PPC) , КПП64)
Начало работы с ESPlorer IDE Автор Руи Сантос (бесплатная загрузка)
Домашняя автоматизация с использованием ESP8266 Автор Rui Santos
Для пожертвований с помощью кредитной/дебетовой карты, электронного кошелька или интернет-банкинга (в некоторых странах) нажмите кнопку пожертвования PayPal.
На данный момент в процессе — поддержка MicroPython.
Купить у нас | Купить в Великобритании | Купить в Германии | Купить в IT | Купить от Франции | Купить у ES | ここでご購入を! |
Osoyoo NodeMCU поставляется с предварительно запрограммированным интерпретатором Lua, но вам не обязательно его использовать! Вместо этого вы можете использовать Arduino IDE, которая может стать отличной отправной точкой для любителей Arduino, чтобы ознакомиться с технологиями, связанными с IoT. Обратите внимание, что когда вы используете плату NodeMCU с Arduino IDE, это будет записываться непосредственно в прошивку, стирая прошивку NodeMCU. Поэтому, если вы хотите вернуться к Lua SDK, используйте «прошивальщик» для повторной установки прошивки.
Программирование NodeMCU может быть таким же простым, как и в Arduino, основное отличие заключается в распределении контактов на плате nodemcu. Выполните следующие операции и наслаждайтесь своим первым путешествием NodeMCU и IDE!
Используйте USB-кабель для подключения NodeMCU к компьютеру. При включении питания на плате мигает синий светодиод, но он не будет гореть постоянно.
Чтобы загрузить код на ESP8266 и использовать последовательную консоль, подключите любой кабель micro USB с возможностью передачи данных к плате IOT ESP8266, а другой конец — к USB-порту вашего компьютера.
NodeMCUv0. 9 поставляется с серийным чипом Ch440. Драйвер можно скачать и установить здесь.
Загрузите IDE с Arduino.cc (1.6.4 или выше). Вы можете использовать существующую IDE, если она уже установлена.
Вы также можете попробовать загрузить готовый пакет из проекта ESP8266, если прокси вызывает у вас проблемы
Шаг 1 Введите http://arduino. esp8266.com/stable/package_esp8266com_index.json
в поле «Дополнительные URL-адреса менеджера плат» в настройках Arduino v1.6.4+ (Откройте Arduino IDE–>Файл–>Настройки–>Настройки).
Введите ссылку и нажмите «ОК», чтобы сохранить изменения.
Шаг 2 ВЫБЕРИТЕ СООТВЕТСТВУЮЩИЙ ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ
Очень важно выбрать правильный последовательный порт. Здесь можно споткнуться . Хорошей новостью является то, что если у вас есть плата, совместимая с Arduino UNO, имя будет отображаться рядом с пунктом меню последовательного порта, чтобы его было легко выбрать!
Шаг 3. Используйте диспетчер плат для установки пакета ESP8266
Войдите в диспетчер плат и найдите тип платы, как показано ниже:
Прокрутите экран Broads Manager вниз, вы увидите модуль под названием «esp8266 by esp8266 Community» (см. рисунок ниже), выберите последнюю версию и нажмите «Установить».
Пакет ESP8266 успешно установлен.
Примечание. Лучше закрыть среду разработки Arduino и перезапустить ее снова. Шаг 4. Настройка поддержки ESP82660004
Выберите порт отладки в Tools->Debug port: Serial
Настройте меню платы и выберите правильный порт для вашего устройства.
Шаг 5 Теперь просто действуйте как Arduino: начните рисовать! Давайте воспользуемся примером из IDE, чтобы увидеть, как это работает. из Файл->Примеры->ESP8266 WiFi->WiFiScan
Вы увидите окна скетча.