Как я пилю умный дом ч.1

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

Началось все с того, что я зачем-то заказал 2 умных реле на Aliexpress. Типа вот таких:

Эти реле привязываются через приложение к облачному серверу и позволяют управлять через телефон включением и отключением нагрузки. Так же можно создавать сценарии на включение/отключение по времени. Я отложил их в дальний ящик и благополучно про них забыл, пока не наткнулся на просторах интернета на прошивки Tasmota для таких реле. Вкратце расскажу о начинке:
Наряду с известными всем микроконтроллерами Arduino есть такие контроллеры как ESP8266, ESP32 и им подобные.

Они недорогие, производительные и их легко купить. К ним можно подключать кнопки, датчики, реле и прочее. И эти же контроллеры устанавливают во многие умные устройства, включая реле которые я купил. Это я понял вскрыв корпус реле и осмотрев плату.

Теперь о программной части: на данные контроллеры устанавливаются разные прошивки. Можно установить microPython, можно программировать на них с помощью среды разработки для Arduino. А можно устанавливать готовые прошивки, которые сильно упрощают работу с устройством. В эти прошивки уже встроен Web интерфейс, работа с беспроводными сетями и многое другое. Одна из них это Tasmota и есть несколько довольно простых способов прошить ее на ESP. Готовые модули ESP уже имеют разъем MicroUSB, для голых плат придется приобрести программатор.

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

Следующие фото взял из интернета, но у меня было точно так же.

Так выглядит внутрянка реле:

Синяя перпендикулярная плата как раз та, на которой ESP8266.

Это она же с обратной стороны:

В правой нижней части видно контакты нашей целевой платы

К этим контактам нужно подпаять провода, которые в последствии подключатся в программатор

Питание 220В на плату подавать не нужно. Контроллер возьмет питание от программатора. Только будьте внимательны, сам контроллер ESP питается от 3,3В. А на программаторе может быть выход только 5В. Тогда нужно будет обеспечить 3,3В от другого источника. Подробно здесь этот вопрос описывать не буду.

После смены прошивки и подключения к Wi-Fi прошивальщик сам отправит нас по нужному ip-адресу и мы окажемся на главной странице нашего устройства

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

Управлять включением/отключением реле из WEB интерфейса и в домашней сети мы теперь можем. Передо мной встали несколько вопросов:

  1. Как заставить устройства общаться между собой.

  2. Управление устройством через приложение, получать от него обратную связь.

  3. Сделать автоматизацию, управление по сценариям и событиям в целом.

  4. Удаленное управление из интернета.

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

Если коротко, то каждое устройство может рассылать и получать определенные топики вида
/статус/устройство/№реле "состояние" или команда/устройство/№реле "действие".
Для того чтобы устройства могли общаться между собой им нужен сервер. Слать сообщения напрямую они не могут. Применимо к MQTT сервер называется Брокер

Но брокер сам по себе не управляет устройствами, а лишь является связующим звеном, хранит и передает сообщения. На что поставить брокер? Так как для него не требуется больших вычислительных способностей я решил установить его прямо на роутер. Так как роутер всегда включен и к нему же подключаются беспроводные устройства. Если есть какое-то устройство которое будет работать 24/7 и управлять умным домом, можно воспользоваться им.

У меня уже имелся простенький роутер с 4G модемом. ZBT1626

Прочитав инструкцию на 4pda установил на нее кастомную прошивку OpenWRT. И затем установил на него брокер Mosquitto. В настройках Tasmota вводим ip-адрес mqtt брокера и теперь наши устройства могут общаться меджу собой. В следующих постах расскажу подробнее о настройке MQTT, из чего делал сервер умного дома и какие устройства уже есть в работе

Самодельный WiFi танк. ESP-32 + Arduino

Всем привет, хочу поделится с вами своим танком.

Я cделал танк для того, чтобы научится делать подобные машинки и набраться побольше опыта с платами Arduino и ESP. Ну и вообще просто захотелось собрать что-то такое что б ездило и жужжало =)


Основные компоненты, которые я использовал:

*Модуль ESP-32-cam – в роли камеры и контроллера, который отвечает за роботу с WiFi.

*Arduino Nano – контроллер, который отвечает за управление двигателями и прием/обработку данных с датчиков.

*L298N – драйвер для двигателей (выбран из-за харизматичного вида).

*Датчики, которые есть на борту – ультразвуковой дальномер US-025; барометр BMP280; модуль акселерометр и гироскоп MPU-6050; термометр и гигрометр DHT-11, датчик Холла A3144 в роли импровизированного тахометра.

*Бортовое питание – два аккумулятора 18650 2000 мА*ч; повышайка MT3608; зарядка usb type-c.

*Корпус использовался от игрушечного танка – срезал верхнюю часть, замазал все дырки термоклеем, редуктор оставил родной, металлическая крышка вырезана из автомагнитолы, петля обычная дверная.

В целом выбор датчиков не обусловлен ничем кроме моего стремления поиграться с ними, по большему счету они ничего не делают, но создают мне базу для будущих экспериментов, а еще с ними танк выглядит как что-то серьезное).


Важно!

Скорее всего правильно подписывать картинки снизу, но ведь это не удобно прочитать описание, а потом листать вверх что бы приглядеться снова, по этой причине что бы не возникало путаницы предупреждаю – описание к изображению будет сверху.


Вид танка спереди. Можно увидеть зеленую плату с двумя «вылупнями» – это ультразвуковой датчик, немного похоже на глаза. Выше в очень аккуратном вырезе притаилась камера и хотя ее характеристики позволяют ей снимать мир в потрясающем разрешении в 2Мп (1600x1200) при практическом использовании ее разрешение меньше – 800x600.

Левый борт. Большинство датчиков размещены (с комфортом) на нижней зеленой плате, на правом краю платы можно увидеть рычажок который переключает танк в бесшумный режим – не будет пищать зуммер, который в свою очередь нужен для подачи танком служебных и оповещающих сигналов для разгона зевак на улице (что б не задавили танк). Так же видно торчащий как палка провод в правом нижнем углу, это датчик Холла, который закреплен напротив ведущей звездочки для подсчета ее оборотов (способ не очень, но работает). Этажом выше расположена Arduino Nano, отсюда она может эффективно распоряжаться своими подчиненными – датчиками и двигателями и общаться по выделенному каналу связи со своей подружкой ESP.

Правый борт танка. Тут можно увидеть: кнопку управления питанием, справа на белой коробке (корпус ESP) находиться красный рычажок, переводящий ESP в режим прошивки, чуть выше кнопка, выполняющая самую важную функцию – перезагрузку ESP. Слева на корме удобно устроился драйвер для двигателей L298N, его радиатор является важным элементом в дизайне танка. Ниже под гусеницей можно наблюдать два болта которые скрепляют крышку танка с его основным корпусом через петлю, данный элемент крепления намеренно сделан побольше для обеспечения структурной целостности и придания характерного вида танка.

Танк с открытой крышкой, вид спереди. Металлическая крышка выполняет несколько функций: обеспечивает эффективное использование пространства, облегчает монтаж элементов и самое главное придает танку бронирование (а танк ведь обязан его иметь). И просто это круто выглядит.

Танк с открытой крышкой, вид от кормы. На этой фотографии видно танковую батарею, моторы, спрятанный шнурок для прошивки ESP, плату зарядки аккумуляторов, которая позволяет танку быть в духе современности – type-C же. Можно еще увидеть кривой монтаж и вырез крышки, но все это элегантно скрывается не в фокусе.

Танк, вид от кормы – на зарядке. Снизу прикручен бампер, благодаря чему к танку можно прицепить трос для помощи своим менее везучим братьям.

Разобранный корпус для ESP. Сам корпус был сделан из остатков сигнализации (датчик движения), внутри обклеен фольгой для экранирования ESP от помех (и просто для красоты). Антенна взята от старого роутера. Данная коробка отлично дополняет стиль танка «из чего было – с того и собрал».

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

Для управления танком я создал приложение при помощи Unity (игровой движок). Конечно, можно было сделать нативное приложение для андроида, но чисто для прикола почему бы не сделать его на Unity, да?


Главный экран приложения. Вверху в шапке можно видеть всю нужную информацию, например качество связи, заряд батареи, последнюю отданную команду движения и пару-тройку датчиков. Внизу управление. Слева выход, журнал. Справа настройки, данные датчиков и кнопка послать звуковой сигнал. Уровень сигнала ноль, потому что это уровень сигнала от репитера (вторая ESP, в роли маршрутизатора для увеличения радиуса действия), но на тот момент танк был подключен напрямую.

Экран настроек. Можно поменять размер картинки, качество видео. Из прикольного автонастройка качества видео, если связь ухудшается и видео начинает идти с задержками, то приложение автоматически посылает сигнал танку для перенастройки качества сигнала. Работает не прям что идеально, но вполне сносно. Так же есть галочка для снятия защиты двигателей, не смотря на название двигатели оно не защищает, это защищает сам танк от зависания, когда на низком заряде двигатели выжимают последние капли из батареи и напряжения не хватает для контроллеров (да можно было бы сделать раздельное питание, но мне хотелось единое).

Экран данных с датчиков. Ничего такого просто датчики, просто данные. Часть из них к тому же не очень-то и настроена.

Демонстрация работы танка ниже на видео. Видео ускорено в 3 раза.

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

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


Бонусная фотография – танк на вечерней прогулке

Рекомендуем
@bark
@waresnik04
Тренды

Fastler - информационно-развлекательное сообщество которое объединяет людей с различными интересами. Пользователи выкладывают свои посты и лучшие из них попадают в горячее.

Контакты

© Fastler v 2.0.2, 2024


Мы в социальных сетях: