Інтернет Речей (IoT) і водопровід

Після публікації про інтернет речей, нам прийшов лист з ідеєю застосування модуля ESP-8266:

«Є у компанії Майстер-Кіт дуже цікава річ – моторизований кульовий кран. Дана модифікація живиться від напруги від 3 до 6 вольт і чудово відкриває і закриває подачу води в побутових трубопроводах.



У мене вдома стоїть кран без моторчика і, на жаль, розташований в дуже незручному місці. Кожен раз, коли доводиться перекривати воду, доводиться виконувати пластичний етюд «Людина-змія». Тому і вирішив встановити один раз моторизований кран і забути про гімнастику. Але тягнути купу дротів для керування краном у нещодавно відремонтованому ванній кімнаті не хотілося, тому став думати про бездротовому рішенні.

Увагу привернув модуль ESP-8266,



на основі якого у Майстер-Кіт вже є двоканальне Wi-Fi реле MP3500.

Але мені не потрібно управляти великими струмами і напругами, а плату управління хотілося заховати в корпус моторизованого крана, тому захотілося мінімізувати розміри пристрою. Для відпрацювання вирішив використовувати макетну плату і вивідні компоненти.





Модуль ESP8266 підключив шлейфом до плати, для програмування модуля використав що вже став стандартним перехідник USB-UART на мікросхемі PL2303. Драйвери для перехідника без проблем знайшлися в інтернеті.

А ось для програмування ESP я вирішив використовувати прошивку nodeMCU, яка дозволяє управляти модулем, не використовуючи набір AT-команд, а скриптова мова високого рівня LUA.

Для спілкування з краном по Wi-Fi було вирішено написати програму для смартфона на Android за допомогою проекту Массачусетського технологічного інституту Appinventor
.
Отже, по порядку.

У моторизованого крана є три висновки: один загальний і два керуючих, подаючи на які позитивний напруги від 3 до 6 вольт можна відкрити або закрити кран. Стало бути, двох висновків GPIO (входів/виходів загального призначення ) модуля ESP цілком достатньо для управління. Схема «експерименту» виглядає так:



Напруга живлення 3,3 В береться з перетворювача USB-UART, висновки RXD і TXD перетворювача підключені відповідно до висновків TXD і RXD модуля ESP для програмування. Резистори відповідно з рекомендаціями виробника модуля ESP підтягують висновки до напруги живлення, транзистори служать для посилення струму керування краном, який досягає 60 мА під час відкривання або закривання. В інший час кран струм не споживає.

Модуль ESP може працювати в двох режимах – як точка доступу, коли смартфон підключається до нього безпосередньо, і в режимі інфраструктури, підключаючись до існуючого роутера, який є тепер майже в кожній квартирі. Таким чином, у другому режимі смартфон підключається до роутера. Режим модуля може бути заданий в процесі установки, яка теж відбувається за допомогою смартфона.

На модулі піднято простенький web-сервер, який чекає надходження команди, повідомляє про успішну прийомі, обробляє її, і виконує, перемикаючи відповідний GPIO в 0 або 1 на час, необхідний для повороту крана.

Як видно, при цьому використовуються тільки внутрішні можливості модуля ESP, і застосовувати які-небудь додаткові мікроконтролерні керуючі схеми не потрібно. До речі сказати, модулі ESP існують і з великою кількістю GPIO, що працюють в різних режимах, що може істотно розширити область його застосування.

Прошивка модуля заливається за допомогою утиліти ESPlorer – дуже зручною IDE для модулів ESP, яка дозволяє працювати з модулем на LUA, Python'e і за допомогою AT-команд – все в одному флаконі!
Програма для смартфона служить для подачі управляючих команд і дистанційної настройки режимів Wi-Fi.





Як вже говорилося, вона створена з допомогою проекту Appinventor. У цьому проекті програмування відбувається в візуальному середовищі, не вимагає спеціальних знань в області програмування android-пристроїв.

Звичайно, програма виходить кілька надлишковою — обсяг получающегося коду куди більше, ніж при традиційному програмуванні, але це окупається простотою і швидкістю розробки. Середовище неважко освоїти, і можна самому писати цілком зрозумілі програми. До того ж, пам'ять сучасних смартфонів не накладає суттєві обмеження на розмір завантажених у них програм.

Нижче наведено скріншот програми управління модулем зі смартфона (всі картинки можна відкрити в новому вікні в оригінальному розмірі).



Тут є надлишкові елементи, що з'явилися в процесі освоєння обміну даними, але основу становлять обробники подій натискань кнопок Button3 – поміняти на 5 секунд стан виведення GPIO00 для відкривання крана, і Button4 – відповідно виводу GPIO02 для закривання. Наприклад, при натисканні на Button3 на сервер, піднятий на модулі, надсилається виклик GET http://ір_адрес/mode=cmd&sw0, висновок GPIO00 змінює свій стан на 0; таймер Clock2 включається на 4000 мс, а по закінченні цього часу спрацьовує подія таймера, що посилає ту ж команду, яка змінює стан виведення GPIO00 на 1. Кран відкритий.



На наступному скріншоті наведена частина програми, яка відповідає за встановлення режиму та параметрів модуля ESP. Тут, крім режиму Wi-Fi, можна поміняти IP-адреса, порт, маску мережі, шлюз, SSID бездротової мережі і пароль. Після пересилання параметрів на модуль автоматично перезавантажується для роботи з новими параметрами.



Прошивка модуля, написана на LUA, досить стандартним способом, описаним в документації, організовує сервер, що приймає і обробляє надходять команди.

Підсумок: зв'язка ESP8266 – водопровідний кран працює. Даний інтернет речей вийшов. Буду робити плату на SMD елементах, збирати в готову конструкцію і встановлювати. Закінчу – відпишу!»

Відео тестування на працездатність:

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.