8-900-374-94-44
[email protected]
Slide Image
Меню

Explorer esp8266: IDE для ESP8266 – esp8266

Содержание

Охранная система в гараж на ESP 8266 с интеграцией в Apple HomeKit

Добрый день дорогой читатель, хочу поделиться опытом подключения ESP8266 в систему HomeBridge (HomeKit). На примере охранной системы. Для этого нам понадобиться Raspbery pi с установленным HomeBridge, контроллер ESP8266 и любое совместимое устройство (реле, датчик открытия, движения, температуры, влажности), покажу на примере nodeMCU.

Начнем с установки MQTT брокера

Подключаемся по SSH к нашей Raspbery pi и далее в терминале 

bash

Копировать

sudo apt update
sudo apt install -y mosquitto mosquitto-clients

Во время установки Вам потребуется ввести «Y» и нажать «Enter»

bash

Копировать

sudo systemctl enable mosquitto.service

Поздравляю вы получили рабочий брокер у себя на Raspbery Pi

Далее приступим к прошивке ESP8266

Первым делом скачаем и распакуем последнюю версию прошивки. Я использовал 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

Подключение ESP8266 к Wi-Fi

Берем телефон или планшет в руки. Открываем настройки Wi-Fi, и видим там новую сеть ESP-0, подключаемся к ней, пароль configesp. Нас перекидывает в настройки ESP_Easy, выбираем смою домашнюю wifi сеть и вписываем пароль.

 Если все верно роутер назначит для ESP ip адрес. Дальнейшие действия возможны на компьютере.

Настройка ESP8266

Открываем в браузере 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

Подключение устройств к ESP8266

Покажу на примере такого реле:

Практически все устройства подключаются тремя пинами (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.

Установка и настройки Plugins 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 и радуемся проделанной работой.

Таким образом я подключил к одной ESP8266:

Модуль реле (4 канала)

Экран LCD 2004 (HD44780) c I2C (IIC) адаптером

Датчик температуры и влажности DHT22

Инфракрасный PIR датчик HC-SR501

Сирена 12В.

NodeMcu V3 Lua (ESP8266, Ch440)

Пример добавления датчиков в ESP_easy

Схема подключения сирены

Она выглядит очень просто.

Алгоритм работы системы: 


Реле1 — Охрана (добавил как датчик движения)

Реле2 — Сирена

Если «Датчик движения» или «Датчик открытия» сработал тогда замкнуть «Реле1» (это мы настраиваем в разделе Rules)Если «Реле2» Включено в приложении HomeKit у нас сработает «Сирена»

Также если Сирена выключена/включена по событиям с Датчика движения/открытия нам прилетают push уведомления и включается освещение в гараже: 

rules

Правила для срабатывания охраны и включения освещения.

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 

Полный файл конфигурации HomeBridge

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" }

Приведу пример конфига для Home-Assistant

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. Управляем освещением и смотрим температуру посредством Telegram-бота, который хостится на Android телефоне с помощью Node-RED.

В статье описывается вариант подачи как дискретных, так и ШИМ сигналов, исполнителем которых является плата на контроллере 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.

1. Выбор сервера

Для систем домашней автоматизации принято использовать одноплатные компьютеры, например: orange pi, banana pi. Однако, в базовой комплектации они хранят свои данные на простой microSD, которая исчерпывает свой срок службы не столько за сравнительно короткое время (от полугода до года), но вдобавок еще и умирает внезапно, что несет определенные риски. Конечно, можно настроить ОС на минимацию записи на диск, но при наличии активной БД, все равно результат будет плачевным. Выходом может служить покупка nand-модуля памяти, но тогда и так не бюджетная система еще сильнее оттягивает карман. А ведь к ней нужно еще докупать ИБП модуль с аккумуляторами.

Автор уверен, что в современном хозяйстве с большой долей вероятности найдется ненужный Android-телефон, в котором уже имеется Nand-памят и встроенный ИБП в виде аккумулятора. Даже если версия системы будет меньше 7, то на известном ресурсе наверняка найдется ветка с достаточным количеством актуальных прошивок. Для наших нужд достаточно будет от 1.5ГБ ОЗУ (думаю, даже с 1ГБ все заведется).

У меня основным сервером служит Jiayu S3 без физического экрана. Будучи один раз настроенным на отладку по USB в заранее сохраненную виртуальную машину, я, при необходимости увидеть рабочий стол телефона, подключаюсь к нему через программу Scrcpy. Но 99% времени я взаимодействую с сервером через командную строку по SSH.

2. Установка Termux

Последнюю версию данного приложения можно скачать непосредственно со страницы релизов на GitHub либо установить магазин приложений Fdroid и уже оттуда установить Termux.
Внимание, версия из Google Play не поддерживается и не рекомендуется к установке!

3.

Поднимаем Node-RED в Termux

Если не собираетесь поднимать 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.

4. Работа в 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 просит перезапуститься, чтобы модуль заработал, то перезапускаемся.

4.1 Создание и настройка бота Телеграм

Теперь наша задача создать своего Телеграм-бота, получить его токен и 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 смартфона. Не забываем задеплоить изменения.

4.2 Создание набора команд в меню Telegram

Удобно иметь наглядное представление набора доступных команд в едином меню.

Для этого в BotFather набираем /setcommands выбираем своего бота и задаем список команд с описанием в соответствии с синтаксисом. Например:

temp - Температура ds18b20
leds - Выбор светодиодов
red - 5 степеней ШИМ красного LED
green1 -  5 степеней ШИМ зеленого LED1

4.3 Поток считывания температуры с ds18b20

Делаем уже знакомую нам операцию импортирования потока (берем на Pastebin). Настраиваем ноды Telegram, MQTT и в функциональной ноде записываем свой chatId.

4.4 Мониторим сообщения в MQTT-топиках

Уже сейчас мы можем посмотреть первые результаты работы. Для этого нам нужен MQTT-клиент. Рекомендую MQTT Explorer. Им мы будем мониторить изменения в наших топиках.

После запуска программы настраиваем подключение в соответствии с IP нашего MQTT-сервера.

И после соединения мы уже будем видеть активный топик $SYS. Если сейчас послать в диалог нашего бота команду /temp то появится топик Temp с сообщением Request=Yes. Аналогично и с другими командами.

Осталось настроить микроконтроллер так, чтобы он реагировал на изменения в соответствующих топиках.

5. Написание прошивки для Wi-Fi микроконтроллера

Для Arduino есть несколько библиотек, реализующих протокол MQTT. Мы остановимся на PubSubClient, как наиболее популярной и имеющей подробную документацию. Примеры ее использования есть в поставляемой документации, а также на замечательном сайте Стива.

Прикрепляю код на Pastebin. Для его работы нужны библиотеки DallasTemperature by Miles Burton, OneWire by Paul Stoffregen и, собственно, сам PubSubClient. Отмечу, что чтобы функционально реализовать работу с ШИМ, мне потребовалось вынести обработку входящих данных из функции callback в основной цикл. Обратите внимание на пины, к которым подключены ds18b20 и светодиоды.

6. Скрипт ACC продляет жизнь аккумулятору при постоянно подключенной зарядке

Работа смартфона в серверном режиме предполагает постоянное подключение к сетевой зарядке. Есть несколько факторов, приводящих к ускоренной деградации аккумулятора в таком режиме.

1. Постоянное нахождение в режиме 100% заряженности, что вредно для Li-ion аккумуляторов.
2. Если контроллер заряда телефона не поддерживает прямую поставку тока к потребителю, в обход аккумулятора при достижении 100% зарядки аккумулятора, то он будет находиться в постоянном цикле заряд-микроразряд. Что также вредно.

Для решения эти проблем существует скрипт ACC. Внимание, для его работы нужны root-права! Вот статистика работы аккумулятора моего смартфона с этим скриптом за 20 дней.

Как видно, за этот период батарея ни разу не заряжалась полностью. А если бы не такой большой промежуток, можно было бы увидеть «пилу» между зарядом от 60%, ниже которого при подключенной зарядке телефон не разряжается, и до 70%, после которого идет разряд при подключенном зарядном устройстве.

Скрипт устанавливается как модуль Magisk и после перезагрузки запускается сам. Существует android приложение ACCA, позволяющее наглядно управлять параметрами скрипта.

Заключение

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

ESPlorer — esp8266


Описание пакета

Основные мультиплатформенные инструменты для любого разработчика 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)

Подробный список функций

  • Подсветка синтаксиса LUA и код Python
  • Цветовые темы редактора кода: по умолчанию, темная, Eclipse, IDEA, Visual Studio
  • Возможности редактора Undo/Redo
  • Автозаполнение кода (Ctrl+Пробел)
  • Интеллектуальная отправка данных на ESP8266 (без тупой отправки с фиксированной задержкой линии), проверяйте правильный ответ от ESP8266 после каждой строки.
  • Фрагменты кода
  • Подробная регистрация
  • и больше, больше больше…

Учебники по прошивке NodeMCU

  • Начало работы с ESPlorer IDE Автор Руи Сантос (бесплатная загрузка)

  • Домашняя автоматизация с использованием ESP8266 Автор Rui Santos

Учебники по прошивке MicroPython

  • Еще нет

Аппаратное обеспечение, рекомендованное разработчиком ESPlorer для опытных пользователей

  • Модули ESP8266 (ESP-01, ESP-07, ESP-12 E/F и другие), совместимые с MicroPython (Aliexpress, отсортировано по цене)
  • ESP8266 «белый переходник» для ESP-07, ESP-12, ESP-12E/F и антенн для ESP-07 (Aliexpress, в порядке сортировки: по цене)
  • DC-DC 3.3 7333 для белой доски (Aliexpress, отсортировано по цене)

Аппаратное обеспечение, рекомендованное разработчиком ESPlorer для быстрого старта

  • NodeMCU v3 — бренд LoLin, совместимый с MicroPython (Aliexpress, отсортировано по цене)
  • Экраны NodeMCU, совместимые с MicroPython — бренд LoLin (Aliexpress, отсортировано по цене)
  • Плата Witty, совместимая с MicroPython, светодиод RGB, датчик освещенности, 3 кнопки (Aliexpress, отсортировано по цене)
  • Мини-платы и экраны WeMos, совместимые с Micropython, (Aliexpress, отсортировано: по цене)
  • Мини-плата и экраны WeMos, совместимые с MicroPython, в официальном магазине WeMos Electronic на Aliexpress
  • Самые популярные запчасти для самостоятельной сборки (Aliexpress, сортировка по заказам)

Загрузка ESPlorer

  • Загрузка двоичных файлов ESPlorer
  • Загрузите исходный код ESPlorer с GitHub

Пожертвование

Для пожертвований с помощью кредитной/дебетовой карты, электронного кошелька или интернет-банкинга (в некоторых странах) нажмите кнопку пожертвования PayPal.

 

 

Сообщения об ошибках и обсуждение

  • esp8266.com на английском языке
  • esp8266.com на английском
  • esp8266.ru на русском

ChangeLog

На данный момент в процессе — поддержка MicroPython.

0.2.0-rc5

  • rsyntaxtextarea обновлен с 2.5.6 до 2.5.8

0.2.0-rc4

  • Microchip RN2483 (модуль приемопередатчика с технологией LoRa дальнего действия с низким энергопотреблением) с поддержкой

0.2.0-rc3

  • Автоматическое определение прошивки MicroPython
  • Подсветка синтаксиса MicroPython
  • Добавлены расширения файлов MicroPython *.py и *.pyc
  • Команда MicroPython SendToESP (отправить текущий файл из окна редактора в ESP8266, ALT+E)
  • Команда MicroPython SendLine (отправить одну строку из окна редактора в ESP8266, ALT+L)
  • Команда MicroPython SendBlock (отправить выбранный блок из окна редактора в ESP8266, ALT+B)
  • Вкладка MicroPython Coomands: чтение и запись GPIO, соединения WiFi и TCP)
  • Фрагменты кода MicroPython (блоки кода, редактируемые пользователем, кнопки для быстрого выполнения)
  • Руководство MicroPython ввело историю команд
  • Автозаполнение кода MicroPython CTRL+ПРОБЕЛ
  • Показать/скрыть окно редактора для использования в качестве простого цветного терминала
  • Показать/скрыть окно терминала для полноэкранного редактирования кода
  • Исправление ошибок

0.

2.0-rc2
  • добавить селектор скинов (стандартный Java LookAndFeel, зависит от платформы)
  • Автоопределение прошивки можно отключить (новая опция на вкладке «Настройки»)
  • уменьшен минимальный размер окна для экранов с низким разрешением

v0.2.0-rc1

  • добавить новый классный ESP FileManager. Команды всплывающего меню: Выполнить, Компилировать(Новый!), Просмотреть(старый Кот), Редактировать(Новый!), Загрузить(Новый!), Переименовать(Новый!), Удалить (доступные команды зависят от расширения файла)
  • добавить функцию «Загрузить файл в ESP с диска» (включая бинарные файлы) в левой нижней панели
  • добавить функцию «Загрузить файл с ESP на диск» (включая бинарные файлы) в файловый менеджер
  • Список файлов ESP с автоматической сортировкой ABC
  • добавить новую кнопку FileSystemInfo (новая команда file.fsinfo() начиная с прошивки 20150311 и выше)
  • добавить автоопределение прошивки после открытия последовательного порта
  • добавить проверку связи с MCU после открытия последовательного порта или «изменение скорости на лету»
  • изменить размер окна по умолчанию на 1024×768 и новую концепцию пользовательского интерфейса
  • изменить: во всех кнопках/командах «Выполнить» на «Делать», «Вид» на «Кошка»
  • расширенное поле для имени последовательного порта
  • добавить «CustomSerialPort» на вкладку «Настройки» (если включить, PortScan никогда не будет выполняться)
  • добавить кнопки DTR и RTS со светодиодом
  • добавить светодиод CTS
  • добавить новое меню «Ссылки»
  • добавить правую панель, специфичную для NodeMCU (кнопка Heap, кнопка Chip Info, кнопка Chip ID, кнопка Flash ID)
  • добавить команду Показать/Скрыть панель инструментов в меню «Вид»
  • вкл. размер кнопок панели инструментов
  • добавить команду Показать/Скрыть панель фрагментов в меню «Вид»
  • добавить команду Показать/Скрыть панель FileManager в меню «Вид»
  • добавить правую панель дополнительных кнопок Показать/скрыть команду в меню «Вид»
  • добавить опцию «Использовать внешний редактор» на вкладке «Настройки». Все файлы только для чтения
  • добавить опцию «EOL» — EOL виден в окне терминала
  • добавить новый режим для сниппетов: Конденсированное выполнение (пожалуйста, не используйте этот режим, если вы используете команды без левого операнда: «=node.heap()», но «x=node.heap» работает нормально)
  • исправить ошибку автозаполнения (Ctrl+Пробел) для команд, содержащих «.»
  • исправить «Автосохранение/автовосстановление настроек включения/отключения окна журнала» ошибка
  • исправить ошибку: выйти из приложения без файлов сохранения
  • отключить настройку «Автозапуск файла после сохранения в ESP» (для этого можно использовать новую кнопку «Сохранить и запустить» в версии 2. 0.0-final)
  • автосохранение всех настроек при изменении и автовосстановление после запуска приложения
  • размер окна автоматически сохраняется при закрытии и автоматически восстанавливается после запуска приложения
  • Редактор
  • : размер вкладки изменен с 5 на 4
  • библиотека rsyntaxtextarea обновлена ​​до версии 2.5.6
  • некоторый рефакторинг кода
  • улучшить стабильность
  • теперь концепция управления версиями semver.org (MAJOR.MINOR.PATCH)

v0.1 build 206

  • добавить файл.формат из NodeMCU 20150107
  • AutoMagic очистка CMD-Истории от Майка (DL2ZAP)
  • добавить несколько команд в поле со списком Command

v0.1 сборка 205

  • ESPlorer — теперь с открытым исходным кодом!
  • добавить функцию «TurboMode». Мои тесты: Размер файла: 3300 байт, 100 строк, скорость передачи: 115200, Время загрузки: 1,8 сек
  • Окно терминала также имеет синтаксическую подсветку (как редактор)
  • Совместимость с Java 7 и 8

v0.

1 build 204
  • добавить функцию «AutoReConnect»: после открытия порта на 9600 вы можете легко изменить скорость порта на другую скорость передачи без запуска фрагмента
  • добавлены новые настройки: максимальный размер лога и максимальный размер истории терминала для исправления бага «все ужасно тормозит»
  • переупорядочить кнопки сниппетов, добавить кнопку «Snippet Cancel Edit»
  • горячая клавиша добавления сниппетов: для сниппета0 — Alt+BackQuote, сниппета1 — Alt+1, сниппета9 — Alt+9, сниппета10 — Alt+0, сниппета11 — Alt+минус, сниппета12 — Alt+Equals, сниппета13 — Alt+BackSlash, сниппета14 — Alt+BackSpace, snippet15 — без горячей клавиши.

v0.1 build 203

  • добавить включение/выключение автопрокрутки
  • добавить новые скорости передачи последовательного порта: 230400, 460800, 921600

v0.1 сборка 202

  • добавить команды «Inc/Dec font size» для окон редактора, терминала и журнала
  • удалить все действия автоочистки терминала
  • исправление ошибки (сохранение настроек)

v0.

1 build 201
  • добавить «Dumb Mode» для отправки данных в старом стиле с задержкой линии (см. вкладку «Настройки»)
  • добавить функцию фрагментов кода
  • добавить команду «Отправить текущую строку в ESP»
  • настройки, последний использованный последовательный порт и скорость, автосохранение/автозагрузка последней папки сценария сейчас
  • переработаны горячие клавиши

v0.1 build 200

  • исправление ошибок
  • добавить историю команд

v0.1 начальная общедоступная версия

Начало работы с NodeMCU с помощью ArduinoIDE « osoyoo.com

Купить у нас Купить в Великобритании Купить в Германии Купить в IT Купить от Франции Купить у ES ここでご購入を!
  • Инструкция
  • Соединение
  • Установите драйвер COM/последовательного порта
  • Установите Arduino IDE
  • Установка пакета платы ESP8266
  • Настройка поддержки ESP8266

Osoyoo NodeMCU поставляется с предварительно запрограммированным интерпретатором Lua, но вам не обязательно его использовать! Вместо этого вы можете использовать Arduino IDE, которая может стать отличной отправной точкой для любителей Arduino, чтобы ознакомиться с технологиями, связанными с IoT. Обратите внимание, что когда вы используете плату NodeMCU с Arduino IDE, это   будет записываться непосредственно в прошивку, стирая прошивку NodeMCU. Поэтому, если вы хотите вернуться к Lua SDK, используйте «прошивальщик» для повторной установки прошивки.

Программирование NodeMCU может быть таким же простым, как и в Arduino, основное отличие заключается в распределении контактов на плате nodemcu. Выполните следующие операции и наслаждайтесь своим первым путешествием NodeMCU и IDE!

1. Подключите NodeMCU к компьютеру.

Используйте USB-кабель для подключения NodeMCU к компьютеру. При включении питания на плате мигает синий светодиод, но он не будет гореть постоянно.

2. Установите драйвер COM/последовательного порта

Чтобы загрузить код на ESP8266 и использовать последовательную консоль, подключите любой кабель micro USB с возможностью передачи данных к плате IOT ESP8266, а другой конец — к USB-порту вашего компьютера.

NodeMCUv0. 9 поставляется с серийным чипом Ch440. Драйвер можно скачать и установить здесь.

3. Установите Arduino IDE 1.6.4 или выше

Загрузите IDE с Arduino.cc (1.6.4 или выше). Вы можете использовать существующую IDE, если она уже установлена.

Вы также можете попробовать загрузить готовый пакет из проекта ESP8266, если прокси вызывает у вас проблемы

4. Установите пакет платы 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

Настройте меню платы и выберите правильный порт для вашего устройства.

  • Частота процессора: 80 МГц,
  • Размер флэш-памяти: 4 МБ (FS: 2 МБ OTA: ~ 1019 КБ),
  • Скорость загрузки:115200

Шаг 5 Теперь просто действуйте как Arduino: начните рисовать! Давайте воспользуемся примером из IDE, чтобы увидеть, как это работает. из Файл->Примеры->ESP8266 WiFi->WiFiScan

Вы увидите окна скетча.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *