В предыдущей статье я рассмотрел подключение реле к выходу микроконтроллеров ESP8266/ESP32/Arduino через дискретный транзистор, т.е. без галванической развязки нагрузки и микроконтроллера.
Можно упростить себе жизнь и не мудрить с распайкой транзисторов, взяв на Aliexpress готовый модуль с оптической развязкой на 4-х канальной сборке оптронов TLP281-4.
Модуль предназначен для гальванической развязки выхода микроконтроллера от шумной нагрузки с высоким напряжением. Управляется модуль током с максимальным значением в 50 мА.
Одноканальное реле
Максимальный ток на выходе TLP281-4 50 мА. Реле к такому выходу напрямую не подключить, поэтому после оптосборки установлены планарные транзисторы S8050 в корпусе SOT-23. У них максимальный ток коллектора 500 мА при напряжении коллектор-эмиттер (Vceo) в 25V.
Соответственно, модуль может коммутировать нагрузку управляемую током в 500 мА и максимальным напряжением 24 V (по документации к модулю).
Характеристики:
- Количество каналов: 4
- Оптронная сборка: TLP281-4
- Транзисторы на выходе: S8050
- Напряжение на входах (IN1..IN4) — 3..5 V
- Максимальный ток на входах (IN1..IN4): 50 мА
- Максимальное напряжение на выходах OUT1..OUT4: 24 V
- Максимальный ток на выходах OUT1..OUT4: 500 мА
- Размеры платы, мм: 25х24
- Доступность на Aliexpress: высокая
Диод параллельно реле
При подключении на Out реле нельзя забывать о параллельном шунтирующем диоде. Подробно написано здесь.
Диод лучше использовать импульсный, например, FR157. Но можно поставить и обычный выпрямительный, например, 1N4007.
Подключение реле через массив транзисторов Дарлингтона (ULN2003)
Если нужно подключить к микроконтроллеру несколько реле, то можно использовать матрицу из семи транзисторов Дарлингтона, 500мА, ULN2003A. Помимо транзисторов в сборку уже включены диоды для подавления обратного тока в индуктивной нагрузке.
Релейные модули. Подключение и проверка.
Можно параллелить выходы для коммутации мощной нагрузки, но лучше подбирать соответствующие по току тразисторы или использовать реле.
Посмотреть возможные аналоги транзисторных сборок для управления реле и другими индуктивными нагрузками можно здесь.
Программа для включения реле через оптоизолятор на TLP281
Код простейший. Единственный момент,
не используйте GPIO0 (D3) и GPIO2 (D4) для управления реле!
При загрузке на этих PIN-ах должно быть определенное состояние, чтобы ESP8266 корректно загрузился. Если на эти PIN-ы повесить реле, то после reset ESP8266 загрузится некорректно и программа не будет работать.
const int led = 2; //D4 const int relay = 4; //D2 DO NOT USE GPIO0 (D3) and GPIO2 (D4) TO MANAGE THE RELAY void turnOnRelay(bool state) < String st = state ? «ON» : «OFF»; Serial.println(«Relay state: » + st); digitalWrite (relay, state); digitalWrite (led, !state); >void setup() < pinMode (led, OUTPUT); pinMode(relay, OUTPUT); turnOnRelay(LOW); Serial.begin (9600); >void loop() < // put your main code here, to run repeatedly: turnOnRelay(HIGH); delay(5000); turnOnRelay(LOW); delay(5000); >
Источник: www.bizkit.ru
MajorDoMo. Простые устройства. Реализация управления освещения. Релейный модуль.
В этой статье я расскажу каким образом я реализовал управление освещением в комнатах.
Для начала начнём с принципиальной схемы блока управления освещением.
Забегая немного вперёд хочу показать вам что получилось в итоге с блоком управления освещением. Так же уже работает управление розетками по превышению допустимой нагрузки, счётчика израсходованной энергии и ручное управление.
Блок управления освещением
противоположная сторона блока управления освещением.
Электрощит. Каждый автомат управляет каждой точкой в отдельности. При капитальном ремонте дома я этот момент предусмотрел заранее.
Начало монтажа. Электромагнитные реле с током до 10 ампер, защита от искр, светодиодная индикация включенного реле встроена в корпус реле.
Блок управления розетками. Так же к свободным контактам включены датчики для охраны помещения.
Противоположная сторона. Два абсолютно одинаковых блока.
Ну и процесс изготовления печатной платы.
А теперь читаем как всё это настраивалось и программировалось.
Теперь очень кратко пробежимся по работе схемы. Основа – это модуль ESP-12E. Этот модуль связан с Majordomo, далее по тексту МД, используя MQTT брокер. Подробный процесс настройки в МД я буду расписывать ниже. Так же в схеме мы видим модуль JDY-40. Этот модуль тут не зря используется.
Благодаря этим модулям я реализовал выключатели освещения, датчики протечки воды и многое другое где необходимо очень сильно экономить батарейку. Использование ESP-01 не целесообразно. Потребляет ESP-01 примерно 160 мА. А JDY-40 всего 5 uA .
Теперь давайте очень подробно расскажу как я реализовал взаимодействие вышеприведённой схемы с МД.
Настройка электрической части проекта.
Программирование ESP-12E
Перед настройкой модуля ESP в системе МД, в модуль необходимо записать прошивку. Прошивку мы берём с сайта wifi-iot клац. На этом сайте обязательно нужно зарегистрироваться если вы хотите использовать прошивки на полную катушку. Иначе вы получите базовую прошивку которая годиться только для тестирования работоспособности модулей ESP8266 в системе МД. Переходим в раздел ESP->ESP8266. Для нашего случая нам нужно отметить следующие пункты:
Теперь нам нужен программатор и сама программа для прошивки модуля. Если вы используете модуль изображение которого приведено ниже то программатор не потребуется так как он уже реализован в модуле. Вам нужен будет только USB кабель.
Я же использую вот такой модуль. Программатор я использую самодельный на FT232 микросхеме. Прошу обратить внимание на то, что модуль не толерантен к 5 вольтам Поэтому переключаем программатор на выходное напряжение 3.3 вольта .
Теперь программа для программирования ESP-12E. Скачать её можно вот тут щёлк-щёлк или с моего сайта клац-клац. Теперь нам нужно скачать файл прошивки с wifi-iot клац, и файл для полного стирания памяти из модуля ESP-12E. И так, заходим на сайт и отмечаем галочками нужные нам пункты о которых я писал выше но повторюсь:
далее в конце страницы есть кнопка “скомпилировать”. Через несколько секнд вам будет предложено скачать прошивку тремя файлами или одним файлом. Выбираем скачать одним файлом Скачать одним файлом (0x00000). Файл для форматирования модуля скачайте вот тут => тын-дын. А теперь давайте записывать прошивку. Открываем программу и видим вот такое окно:
Тут мы устанавливаем номер COM Porta. Если вы используете модуль со встроенным программатором то при его подключении драйвера установятся самостоятельно. Как правило (это я у себя на компьютере заметил) COM Potr сам определиться и установиться в программе как только вы подключите модуль к компьютеру.
Если же этого у вас не произошло тогда смотрите в устройствах ОС номер установленного COM Porta вашего программатора. Кстати я совсем забыл сказать, что программатор это всего лишь преобразователь USB to COM. Вариант для покупки предлагаю вот этот.
После определения COM Porta переходим во вкладку Advanced и проверяем, что бы ваши настройки соответствовали приведённым ниже на скрине.
Теперь открываем вкладку Config и внимательно в вернем поле выбираем файл для форматирования модуля, отмечаем это поле крестиком и проверяем что бы адрес был установлен 0х00000.
после этого переходим во вкладку Operation и нажимаем кнопку Flasf( F ). Терпеливо ждём пару секунд пока вы не увидите QR code и процесс записи прошивки в память ESP-12E который будет сопровождаться прогесс баром
После окончания записи о чём будет свидетельствовать зелёный круг в нижнем левом углу окна переходим обратно во вкладку Config и снимаем крестик с первой строчки, устанавливаем его на вторую строку в которой указан путь к файлу с прошивкой которую вы скачали одним файлом с сайта wifi-iot клац.
после этого так же переходим на вкладку Operation и нажимаем кнопу Flasf(F).
После окончания прошивки отключите модуль от программатора и подключите модуль ESP-12E к вашей Wi-Fi сети. Это можно сделать двумя способами.
Подключение модуля ESP-12E к домашней Wi-Fi сети.
Способ первый (простой).
Перед нажатием на кнопку “Скомпилировать” на сайте wifi-iot клац, нужно зайти в настройки отмеченного вами пункта “Настройки по умолчанию” нажав с права от названия шестерёнку. Вы увидите вот такое окно:
Заполните все поля согласно данным вашей сети и нажмите “Применить”. После этого можно компилировать вашу прошивку. После того как вы запишите прошивку в модуль ESP-12E и перегрузите модуль то введя в вашем браузере IP адрес который вы указали в настройка по умолчанию вы автоматически попадёте примерно в такой интерфейс.
Если так оно и есть можно считать, что вы настроили и подготовили свой ESP-12E для работы с МД. Теперь поторопитесь оплатить лицензию на ваш модуль иначе почти все функции будут недоступны для полноценного использования, а главное время ожидания в 600 секунд вы не сможете изменить.
Второй способ (немного сложнее)
После того как вы скачали прошивку и не воспользовались сервисом “Настройки по умолчанию” вы сможете настроить модуль ESP-12E только следующим образом:
- Отключите питание модуля.
- Замкните между собой выводы RXD и TXD. В модуле со встроенным программатором так же нужно замкнуть RXD и TXD
- включите питание модуля
- найдите в списке ваших Wi-Fi сетях сеть с именем WiFi-IoT и подключитесь к этой сети
- Откройте браузер и введите в строке адреса IP адресс 192.168.4.1
- вы увидите экран который представлен ниже.
Теперь займемся настройкой модуля. У нас есть блок “Sensors”, “GPIO”, “Config”. В блоке “Config” расположен список меню. Нам нужно перейти в меню “Main”.
В поле Host name: вписываем название модуля. Это название потом будет отображаться в списке устройств MQTT брокера. Заполняйте это поле логически понятным именем.
В разделе WiFi Options вводим данные вашей Wi-Fi сети: Логин и пароль. Во вкладке “IP Options” Указываем IP адрес по которому вы будете обращаться к модулю ESP-12E. Обязательно ставим галочку напротив “Static IP” иначе адрес вашего ESP-12E будет постоянно меняться после перезагрузке роутера или модема. Обратите внимание на то, что под каждым разделом существует своя кнопка “Set” При нажатии на эту кнопку сохранятся данные только того раздела к которому относиться кнопка . Для того, что бы выйти в главное окно нажмите в любом месте кнопку “Main”. Теперь переходим в меню “Servers”.
Пока вы не купите лицензию вы не сможете изменить поле “Period” на другое значение. Установите все значения как на скрине кроме поля “Server” В этом поле вам нужно указать IP адрес сервера на котором вы установили свой МД. С полями логин и пароль вы потом сами разберётесь. Скажу только, что это данные от MQTT брокера. Сохраняемся и выходим в главное меню.
Теперь заходим в меню “GPIO”.
Раздел “Interrupt” мы не трогаем, я его использовал для реализации охраны объекта. Нам нужно настроить раздел “Setup GPIO MODE”. Просто настройте всё так как у меня. Все выводы отмеченные как INPUT нужны для того, что бы к ним подключили модуль JDY-40. Выводы отмеченные как OUTPUT подключаются через транзисторные ключи к реле. Сохраняемся и выходим в главное меню.
Переходим в меню “GPIO_Keys”.
Тут мы в поле “Key” указываем номер вывода который мы настроили как INPUT. В поле “Short” мы указваем вывод который установлен как OUTPUT. То есть есди мы податим сигнал на вход 2 ESP-12E тогда соответствующий ему вывод 16, который мы присвоили выводу 2, изменит своё состояние. Забегая в перёд скажу что потом мы будем отслеживать в MQTT именно состояние выводов настроенных как OUTPUT.
Об этом я напишу очень подробно ниже. И так, сохранились и выходим в главное меню. Немного расскажу вам о меню “Hardware”.
Если вы не используете датчики температуры и влажности то снимите галочки с пунктов. Я использую. Тем более расточительно не использовать свободные выводы ESP-12E. Если вы подключили к примеру датчик DS18b20 тогда не забываем воспользоваться разделом “WIKI” сайте wifi-iot клац, и вообще читайте как можно чаще этот раздел. В основном я только из WIKI всё и узнал про эти модули.
Ну так вот про датчик 18b20. Когда вы его подключили нужно зайти в меню 1-Wire и выполнить сканирование порта 1-Wire.
после сканирования, если вы всё правильно подключили вы увидите новое устройство. На главной странице вы увидите показания температуры вашего датчика. Уууффф. Задолбался писать. Теперь плавно переходим к программированию модуля JDY-40.
Читаем о том как программировать модуль вот тут=> тыдынч.
Источник: dmr.md
Заводим релейный модуль ESP8266 от LC TECHNOLOGY для ESP-01S
Заводим релейный модуль ESP8266 от LC TECHN с микроконтроллером STC15F104W для ESP-01S
Когда я заказывал этот релейный модуль, я даже не думал, что у меня могут быть с ним какие-то проблемы.
Мои разочарования начались сразу после первого включения! Моргала лампочка и ничего более.
После разных попыток перепрошивки модуля, а также долгих поисков решения проблемы неработоспособности этого модуля, все-таки было найдено решение.
Заранее скажу, что в интернете, можно найти несколько способов заставить это китайское чудо работать, но эти способы сделаны кустарным методом, так как там предлагается выпаять сам микроконтроллер и впаять какие-то резисторы.
Поискав в интернете, я наткнулся на видео, в котором запускают такой же релейный модуль и там кроме моргания лампочки, еще и щелкает реле.
Ну и наконец наткнувшийся на схему платы этого модуля, было выяснено, что реле управляется микроконтроллером STC15F104W с помощью TX/RX, а не GPIO-0, как ранее предполагалось. Собственно это и есть наша основная проблема.
Но кроме основной проблемы у меня еще и не щелкало реле. Изучив схему выше, оказалось, что проблема в том, что резистор R3 слишком большой. Ну что поделать. Мы же хотим заставить эту штуку работать, так что берем паяльник в руки, отпаиваем резистор на 10K и вместо него припаиваем на 4.7K. После этих манипуляции реле должна щелкать как в видео!
Код | Знач. | Код | Знач. |
332 | 3.3kΩ | 682 | 6.8kΩ |
362 | 3.6kΩ | 752 | 7.5kΩ |
392 | 3.9kΩ | 822 | 8.2kΩ |
432 | 4.3kΩ | 912 | 9.1kΩ |
472 | 4.7kΩ | 103 | 10kΩ |
512 | 5.1kΩ | 113 | 11kΩ |
562 | 5.6kΩ | 123 | 12kΩ |
622 | 6.2kΩ | 133 | 13kΩ |
Собственно, почему так происходит и почему у всех по разному может быть? Я ответ и на эти вопросы нашел!На сайте производителя www.chinalctech.com есть предупреждения, где говорится, что у этого релейного модуля есть некоторые подделки. Также говорится, что, если постоянно моргает светодиод на плате (D2), то это означает, что этот модуль не их производства.
Вроде уже более-менее все ясно, НО все-таки, как же заставить его работать?
Не буду томить, вся проблема в том, что микроконтроллер STC15F104W не запрограммирован!
Итак, читаем ПРЕДУПРЕЖДЕНИЕ! И поехали.
Всегда есть вероятность сделать какую-то ошибку и тем самым вывести из строя сам микроконтроллер, поэтому программирование/изменение кода будет делаться под вашу ответственность, на свой страх и риск!
Прошиваем микроконтроллер STC15F104W
- Качаем программу STC ISP для программирования микроконтроллера STC15F104W. Я брал последнюю 6.86.
- Скачиваем прошивкумикроконтроллера.
- Ставим драйвера вашего TTL контролера, если еще не установлены.
- Подключаем TTL контролер к ПК
- Запускаем скачанную программу STC-ISP
- Указываем в MCU Type микроконтроллер STC15F104W
- Выбираем порт вашего TTL контролера в COM Port
- Нажимаем на кнопку Open Code File и выбираем файл ранее скачанной прошивки под названием ESP8266_Relay_9600_11mhz.hex.
- Снизу в разделе H/W Option устанавливаем тактовую частоту (Input IRC frequency) 11,0592 MHz
- Ну и в конце нажимаем на кнопку Download/Program
11. Теперь ОБЯЗЯТЕЛЬНО!
Отключаем Wi-Fi модуль ESP-01S от релейного модуля! Она не должна быть подключена во время прошивки!
Только после этого Подключаем TTL контролер к пинам GND, TX, RX, 5V на плате релейного модуля и ждем, пока передача данных не будет завершена.
Теперь протестируем прошивку и работоспособность релейного модуля.
- Для этого переходим на вкладку COM Helper, выбираем порт нашего TTL контролера и жмем на Open COM.
- Вводим в TX Buffer по очереди команды A0 01 01 A2 и A0 01 00 A1 в режиме HEX-Mode и жмем на кнопку Send Data.
Если все было сделано правильно, то загорится светодиод, а вместе с ним еще и защелкнет реле. Но если этого не произошло, то придется опять колдовать паяльником с резисторами R3 и R4. Ну а если все работает, как надо, то переходим к прошивке уже самого Wi-Fi модуля ESP-01S для работы с нашим модулем.
Прошиваем Wi-Fi модуль ESP-01S специальной прошивкой
Думал отдельную статью сделаю. но ладно так уж и быть. распишу все тут.
Казалось бы столько манипуляции сделано, но неужели этот релейный модуль еще не готов к работе.
Ответ я думаю уже понятен — НЕТ! Релейный модуль управляется последовательной связью через микроконтроллер, то есть ESP передает команды Включить/Выключить через контакты RX/TX микроконтроллеру, а дальше уже микроконтроллер выполняет реальную работу. Чтобы оправить те самые команды для управления, нужен специальный плагин «Serial MCU controlled switch».
Как подключать TTL контролер к Wi-Fi модулю ESP-01S я рассказывать не буду, ибо много статей про это, а вот как прошить его, сейчас подробно разложу!
Скачаем архив с программатором ESPEasyFlasher последней версии и разархивируем его куда-нибудь в удобное место, после чего скачаем специальную версию прошивки и поместим в папку BIN.
Этой прошивкой можно управлять следующими устройствами:
Tuya Wifi Touch wall switchTuya Wifi Dimmer SwitchSonoff Dual (Поддерживается только V1) Релейные модули от LC TECH (Поддерживаются вплоть до 4 релейных модулей.)
Именно поэтому я и хотел вывести это в отдельную статью!
Чтобы путаницы не было, распишу все поочередно:
- Подключаем Wi-Fi модуль ESP-01Sк вашему ПК.
- Запускаем ESP.Easy.Flasher.exe и выбираем COM port
- В пункте Firmware выбираем blank_1MB.bin и жмем на кнопку Flash ESP Easy FW, тем самым прошиваемся на нулевую прошивку.
- После успешной прошивки, переподключаем ESP-01S модуль к ПК.
- Теперь в пункте Firmware выбираем прошивку ESPEasy_Mega_P165_1M_128kS_lwip20_PUYA.bin и опять жмем на кнопку Flash ESP Easy FW.
- Ждем, когда прошивка закончится, и переходим к следующему пункту.
Находим точку доступа ESP_Easy_0 и подключаемся.Открываем адрес в браузере 192.168.4.1, выбираем вашу домашнюю сеть Wi-Fi, вводим пароль и жмем Connect.После обратного отсчета должен высветиться IP адрес нашего ESP. Жмем на кнопку Proceed to main config и переподключаемся к домашней точке доступа. Так же IP адрес нашего ESP можно узнать такими способом найти IP адрес.
Переходим по IP адресу нашего ESP (Способы определения IP адреса) и настраиваем как указано ниже. Откроем раздел Devices, жмем на кнопку Edit, выбираем из списка пункт Serial MCU controlled swich.
В открывшихся пунктах вводим следующее.
- В поле Name вводим ESP01Relay
- Ставим галочку Enabled
- В поле Switch Type выбираем производителя нашего релейного модуля, то есть LC TECH
Жмем на кнопку Submit, после чего опять же появятся новые подпункты.
- Number of relays: здесь вводим количество реле на плате, в данном случае у нас 1.
- Serial speed: старые версии модуля работают со скоростью 9600, а новые на 115200!
Теперь покажу как это все будет работать.
Все элементарно просто — заходи в браузер и набираем HTTP команды:
- Включаем реле №1: http://ESP_IP/control?cmd=relay,0,1
- Выключаем реле №1: http://ESP_IP/control?cmd=relay,0,0
- Включаем реле №2: http://ESP_IP/control?cmd=relay,1,1
- Выключаем реле №2: http://ESP_IP/control?cmd=relay,1,0
- Включаем реле №3: http://ESP_IP/control?cmd=relay,2,1
- Выключаем реле №3: http://ESP_IP/control?cmd=relay,2,0
- Включаем реле №4: http://ESP_IP/control?cmd=relay,3,1
- Выключаем реле №4: http://ESP_IP/control?cmd=relay,3,0
И напоследок.
Всем этим можно управлять как через OpenHAB MQTT, долгое время пытался решить этот вопрос, но пока безрезультатно. Как удастся решить этот вопрос, сразу обновлю статью. Ну, а если у кого-то получится сделать это раньше, обязательно отпишитесь в комментариях.
А на этом все, всем спасибо, ставьте лайки, пишите комментарии.
Источник: sprut.ai