делаем полоумное WiFi реле на ESP8266
Хотите реле которое умеет контролировать нагреватели, холодильники, кондиционеры, увлажнители, осушители, включать электроприборы по расписанию и много чего еще? Тогда прошу под cut…
За $4 вы получите:
— ручной режим, включение/выключение
— по времени от чч: мм до чч: мм
— по температуре (охлаждение/обогрев) с регулируемым гистерезисом и приоритетом по времени от чч до чч
— по влажности (увлажнитель/осушитель) с регулируемым гистерезисом и приоритетом по времени от чч до чч
— поддержка нормально разомкнутого/нормально замкнутого реле
— режим эмуляции кнопки без фиксации, с регулируемым временем нажатия от 150 миллисекунд до 500 миллисекунд и шагом 50 миллисекунд
— поддержка сенсоров AHT1x/AHT2x и HTU2xD/SHT2x/Si70xx
— регистратор температуры и влажности на SPI флэш-память с графиками, до 400 КБ (этого достаточно для хранения годового отчета с шагом 30 минут)
— если подключены два датчика с разными адресами и один выходит из строя, то во время перезагрузки второй датчик будет использован автоматически
— hostname WiFi клиента используется в качестве ID реле, в сети может находиться не ограниченное количество реле при условии, что все они имеют разные hostname
— web интерфейс (Bootstrap + jQuery)
— автоматическая синхронизация с NTP серверами или в ручную со временем из браузера
— автоматически переход с летнего на зимнее и обратно
Реле предоставляется «КАК ЕСТЬ» без каких-либо гарантий. Не оставляйте без присмотра. Автор, не несет ни какой ответственности если у вас что-то пошло не так.
Для сборки нам понадобятся:
1. Один модуль на ESP8266. Например WeMos Mini D1 за $1.83
3. Цифровой датчик температуры и влажности AHT1x/AHT2x или HTU2xD/SHT2x/Si70xx, например AHT10 за $0.97
Качаем мой проект с GitHub и соединяем весть зоопарк по схеме.
Чтобы реле не давало помехи при переключении, питать устройство лучше по топологии звезда (не используя USB порт WeMos Mini D1). У ESP8266 только два нормальных пина ведущих себя адекватно во время загрузки — это GPIO4/D2 и GPIO5/D1. Все остальные меняют свое состояние. Подробно об этом тут. Чтобы предотвратить ложные срабатывания реле, во время старта ESP8266, нужно добавить RC фильтр 680Ом/220мкФ с постоянной времени длиннее чем переходные процессы на GPIO.
Прошиваем ESP8266 с помощью Flash Download Tools. Предварительно выставив:
— SPI speed 80MHz
— SPI Mode QIO
— поставить галку DoNotChgBin
— адрес для fw_latest.bin 0x00000
— адрес для fs_latest.bin 0x200000
Настройка:
Если вы все сделали правильно, то после прошивки и нажатия reset у вас должна появится новая точка доступа tthRelay. Подключитесь к ней введя пароль 12345678. После удачного подключения введите в браузере 192.168.4.1 и в появившемся окне User name: admin и Password: 12345678.
Базовые настройки Access Point Config, Server Config, Station Config и NTP Config аналогичны прошлому проекту — MatrixClock. Повторяться не буду, читаем там. В конце не забываем нажать на Save и Reboot.
После того как реле подключится к вашему роутеру — WiFi точка доступа tthRelay пропадет. Теперь чтобы попасть в вебморду, на машине с Windows 10, в браузере набираем http://tthRelay.
local/. На Android и Win7 используйте IP-адрес реле вместо mDNS. Его можно найти в логах UART на скорости 115200 бит/с или в админке вашего роутера.Идем в Sensor или Settings -> Sensor Config выбираем тип сенсора, порты и скорость обмена согласно схеме. Жмем Save и Reboot. Внимание — чем выше скорость, тем короче должны быть провода от сенсора до ESP8266. Рекомендуемые частоты 100KHz..400KHz, на очень длинных проводах допускается 10KHz. Учтите, что на низких скоростях датчику приходится работать дольше и он начинает разогревать сам себя искажая результаты.
Если вы все сделали правильно на главной странице появится информация о текущей температуре, относительной влажности, точки росы и абсолютной влажности.
Заходим во вкладку Relay или Settings -> Relay Config выбираем режим — ручной, по времени, по температуре или по влажности. Дальше выбираем время и дни недели для Time mode, желаемую температуру, гистерезис, время для Temperature mode и желаемую влажность, гистерезис, время для Humidity mode.
Если нужен журнал с графиками изменения температуры и влажности идем в Settings -> Recorder Config выбираем частоту выборки, жмем Save и Reboot. Максимальный размер журнала 400КБ. Этого достаточно для хранения годового отчета с шагом 30 минут. После его заполнения он автоматический стирается и на его место пишется новый. Для тех кто любит все хранить есть кнопка Backup data. Формат записи очень простой и не является секретом, если будет нужно расскажу.
Для просмотра графиков кликаем на Settings -> Recorder Data
Данная прошивка также должна работать на Sonoff Basic R1 (первой ревизии) и Sonoff Th20/Th26 с сенсором Si7021. С небольшой доработкой можно использовать WiFi Relay module на ESP-01S. Нужно заменить флеш с 1МВ на 4МБ и добавить RC фильтр. Как и куда подключать датчик смотри readme на Github.
Внимание: Для ускорения работы сервера, в проекте используются очень агрессивны настройки кеширования HTML и JavaScript. Браузер только первый раз читает эти файлы с tthRelay и сохраняет себе в кеш. Про последующие обновление fs_latest.bin он ничего не знает и вместо новых HTML и JavaScript, с вероятностью 100%, будет тянуть старые из кеша. Обязательно чистите кеш после обновления файловой системы.
UDP:
UDP: Полоумное WiFi реле ч.2 — тут.
Модуль одноканального реле “ESP8266 умная розетка” для WiFi-контроллера ESP-01/01S ESP8266
Одноканальный релейный модуль “ESP8266 умная розетка” для WiFi-контроллеров беспроводной связи ESP-01/01S
В современном, быстроразвивающемся мире, мы все давно привыкли к тому, что нас практически везде окружают сети беспроводной связи, предлагающие нам возможность осуществления передачи и приёма различного рода данных повсюду, где к таким сетям есть доступ. Среди существующего множества стандартов связи, подавляющему большинству очень хорошо известна технология WiFi, ставшая повседневной обыденностью. Доступ к WiFi есть почти в каждой квартире, сеть активно развивается в общественном транспорте, часто встречается в сферах отдыха, развлечения и досуга. И конечно же, WiFi присутствует в любом современном персональном компьютере, в мобильном телефоне и планшете. Подхватив тенденцию развития беспроводных сетей, разработчики разнообразной электронной техники всё больше внедряют в свои продукты средства удалённого обмена данными, и учат их общаться между собой в сетях нового поколения “Интернет Вещей” (англ. Internet of Things, IoT).
Модули на чипе ESP8266 завоевали заслуженную популярность среди разработчиков собственных электронных проектов благодаря низкой ценовой категории и наличием базового функционала. ESP-01/01S самодостаточен, лёгок в настройке и не нуждается в дополнительной обвязке. Он способен выполнять все основные операции приёмо-передачи данных по технологии WiFi.
С помощью данного модуля, можно по сети Wi-Fi управлять любым устройством, работающим от сетей переменного или постоянного тока. В качестве принимающего устройства используется контроллер ESP8266-01S (ESP-01S). Модуль собран на зеленом стеклотекстолите с габаритами 37 мм на 25 мм, большую часть платы занимает реле SRD-5DVC-SL-C, такое же используется в обычных модулях реле на один и два канала. Рядом с реле небольшая электрическая обвязка, необходимая для нормального переключения этого реле.
Одноканальный релейный модуль “ESP8266 умная розетка” не является функционально законченным изделием и служит дополняющим расширением к WiFi-контроллеру ESP-01/01S на чипе ESP8266. В паре с контроллером, позволяет дистанционно управлять коммутацией цепей с постоянным или переменным напряжением и невысокими токами нагрузки. Контроллер ESP-01/01S приобретается отдельно и программируется пользователем самостоятельно. Под его установку, на плате модуля расширения распаян двухрядный разъём жёлтого цвета.
Модуль собран на зеленом стеклотекстолите габаритами 37см на 25см. Большую часть платы занимает электромеханическое реле SRD-5DVC-SL-C, имеющее рядом три винтовые клеммы коммутации внешней цепи (NO-COM-NC). Похожие реле часто встречаются в популярных и недорогих Ардуино-совместимых релейных модулях с одним, двумя и более каналами. Схема модуля построена на транзисторном ключе с гальванической развязкой, разделяющей рабочие напряжение и ток реле от управляющего сигнала. В плату интегрирован понижающий регулятор AMS1117, снабжающий ESP8266 необходимым 3.3-вольтовым напряжением. Номинальное питание модуля составляет 5В.
Характеристики модуля
- Модель: V4.0
- Рабочее напряжение: 5 В
- Рабочий ток: до 450 мА
- Регулятор напряжения: AMS1117-3.3
- Светодиодный индикатор срабатывания
- Тип реле: SRD-05VDC-SL-C, электромеханическое
- Количество каналов: 1
- Коммутируемое напряжение: до 250 В переменное, до 30 В постоянное
- Ток нагрузки: до 5А переменное напряжение, до 7А постоянное напряжение
- Пиковый кратковременный ток: 10 А
- Модель совместимого контроллера ESP8266: ESP-01/01S
- Интерфейс: GPIO
- Размеры: 37 мм х 25 мм
Назначение выводов модуля
– группа из 3 винтовых клемм — подключение нагрузки;
– группа из 2 винтовых клемм — питание модуля, входы GND и +5В;
– 8-пинов разъём (2х4) — место установки контроллера ESP-01/01S
Коммутация внешних цепей
Встроенное реле оснащено блоком винтовых клемм-терминалов, предназначенных для коммутации внешних схем, и состоит из трёх линий подключения. Реле позволяет замыкать/размыкать как одну независимую цепь переменного или постоянного напряжения, так и переключаться между двумя зависимыми цепями с одной общей линией питания (плюсовой или минусовой стороной). В большинстве случаев, клеммы реле обозначены следующим образом: нормально открытый контакт (NO), общий контакт (COM), нормально закрытый контакт (NC). Однако, нередки случаи, когда встречаются варианты с аналогичной графической символикой, схожей с принятым обозначением реле в принципиальных схемах. Понятие “нормально” означает состояние контакта в исходном положении реле (неактивный режим) по отношению к общему центральному выводу (COM). Момент срабатывания реле (переход в активный режим) приводит к изменению контактов NO и NC в противоположное состояние. Иными словами, если внешняя цепь, подключенная к контактам COM+NO, замыкается при срабатывании реле, то цепь COM+NC — в активном режиме размыкается.
Документация
- Принципиальная схема релейного модуля
с NodeMCU (ESP8266) и реле | Алехандро Гонсалес | Trabe
https://wallpaperaccess.com/full/1472995.jpgСегодня существует широкий выбор продуктов IoT, которые позволяют нам облегчить нашу повседневную жизнь. Включить электрическое устройство или даже изменить цвет наших огней — вот некоторые функции, которые мы можем делать с этими продуктами. В этом посте мы покажем, как построить переключатель Wi-Fi для включения и выключения любого электрического устройства, затрачивая очень мало денег.
- Плата NodeMCU: это набор для разработки с открытым исходным кодом, который позволяет нам создавать прототипы наших продуктов IOT с использованием собственного языка разработки (Lua) или MicroPython. Плата NodeMCU содержит микросхему ESP8266 с поддержкой Wi-Fi.
- Реле: Электромагнитный переключатель, приводимый в действие относительно небольшим электрическим током, который может включать или выключать гораздо больший электрический ток. Существуют релейные модули, электромагнит которых может питаться от 5В и от 3,3В. Оба могут использоваться с ESP8266.
- Arduino IDE: чтобы загрузить наш код на плату NodeMCU, нам нужна IDE. Мы используем Arduino IDE, но можно использовать и другие.
На следующем рисунке показана схема соединения компонентов. В данном случае мы используем патрон для лампы, но это может быть и удлинитель, способный включать и выключать любое подключенное к нему устройство.
https://www.geekering.com/wp-content/uploads/2019/03/Fritzing_bb-768×604.pngArduino IDE можно установить с помощью предоставленного руководства. После установки необходимо настроить драйверы NodeMCU, чтобы иметь возможность использовать нашу плату. Эти драйверы можно найти по этой ссылке.
Чтобы поместить наш код в плату, мы должны настроить нашу IDE, выбрав порт, к которому подключена плата ( Tools -> Port ) и тип используемой платы ( Tools -> Select Board Type ). .
После того, как мы установили и настроили Arduino IDE, пришло время загрузить наш код на плату. Следующий код реализует REST API
с легким встроенным UI
(пользовательский интерфейс) с использованием aREST и aREST_UI 9.0028 библиотеки.
С помощью Arduino IDE мы можем писать наш код на C++ или C вместо использования Lua или MicroPython. Это связано с тем, что IDE компилирует код C или C++ в двоичный исполняемый файл, который непосредственно загружается на плату.
Приведенный выше код в основном подключается к нашему домашнему Wi-Fi, печатает свой IP
, устанавливает кнопку включения/выключения, настраивает REST API
и ожидает в цикле клиентских запросов.
Чтобы загрузить этот код на нашу плату, мы должны поместить его в новый файл, а затем загрузить, как показано на изображении ниже.
После загрузки кода мы можем проверить плату IP
на последовательном мониторе ( Tools -> Serial Monitor ).
Поскольку мы используем aREST , было бы интересно предоставить конечную точку
, которая позволит нам включать и выключать наши устройства удаленно, без использования пользовательского интерфейса
.
Загрузив приведенный выше код в нашу плату, мы сможем включать и выключать наше устройство, обращаясь к следующим адресам: http://
для выключения и http://
для включения.
После того, как мы собрали наши компоненты и загрузили код, пришло время протестировать наше самодельное устройство IoT, входящее в IP
, предоставленный Serial Monitor. В GIF ниже мы можем увидеть, как это работает.
Используя простые и недорогие компоненты, мы создали устройство IoT, которое может быть очень полезным в нашей повседневной жизни.
Управление реле с помощью ESP8266 и Android MIT App Inventor
Следующий проект в серии модулей WiFi ESP8266 — управление реле с помощью ESP8266 и Android через приложение (приложение), разработанное с помощью MIT App Inventor. Установив это приложение на свой телефон Android (извините, пользователи iOS !!!), вы можете управлять реле с помощью ESP8266, которое подключено к той же сети Wi-Fi, что и ваш телефон.
Outline
Обзор
ESP8266 Модуль Wi-Fi был главной фигурой на рынке DIY IoT. Существует несколько разновидностей ESP8266, таких как ESP-01 от AiThinker, NodeMCU и т. д., но цель и работа у них одни и те же.
Существует несколько проектов IoT на основе WiFi-модуля ESP8266, но домашняя автоматизация, то есть управление различными электроприборами через WiFi (или Интернет), всегда была трендовым и востребованным проектом.
Итак, в этом проекте я покажу вам, как подключить простой модуль реле к WiFi-модулю ESP8266, а также как управлять реле с помощью ESP8266.
Для этого проекта я также создам приложение для Android, с помощью которого вы сможете управлять реле. Для разработки приложения для Android я буду использовать MIT App Inventor.
Принципиальная схема
Принципиальная схема для проекта «Управление реле с помощью ESP8266» показана на изображении ниже. Как видите, на принципиальной схеме я использовал одноканальный релейный модуль.
ПРИМЕЧАНИЕ: Если контакты релейного модуля и WiFi-модуля ESP8266 плохо видны, я добавлю отдельные изображения в раздел описания компонентов.
Необходимые компоненты
- ESP8266
- Ардуино УНО
- Резисторы (1 кОм и 2,2 кОм) – оба резистора мощностью ¼ Вт
- Провода-перемычки
- Модуль реле
- Маленькая лампочка 5 В
- Кнопка
- Переключатель SPDT
- Android-приложение
- Android-телефон
- Компьютер с Интернетом
Описание компонента
Модуль WiFi ESP8266 (ESP-01): Модуль WiFi ESP8266 отвечает за подключение к сети WiFi, а также за управление релейным модулем.
В этом проекте модуль ESP8266 действует как HTTP-сервер. Всякий раз, когда клиент (в данном случае Android-приложение) отправляет запрос, серверы ESP8266 принимают его и выполняют соответствующую операцию.
Модуль реле: В этом проекте используется двухканальный модуль реле, но используется только одно реле. Хотя этот релейный модуль можно использовать с источником переменного тока, я использовал небольшую лампочку на 5 В только для того, чтобы показать выходной сигнал.
Схема
Если вы обратите внимание на принципиальную схему, все соединения аналогичны тем, которые мы уже видели в более ранних проектах, таких как КАК УПРАВЛЯТЬ ESP8266 ЧЕРЕЗ ИНТЕРНЕТ . Не буду вдаваться в подробности всех подключений.
Основное отличие состоит в том, что контакт GPIO2 WiFi-модуля ESP8266 подключен к ВХОДУ реле.
Код
Чтобы управлять реле с помощью ESP8266, я использовал следующий код. Этот код отвечает за подключение WiFi-модуля ESP8266 к указанной сети WiFi, назначение статического IP-адреса модулю ESP8266, создание простого HTTP-сервера на ESP8266, а также прослушивание клиентов.
ВАЖНОЕ ПРИМЕЧАНИЕ:
- Очень важно знать, что вы делаете со статическим IP-адресом. Пожалуйста, дважды проверьте неиспользуемый (нераспределенный) IP-адрес вашего маршрутизатора и назначьте его ESP8266.
- Я предлагаю вам загрузить программу со статическим IP-адресом, назначенным ESP8266 (после внесения необходимых изменений в код), чтобы вы могли продолжить разработку приложения.
Приложение для Android с использованием MIT App Inventor
MIT App Inventor — это простой способ создать простое приложение для Android. MIT App Inventor использует учетные данные учетной записи Google. Итак, откройте приложение разработчика приложений, используя следующий URL-адрес: ПРИЛОЖЕНИЕ MIT INVENTOR 2 .
После привязки учетной записи Google создайте новый проект, выбрав Проект à Начать новый проект.
После создания нового проекта вы увидите экран, на котором можно размещать различные объекты, такие как кнопки, ползунки, текстовые поля и т. д.
Создайте интерфейс, подобный показанному ниже. Он состоит из трех кнопок, нескольких меток и веб-компонента.
ПРИМЕЧАНИЕ. Веб-компонент находится на вкладке «Подключение» с левой стороны.
После размещения всех компонентов и завершения макета приложения перейдите в раздел «Блоки» в правом верхнем углу.
В разделе «Блоки» создайте блоки, как показано на следующем рисунке. Статический IP-адрес, который вы назначили в коде, необходимо ввести здесь, в разделе URL блока.
Вам не нужно создавать точно такое же приложение. Завершить можно минималистичным дизайном и интерфейсом.
После заполнения раздела «Блоки» вы можете отлаживать приложение непосредственно из браузера и телефона Android без фактической установки приложения. Для этого вам необходимо загрузить и установить два приложения: одно на свой компьютер, а другое на телефон Android.
Программное обеспечение для компьютера называется MIT_Appinventor_Tools, а приложение для телефона Android называется MIT AI2 Companion.
Я не буду вдаваться в подробности, но если вам нужна дополнительная информация, вы можете найти ее здесь.
Наконец, после того, как вы закончите с интерфейсом, блоками и отладкой (если таковые имеются) приложения, вы можете загрузить файл .apk на свой компьютер и установить его на свое устройство (телефон Android).
ПРИМЕЧАНИЕ. Чтобы загрузить файл .apk, перейдите в раздел «Сборка» и выберите «Приложение» (сохраните .apk на моем компьютере).
Работает
Сначала выполните все необходимые подключения в соответствии со схемой и загрузите программу в WiFi-модуль ESP8266.
После загрузки программы вы получите подтверждающее сообщение о подключении к WiFi и статическом IP-адресе. Теперь откройте приложение Android, которое мы разработали с помощью MIT App Inventor 2, и установите его на свой телефон Android.
Если все идет хорошо, когда вы нажимаете кнопку «Включить лампу» в приложении, реле получает логический НИЗКИЙ сигнал, и лампа включается. Точно так же при нажатии кнопки «Lamp OFF» лампа выключается.
ПРИМЕЧАНИЕ: Релейный модуль, используемый в этом проекте, имеет активный НИЗКИЙ уровень.