Интелектуальный дом



Умный Дом на Базе Роутера

Как из китайского роутера сделать управляемую розетку, или ещё один проект для умного дома и офиса  Август 19, 2022 – 23:02
Итого Последнее время на Хабре всё больше статей на тему «Умный Дом», «Сделай Сам», и меня это радует. Внесу и я свой скромный вклад в развитие цивилизации. Добро пожаловать в мир умных вещей!
Краткая предистория
Сначала был хаос… Пропустим этапы сотворения мира и эпоху динозавров и перейдём сразу к 21 веку. Кругом беспроводные технологии, электроника повсюду, космические корабли летят к Марсу…

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

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

Цель и средства
Решено, что совершенно необходимой вещью в моём «умном доме» является электрическая розетка, которой можно управлять через интернет. Для этого были собраны в кучу необходимые детали:
  • роутер
  • плата с микроконтроллером AtMega16 от старого проекта
  • твердотельное реле
  • 2-строчный ЖКИ-дисплей
  • корпус
  • провода и прочие расходные материалы
Техническое задание
Устройству было дано имя «MZ-switch», и оно должно было делать следующие вещи:
  • принимать команды от хозяина через интернет
  • работать как реле управления нагрузкой и как реле времени
  • работать как «пинговалка» и уметь перезагружать роутер и отключать нагрузку при отсутствии пингов
  • программировать параметры работы из командной строки и сохранять их в своей памяти
  • показывать статус на дисплее
  • радовать хозяина своим существованием
Инжекция кода в роутер
Когда я получил роутер, то, разумеется, сразу полез внутрь. Сначала я полез туда не механически, а метафизически, через телнет.
Выяснилось, что внутри у него неонка Линукс, и даже можно при желании написать и запустить собственный скрипт. Можно даже сохранить его в памяти роутера, но вот как заставить скрипт автоматически запускаться при старте?
Несколько дней было убито на то, чтобы найти возможность запуска скрипта. Основная идея была в «инжекции кода» в запуск какого-то стартового скрипта, и такой скрипт был найден! Инжекция выглядит так:

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

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

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

Source: geektimes.ru

Видео на тему:
Система безопасности и система оповещения на базе умного
Система безопасности и система оповещения на базе умного ...
Распаковка аксессуаров от Xiaomi: тонометр, умный дом
Распаковка аксессуаров от Xiaomi: тонометр, умный дом ...
[MWC14] Умный дом и тачка от Qualcomm [HQ]
[MWC14] Умный дом и тачка от Qualcomm [HQ]
Контроллер для "Умного дома" на базе Arduino с управлением
Контроллер для "Умного дома" на базе Arduino с управлением ...
Переработанная версия интерфеса ПО умного дома на базе
Переработанная версия интерфеса ПО умного дома на базе ...
Как работает Умный Дом. Пример на базе INELS
Как работает Умный Дом. Пример на базе INELS

Похожие публикации:

  1. Умный Дом Климат Контроль
  2. Умный Дом Тенденции
  3. Умный Дом Санкт Петербург
  4. Умный Дом Без Интернета
  5. Умный Дом Производство