Poll-decor.ru

Пол Декор
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Алиса, Ардуино и Blynk — делаем собственное устройство

Алиса, Ардуино и Blynk — делаем собственное устройство

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

  • любит «дешево и сердито»;
  • не любит готовые решения, и предпочитает мозговой штурм и пайку;
  • еще думает над своей концепцией УД (можно использовать, как пример);
  • кто «в теме», но пока имеет сложности с подключением собственных наработок к Умному дому Яндекса.

Из чего состоит устройство

Само устройство внешне похоже на переходник. Внутри розетки находится плата, датчики и встроенный модуль GSM, благодаря которому и происходит управление. Электронная плата оснащена слотами для сим-карты и держателем для батареи. На корпусе есть вилка и евророзетка. Также есть светодиодные индикаторы и кнопки, количество которых зависит от используемой модели. Дополнительно в розетку могут быть встроены датчики температуры, аккумуляторы, таймеры и другие важные компоненты, расширяющие функционал.

Wi-fi розетка на esp8266 Умный дом

Умная розетка на ESP-wifi esp8266 esp-07В сети Интернет поискал и нашёл много разных исполнений умных радиоуправляемых wifi розеток, но все варианты мне неустраивали или по исполнению или по методу управления или ардуино или инфа какая-то есть, но скучно читать — ни одной картинки, безобразие.

Представляю Вам Wifi розетку на модуле ESP8266.

В своём варианте исполнения релейной управляемой розетки использую модуль ESP-07(вы можете использовать ESP8266 сразу с UARTом на борту и NODEMCU вот такую напимер), Прошитый под LUA то есть nodemcu, соответственно напишу два скрипта LUA. О том как писать — вгружать скрипты писал в первой статье «Первая программа на LUA для ESP»
Использовать для написания и загрузки скриптов в модуль esp8266 буду программу

ESPlorer

созданную именно под эти цели.
В первом скрипте будет реализована функция подключения к Wi-fi роутеру и 10 секундная задержка перед запуском второго скрипта основной программы.
Сделано именно с задержкой для того что-бы после перезагрузки модуля с помощью комманды tmr.stop остановки счётчика можно было остановить таймер и что-то подправить и вгрузить опять иначе программа при выполнении вам не даст ничего вгрузить вновь(вобщем делайте так)!
Второй скрипт будет содержать саму программу с поднятым веб сервером на котором будет простецкий html интерфейс с кнопками.
Простенькая схемка
Использовать — тоесть дёргать ногами будем GPIO2 и GPIO0.
схема умной радиоуправляемой wifi розетки релейного модуля esp8266" alt="схема умной радиоуправляемой wifi розетки релейного модуля esp8266

Читайте так же:
Двойная розетка под телевизор

Первый скрипт

с именем init.lua
Обязательно с таким именем ибо nodemcu первым делом после старта загружает именно его.

Незабываем в скрипте поменять имя и пароль от сети вайфай!

Второй скрипт назовём его rrr.lua
Будет поднимать вебсервер и ждать нажатия на кнопки.

Лучше скачать эти скрипты отсюда, так как в коде потёрлись(фильтранулись движком сайта) некоторые теги.

Скачать скрипты LUA для Умного дома реле.

init.lua

rrr.lua

Код может и корявый но рабочий_) Проверйяте)
Не обращайте внимание если при включении релюхи будут передёргиваться, это нормально для GPIO2 и GPIO0. Можете использовать другие ноги.

Если всё без ошибок, то Вы сможете войти в устройство через браузер по выданному от wi-fi роутера паролю. Ож нже будет выдан в интерфейс если смотреть в com порт автоматически при выполнении в скрипте комманды print(wifi.sta.getip())

Распиновка ESP для работы с ногами GPIO в среде LUA
соответствие GPIO LUA распиновка для скрипта

Добавлено 01.04.2020

Всвязи с распространением коронавируса по стране сидим дома и собираем очередную розетку для насоса малыша на обычном пускателе. Почему не твердотельное РЕЛЕ на симисторе? Да потому что китайцы суют в твердотелки 12 амперный 600вольт симистор и впаривают, а я в результате получу пробитый симистор от коммутации индуктивной нагрузки.
Пускатель(реле) тож может пригореть, но время покажет и эффективность снаббера.

Вот что получается.

Реле пускатель на ESP01
`Реле пускатель на ESP01
Реле пускатель на ESP01

Умный дом — делаем управляемую розетку из роутера

Краткая предистория
Сначала был хаос… Пропустим этапы сотворения мира и эпоху динозавров и перейдём сразу к 21 веку. Кругом беспроводные технологии, электроника повсюду, космические корабли летят к Марсу…

Открыв для себя китайские интернет-магазины разных товаров, я накупил всякого добра. В частности, были куплены наборы для дистанционного управления лампочками: пультик и к нему несколько коробочек. В результате я сделал дома 4 управляемые розетки и теперь, лёжа вечером на диване и читая, можно зажечь или погасить свет в комнате и в коридоре, не вставая с дивана. Удобно.

Читайте так же:
Как подключить интернет через розетку 220

Ещё были куплены совершенно чудесные маленькие дешёвые WiFi-роутеры. Один из них использован как «удлинитель» для беспроводного интернета в детской, а другой оставался в резерве. Кстати, рекомендую, весьма неплохие характеристики за сумму менее 600 рублей.
В «закромах Родины» лежало много разных хороших вещей, и были большие новогодние выходные. И родился проект…

Цель и средства

Решено, что совершенно необходимой вещью в моём «умном доме» является электрическая розетка, которой можно управлять через интернет. Для этого были собраны в кучу необходимые детали:

  • роутер
  • плата с микроконтроллером AtMega16 от старого проекта
  • твердотельное реле
  • 2-строчный ЖКИ-дисплей
  • корпус
  • провода и прочие расходные материалы
Техническое задание

Устройству было дано имя «MZ-switch», и оно должно было делать следующие вещи:

  • принимать команды от хозяина через интернет
  • работать как реле управления нагрузкой и как реле времени
  • работать как «пинговалка» и уметь перезагружать роутер и отключать нагрузку при отсутствии пингов
  • программировать параметры работы из командной строки и сохранять их в своей памяти
  • показывать статус на дисплее
  • радовать хозяина своим существованием
Инжекция кода в роутер

Когда я получил роутер, то, разумеется, сразу полез внутрь. Сначала я полез туда не механически, а метафизически, через телнет.
Выяснилось, что внутри у него неонка Линукс, и даже можно при желании написать и запустить собственный скрипт. Можно даже сохранить его в памяти роутера, но вот как заставить скрипт автоматически запускаться при старте?
Несколько дней было убито на то, чтобы найти возможность запуска скрипта. Основная идея была в «инжекции кода» в запуск какого-то стартового скрипта, и такой скрипт был найден! Инжекция выглядит так:

code_inject

Теперь мой роутер при старте извлекает из своей памяти сохранённые там скрипты и запускает их. Следовательно, можно реализовать свой алгоритм взаимодействия с окружающим миром.

Добившись от роутера запуска скриптов, я полез в него механически. Внутри обнаружился последовательный порт, через который можно получить доступ к консоли. Припаяв 3 штырька к нужным точкам платы, я получил возможность управлять роутером через последовательный порт с помощью микроконтроллера.

Читайте так же:
Гост розетки электрические бытовые
Микроконтроллер и программа управления

Микроконтроллер должен уметь общаться через последовательный порт с роутером, управлять нагрузкой, отображать на дисплее результаты работы и вообще делать всю грязную работу. От предыдущего проекта оставалась плата с микросхемой AtMega16, имеющая нужный функционал. Она и пошла в дело.
Базовый алгоритм работы микроконтроллера выглядит так: получаем строку с командой, анализируем, выполняем, возвращаем строку с ответом. Это напомнило мне логику работы аналоговых модемов: S-регистры с данными и AT-команды управления.
Уважая копирайты и вообще для разнообразия, алгоритм оперирует понятиями R-регистров и MZ-команд. Регистры хранят числа и строки, а команды позволяют изменять регистры и управлять логикой работы.
Пример команды настройки контраста дисплея: «MZ+R0=200»

Умный алгоритм

Алгоритм работы микроконтроллера состоит из нескольких отдельных задач:

  • передача данных из буфера передачи
  • приём данных и сохранение их в буфере приёма
  • анализ принятых данных и определение команд
  • чтение и запись внутренних R-регистров
  • управление нагрузкой и логикой работы
  • индикация режимов работы
  • отсчёт интервалов времени

Всё это удалось разместить в объёме 8К кода и 512 байт данных, использовав всего половину ресурсов микроконтроллера. Так что можно ещё чего-нибудь придумать и напрограммировать. Например, показывать на дисплее время, погоду, играть музыку и передвигаться по квартире.
Управляющая программа была написана и отлажена на обычном терминале. При этом не пострадало ни одно устройство.

В результате получился следующий функционал устройства:

  • пауза после включения: позволяет дождаться загрузки роутера и не реагировать на «мусор», который он при этом выдаёт в консоль
  • если требуется авторизация, то ввод логина и пароля в ответ на запрос от роутера
  • запуск скрипта, позволяющего настроить конфигурацию роутера для работы с устройством (init)
  • запуск основного скрипта, который будет выполняться роутером при работе (loop)
  • приём команд от роутера и передача ответных сообщений
  • сторожевой таймер для перезагрузки роутера при отстутсвии активности
  • запуск скрипта, перезагружающего роутер (halt)
  • включение и выключение нагрузки с помощью оптоизолированного реле
  • возможность настраивать все параметры и хранить их в памяти микроконтроллера
Шайтан-машина

Почему-то очень часто реализация функционала какой-нибудь простой вещи напоминает мне задачи из игры Incredible machine. Ну как может цель «включить лампочку» состоять из таких затейливых вещей и действий? А вот как:

  • Чтобы роутер мог выполнять наши скрипты, сделаем «инжекцию кода» в один из его собственных скриптов.
  • Инжектированный код создаёт в папке /tmp несколько служебных скриптов, которыми мы потом воспользуемся.
  • Роутер не позволяет создавать файлы с атрибутом «исполняемый» и, благодаря заботливым китайцам, не имеет команды chmod.
  • Но мы элегантно обходим эту неприятность: сначала копируем какой-нибудь исполняемый скрипт под нужным нам именем в папку /tmp, а затем перезаписываем его содержимое!
  • Роутер имеет WEB-интерфейс для управления, но изменить/добавить свою страничку нельзя: всё read-only
  • Но мы элегантно обходим эту неприятность: оказывается, есть страничка для запуска любой команды, но на неё нет прямых ссылок. Набираем адрес этой странички вручную, и можем запускать свои скрипты! Хоть и не красивой кнопкой, а олдскульной командной строкой.
  • Чтобы устройство получило команду от пользователя, используем метод «сохрани-и-передай»: один скрипт вызывается из формы ввода команд и сохраняет ввод пользователя в файл. Другой скрипт постоянно проверяет наличие этого файла, а найдя — отправляет через последовательный порт на микроконтроллер.
  • Получив ввод пользователя, микроконтроллер выделяет из него команду и выполняет её. Например команду «включить нагрузку».
Читайте так же:
Как протянуть розетку от автомата

Всё, задача решена!

Сборка в корпус

Множество проектов не доживают до релиза из-за того, что лень или не из чего делать нормальный корпус. В данном случае изначально была поставлена цель: сделать «промышленный образец», чтобы он выглядел по-взрослому, а не как обычно.
Корпус был взят достаточно просторный, чтобы всё там разместить без тесноты. Пара выходных с дрелью и напильником, йо-хо-хо и бутылка рома, и вот устройство собрано. Все крепёжные элементы были найдены в шкафу, где хранятся остатки от сборки мебели и вообще хлам полезные в хозяйстве мелочи. Не удивляйтесь креплениям из дюбелей: винтов с гайками под нужный диаметр не нашлось.
Незаменимым материалом при сборке являются «китайские сопли» — трубочки из пластмассы для клеевых пистолетов. За неимением такого пистолета все работы выполнялись жалом обычного паяльника.

Вот что получилось в итоге:
снаружи
снаружи
изнутри
изнутри

Зачем это было нужно

Не буду говорить, что создано уникальное устройство, аналогов которому ещё не существует. Хотя, почему не буду? Буду! Любой новый продукт в маркетинговых материалах именуется не иначе как «уникальный» и «не имеющий аналогов». В крайнем случае «в несколько раз лучше, чем обычный…». Поэтому говорю: получилось действительно уникальное устройство, более чем в 9000 раз умнее, чем обычная розетка.
Можно подключить электрочайник и включать его с ноутбука через Wi-Fi. А можно включить пароходную сирену, если в доме пропал интернет. А можно подключить к устройству Самый Главный Сервер и перезагружать его, находясь дома.
На самом деле данный проект был реализован в качестве «разминки для ума», чтобы не растерять навыки в программировании микроконтроллеров и владении паяльником.

Материалы проекта разрешается копировать и модифицировать. Желательно со ссылкой на автора проекта.

Читайте так же:
Можно ли выключать холодильник с розетки

Устройство розетки

В корпусе устройства смонтировано несколько модулей:

  • Блок высоковольтной коммутации — реле с рабочим током до 16 А, включающее и отключающее подачу 220 В в нагрузку.
  • Контроллер управления — микропроцессор с предустановленной управляющей программой.
  • Блок питания 3–5 вольт, необходимый для работы микропроцессора и блока связи.
  • Блок доступа в сеть — WiFi или GSM модуль.

Устройство розетки

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

Тестирование

Для проверки розетки можно использовать блок питания на 5 вольт, батарейки, либо li-ion аккумулятор с напряжением 3,7 вольта, что я и сделал. В качестве нагрузки подключил светодиодный ночник.

На фото ниже розетка подключена к линии 220, один провод от аккумулятора подключен к управляющему разъему, ночник не горит, поскольку отсутствует управляющий сигнал 5 вольт.

Подключение розетки с дистанционным управлением

Подключение розетки с дистанционным управлением

Подключаем второй провод от аккумулятора к разъему, тем самым подаем управляющий сигнал на реле. Ночник включился! Розетка работает!

Проверка работы розетки с дистанционным управлением

Проверка работы розетки с дистанционным управлением

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

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector