Если на плате Arduino ограниченный объём физической памяти, то на сервере этот объём ничем не ограничен. Саму программу сервера можно написать так, что она будет полностью управлять платформой Arduino.
Например, можно расширить функционал нашего «умного» дома и приблизить его к умному дому без кавычек. Есть возможность написать такой алгоритм, который будет вести статистику нахождения хозяина в доме и его возвращение домой. Если хозяин обычно возвращается домой в районе 17:30, то за час можно включить бойлер для нагрева воды. Также, ориентируясь на это время, можно заранее включить отопительные приборы, чтобы возвращение было уже в тёплый дом, а не в тот, где температура ниже на 10 градусов из-за экономии электричества в отсутствии хозяев. Программа может понять когда хозяева обычно ложатся спать и заранее переставать греть воду, так как ею уже никто не будет пользоваться до утра. И таких нюансов может быть множество. Именно внешний компьютер может дать продвинутые «мозги» контроллеру на Arduino, который превратится больше в исполнительный механизм.
Функции, реализованные в проекте
- Комплексное управление городской квартирой
- Управление системой из веб-интерфейса
- Адаптивный дизайн для использования на планшетах и смартфонах
- Отсылка тревожных и информационных SMS сообщений
- Сохранение настроек в энергонезависимой памяти системы
Режимы присутствия людей в доме
- Режимы «присутствие» и «отсутствие» людей в доме
- Смена режима в веб-интерфейсе
- Возможность отложенной смены режима с регулируемой задержкой срабатывания
Отопление
- Управление отоплением 5-и помещений и зон в квартире
- Управление работой тёплых полов в 5-и помещениях
- Автоматическое поддержание заданной температуры
- Установка параметров отопления в веб-интерфейсе
- Регулировка температуры в зависимости от режима присутствия людей
- Дополнительное разбиение режимов на 2 поддиапазона «высокий» и «низкий»
- Задание матрицы целевых температур в веб-интерфейсе
- Задание матрицы «высоких» и «низких» режимов для каждого времени суток
- Регулировка температуры с учётом матрицы высоких и низких подрежимов
- Контроль текущей и целевой температуры в реальном времени на веб-странице
- Задание допустимых лимитов отклонения температуры в веб-интерфейсе
- Индикация текущих нарушений температурных лимитов на веб-странице
- Отсылка тревожных SMS при нарушении лимитов отклонения температур
nRF24 сеть
- Поддержка работы nRF24 сети
- Использование нативного AMS nRF24 беспроводного стека и протокола
- Использование беспроводных батарейных AMS nRF24 датчиков
- Удалённый контроль «здоровья» беспроводных датчиков
- Отслеживание активности и ошибок беспроводных датчиков
- Использование беспроводных AMS nRF24 контроллеров
Управление двумя санузлами
- Защита от протечек
- Автоматическое перекрытие клапана при протечках воды
- SMS оповещение при аварийных ситуациях с протечками воды
- Управление вентиляцией санузлов
- Автоматический и ручной режимы вентиляции
- Задание задержки отключения вентиляции в веб-интерфейсе
- Задание критической влажности для включения вентиляции в веб-интерфейсе
- Управление освещением санузлов
- Автоматический и ручной режимы работы освещения
- Задание задержки отключения освещения в веб-интерфейсе
Управление зимним садом на балконе
- Определение температуры и влажности на улице
- Поддержание заданной температуры на балконе
- Алгоритм обогрева, учитывающий множество параметров
Работа со временем
- Получение и синхронизация времени через интернет
- Отслеживание временных интервалов
- Отслеживание времени суток
- Отслеживание времени восхода и захода солнца
- Задание часов и минут наступления каждого времени суток в веб-интерфейсе
СМС сообщения и команды
- Интеграция с AMS СМС сервером
- Отсылка информационных и тревожных СМС на мобильный телефон
- Приём управляющих команд от СМС сервера
Сетевая работа
- Интеграция с другими контроллерами сети
- Приём управляющих команд по сети от других контроллеров
- Отсылка управляющих команд другим контроллерам сети
Проектирование системы
В идеале проектирование умного дома выполняется на этапе проектирования здания, в котором он будет установлен. Это объясняется тем, что для нормальной работы системы необходимо задействовать большое количество сигнальных и электрических кабелей
Кроме того, важно грамотно выбрать места для размещения оборудования с учетом того, что ему понадобится вентиляция, и найти места для потайных люков, обеспечивающих доступ к кабельным трассам
Начинают с создания эскизного проекта. В нем нужно подробно описать все функции, которые будет выполнять система. Под каждую задачу подбирается устройство для ее выполнения. Общая совокупность этих приборов составляет периферию умного дома. В нее входят:
- Детекторы. Их основная задача – сбор информации об окружающей среде.
- Исполнительные устройства. Воздействуют на реальные объекты, подчиняясь командам.
- Контроллеры. Анализируют собранную информацию, на основании которой отдают команды приборам-исполнителям.
К системе также относятся сети, передающие команды и собранные данные, а также СХД, где хранятся данные о состоянии исполнительного оборудования и детекторов. К элементам комплекса относят программную систему, обеспечивающую функционирование интеллектуальных приборов и клиентское приложение.
Важный момент в процессе создания проекта – обеспечение нормальной связи между подсистемой управления и подсистемой анализа и исполнения.
Выбранная система связи должна обеспечивать достаточную пропускную способность, выполнять идентификацию активного оборудования и иметь возможность последующей интеграции дополнительно устанавливаемых устройств. Для организации связи можно использовать три метода. Первый – беспроводной протокол. Таким способом можно обустроить два типа сетей: меш-сеть и с фиксированной топологией.
Первый вариант наиболее перспективный. Это одноранговая самонастраивающаяся сеть с большими возможностями. Поддерживается не всеми протоколами. Второй вариант – классическая сеть с ограниченными возможностями, выстраивающаяся вручную. Проводные системы тоже делятся на два типа. В основу первого заложены последовательные протоколы типа 1-wire. Для них требуется специальный кабель. Очень практичный вариант – связь по силовым кабелям. Например, протокол Х10.
Надо признать, что это один из наиболее привлекательных вариантов. Что можно выделить как его несомненное достоинство: широкий ассортимент оборудования и его доступность, относительно невысокая стоимость приборов, наличие большого количества открытого и коммерческого программного обеспечения, которое поддерживает Х10. Все это позволяет смириться с недостатками протокола.
К ним относят медлительность, подверженность помехам и разные протоколы для охранных устройств, детекторов движения, выключателей и диммеров. Определившись со способом связи можно окончательно оформить эскизный проект. Он должен содержать список желаемых функций будущей системы и оборудования, которое должно эти функции выполнять. Здесь же указываем тип связи для создания общей сети.
Разработка проекта
На современном рынке представлено множество устройств Arduino, имеющих различную комплектацию. Но универсального решения «на все случаи жизни» не существует. В зависимости от поставленной задачи каждый комплект подбирается в индивидуальном порядке. Чтобы избежать ошибок, требуется разработка проекта.
Какие проекты можно создавать на Arduino?
Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:
- Сборка кубика Рубика (система справляется за 0,887 с);
- Контроль влажности в подвальном помещении;
- Создание уникальных картин;
- Отправка сообщений;
- Балансирующий робот на двух колесах;
- Анализатор спектра звука;
- Лампа оригами с емкостным сенсором;
- Рука-робот, управляемая с помощью Ардуино;
- Написание букв в воздухе;
- Управление фотовспышкой и многое другое.
Составление проекта для умного дома
Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.
Такое здание состоит из пяти основных зон — прихожей, крыльца, кухни, санузла, а также комнаты для проживания.
При составлении проекта стоит учесть следующее:
- КРЫЛЬЦО. Включение света производится в двух случая — приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
- САНУЗЕЛ. В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
- ПРИХОЖАЯ. Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
- КОМНАТА. Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
- КУХНЯ. Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.
Отопительные устройства выполняют задачу поддержания необходимой температуры в помещении. Если в доме отсутствуют люди, нижний предел температуры падает до определенного уровня.
После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса — не более 10 минут в час.
Стоит обратить внимание, что если в доме планируется установка умных розеток, то для управления ими лучше использовать приложения на мобильных устройствах, WIFI или через SMS сообщения. Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/. Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/
Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/.
Расширение возможности на Ардуино
Одной из возможностей умного дома является визуализация состояния автоматики и проходящих в системе процессов. Для этого рекомендуется применять отдельный сервер, обеспечивающий обработку состояний (может применяться программа Node.js).
Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.
Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.
При желании можно задать алгоритм, который будет фиксировать факт нахождения человека в доме, и собирать эту информацию. Если владелец ежедневно возвращается где-то к 17.30, за час может быть включен бойлер или отопительные устройства. По приходу домой человек попадает в теплое здание с горячей водой.
Программа может запомнить время, когда владелец ложится отдыхать и отключать нагрев воды. Таких нюансов, которые при необходимости вносятся в программу, множество. Именно наличие внешнего ПК дает большие возможности контроллеру на Ардуино.
Голос
Speech-to-text
Система умеет говорить и понимает, что ты ей говоришь. Нажимаешь кнопочку, говоришь фразу, и она конвертирует ее в текст. Преобразование голоса в текст — дико сложная задача. Гугл умеет это делать, но за деньги. А первое правило DIY-проекта — никаких абонентских плат. Как оказалось, в последних версиях хрома есть встроенный инструмент «Распознавание голоса». Единственный нюанс в том, что соединение должно быть либо https, либо localhost. Умный дом — как раз такая система: клиент и сервер находятся на одной машине, так что удалось подключиться по localhost.
Реакция на команды
Второй сервис называется dialogflow. Фишка в том, что ты задаешь шаблон фразы, например: «Какая погода завтра?» и указываешь, что слово «завтра» — это переменная типа date. И теперь уже ты можешь задать любой вопрос: «Какая погода 20 сентября?», «Какая погода послезавтра?», «Какая погода через 3 дня?» и система понимает, что это тип данных — date, конвертирует его в программную дату и реагирует на нее. Вся эта тема — на нейросетях, и она обучаема. Если ты сказал «Какая будет погодка сегодня?» и система не поняла, она говорит «Я не поняла», и ты заходишь на сервер и прям руками обучаешь ее, что вот эта фраза означает «Какая погода?», и она запоминает. Обучение нейросети происходит по доступу: при регистрации на сервисе выдаются ключи доступа к api, доступ к личному кабинету агента, можно этого агента обучать и можно дать право кому-то на его использование.
В dialogflow есть еще одна классная тема — микродиалоги. Задаешь вопрос, например, «Как твои дела?» и задаешь паттерны ответов на него: «Пока не родила», «Все в шоколаде, даже дисплей», «У нас делишки, а дела у прокурора», «Ой, всё» — и система каждый раз будет рандомно выбирать из этих вариантов ответ на этот вопрос.
Получается, сервис передает в Умный дом сам триггер, который должен быть выполнен и возможную фразу для ответа, Дом ловит эту фразу и дальше задача наоборот: tts, то есть text to speech.
Text-to-speech
Это хорошо умеет делать Яндекс. Там можно выбрать не только голос (нескольких вариантов женских и мужских голосов), но и настроение (веселый, грустный, злой, нейтральный). У Яндекса очень простое и условно бесплатное api (с лимитом что-то около 10 тыс преобразований в день).
Таким образом получился цикл: произносишь фразу, система ее понимает, произносит что-то в ответ и совершает какое-то действие. Так, например, работает установка будильника голосом. Говоришь: «Поставь будильник на вторник на 7 часов». И во вторник в 7 тебя разбудит Умный дом.
Особенности взаимодействия модулей через порты
Все модули, которые будут подключены к плате, имеют как минимум три выхода. Два из них – провода питания, т.е. “земля”, а также напряжение 5 или 3.3 В. Третий провод является логическим. По нему идет передача данных к порту. Для подключения модулей используют специальные сгруппированные по 3 штуки провода, которые иногда называют джамперами.
Так как на моделях Arduino обычно всего 1 порт с напряжением и 1-2 порта с “землей”, то для того, чтобы подключить несколько устройств нужно будет либо спаивать провода, либо использовать макетные платы (breadboard).
К макетной плате можно подключать не только питание и порты платы Arduino, но и другие элементы, такие как, например, сопротивление, регистры и т.д.
Пайка более надежна и применяется в устройствах, которые подвержены физическому воздействию, например, платы управления роботами и квадрокоптерами. Для умного дома лучше использовать макетные платы, так как это проще и при установке, и при удалении модуля.
У некоторых моделей (например, Arduino Zero и MKR1000) рабочее напряжение составляет 3.3 В, поэтому если на порты подать большее значения, то возможно повреждение платы. Вся информация по питанию доступна в технической документации к устройству.
Стартовый набор Arduino
Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:
Базовый набор ардуино для начинающих: |
Большой набор для обучения и первых проектов: |
Набор дополнительных датчиков и модулей: |
Ардуино Уно самая базовая и удобная модель из линейки: |
Беспаечная макетная плата для удобного обучения и прототипирования: |
Набор проводов с удобными коннекторами: |
Комплект светодиодов: |
Комплект резисторов: |
Кнопки: |
Потенциометры: |
Принцип работы системы
Устройство Arduino работает следующим образом. Информация, собранная с различных датчиков в доме, направляется по беспроводной сети на планшет или ПК. Далее с помощью специального софта производится обработка данных и выполнение определенной команды.
Главную функцию выполняет центральный датчик, который можно приобрести или собрать самостоятельно. Разъемы на платах являются стандартными, что значительно упрощает выбор комплектующих.
Питание
Питание Arduino производится через USB разъем или от внешнего питающего устройства. Источник напряжения определяется в автоматическом режиме.
Если выбран вариант с внешним питанием не через USB, можно подключать АКБ или блок питания (преобразователь напряжения). В последнем случае подключение производится с помощью 2,1-миллиметровго разъема с «+» на главном контакте.
Провода от АКБ подключаются к различным выводам питающего разъема — Vin и Gnd.
Для нормальной работы платформа нуждается в напряжении от 6 до 20 Вольт. Если параметр падает ниже 7 вольт, на выводе 5V может оказаться меньшее напряжение и появляется риск сбоя.
Если подавать 12 В, возможен перегрев регулятора напряжения и повреждения платы. По этой причине оптимальным уровнем является питание с помощью 7 — 12 В.
В отличие от прошлых типов плат, Arduino Mega 2560 работает без применения USB-микроконтроллера типа FTDI. Для обеспечения обмена информацией по USB применяется запрограммированный под конвертер USB-to-serial конвертер.
ПОПУЛЯРНО У ЧИТАТЕЛЕЙ: Что такое умный дом CLAP.
На Ардуино предусмотрены следующие питающие выводы:
- 5V — используется для подачи напряжения на микроконтроллер, а также другие элементы печатной платы. Источник питания является регулируемым. Напряжение подается через USB-разъем или от вывода VIN, а также от иного источника питания 5 Вольт с возможностью регулирования.
- VIN — применяется для подачи напряжения с внешнего источника. Вывод необходим, когда нет возможности подать напряжение через USB-разъем или другой внешний источник. При подаче напряжения на 2,1-миллиметровй разъем применяется этот вход.
- 3V3 — вывод, напряжение на котором является следствием работы самой микросхемы FTDI. Предельный уровень потребляемого тока для этого элемента составляет 50 мА.
- GND — заземляющие выводы.
Принципиальную схему платы в pdf формате можно посмотреть ЗДЕСЬ.
Связь
Возможности Arduino позволяют подключить группу устройств, обеспечивающих стабильную связь с ПК, а также другими элементами системы — микроконтроллерами или такими же платами Ардуино.
Модель ATmega 2560 отличается наличием 4 портов, через которые можно передавать данные для TTL и UART. Специальная микросхема ATmega 8U2 на плате передает интерфейс (один из них) через USB-разъем. В свою очередь, программы на ПК получают виртуальный COM.
- Если на ПК установлен Linux, распознавание происходит в автоматическом режиме.
- Если стоит Windows, потребуется дополнительный файл .inf.
С помощью утилиты мониторинга обеспечивается отправление и получение информации в текстовом формате после подключения к системе.
Мигание светодиодов TX и RX свидетельствует о передаче данных. Для последовательной отправки информации применяется специальная библиотека Software Serial.
К особенностям ATmega 2560 стоит отнести наличие интерфейсов SPI и I2C. Кроме того, в состав Ардуино входит библиотека Wire.
Сборка «умного дома»: пошаговая инструкция
Вот в какой последовательности необходимо действовать.
Подключение исполнительных и сенсорных устройств
Подключаем все компоненты согласно схеме.
Сборка системы в основном сводится к подключению исполнительных устройств к соответствующим контактам процессорной платы
Разработка программного кода
Пользователь пишет всю программу целиком в оболочке Arduino IDE, для чего последняя оснащена текстовым редактором, менеджером проектов, компилятором, препроцессором и средствами для заливки программного кода в микропроцессор платы Arduino. Разработаны версии IDE для операционных систем Mac OS X, Windows и Linux. Язык программирования — С++ с некоторыми упрощениями. Пользовательские программы для Arduino принято называть скетчами (sketch) или набросками, программа IDE сохраняет их в файлы с расширением «.ino».
Функцию main(), которая в С++ является обязательной, оболочка IDE создаёт автоматически, прописывая в ней ряд стандартных действий. Пользователь должен написать функции setup() (выполняется единоразово во время старта) и loop() (выполняется в бесконечном цикле). Обе эти функции для Arduino являются обязательными.
Заголовочные файлы стандартных библиотек вставлять в программу не нужно — IDE делает это автоматически. К пользовательским библиотекам это не относится — они должны быть указаны.
В IDE предусмотрен минимум настроек, а возможность настройки компилятора отсутствует вовсе. Таким образом, начинающий программист застрахован от ошибок.
Вот пример самой простой программы, заставляющей каждые 2 секунды мигать подключённый к 13-му выводу платы светодиод:
Однако в настоящий момент перед пользователем далеко не всегда встаёт необходимость лично писать программу: в сети выложено множество готовых библиотек и скетчей (загляните сюда: http://arduino.ru/Reference). Имеется готовая программа и для системы, рассматриваемой в этом примере. Её нужно загрузить, распаковать и импортировать в IDE. Текст программы снабжён комментариями, поясняющими принцип её работы.
Все программы на Arduino работают по одному принципу: пользователь посылает запрос процессору, а тот загружает необходимый код на экран компьютера или смартфона
Когда пользователь нажимает в браузере или установленном на смартфоне приложении кнопку «Refresh» (Обновление), микроконтроллер Arduino осуществляет отсылку данных этому клиенту. С каждой из страниц, обозначенных как «/tempin», «/tempout», «/rain», «/window», «/alarm», поступает программный код, который и отображается на экране.
Установка клиентского приложения на смартфон (для ОС Android)
Для получения данных от системы «умный дом» в сети можно скачать готовое приложение.
Вот что необходимо сделать владельцу гаджета:
- Скачайте файл SmartHome.apk.
- Отправьте его на телефон.
- Открыв «Менеджер файлов», разместите этот файл.
- Щёлкните на нём и выберите «Установить» (должна быть отмечена «галочка», позволяющая осуществлять установку программ вне сервиса Google Play).
- Когда установка будет завершена, активируйте приложение.
- Выполните его настройку.
С помощью этого приложения можно не только получать информацию от системы «умный дом», но и управлять ею — включать и отключать сигнализацию. Если она включена, то при срабатывании датчика движения приложению будет отправлено уведомление. Опрос системы Arduino на предмет срабатывания датчика движения приложение выполняет с периодичностью раз в минуту.
Активировав иконку «Настройки», можно отредактировать свой IP-адрес.
Настройка браузера на работу с «умным домом»
В адресной строке браузера следует ввести XXX.XXX.XXX.XXX/all, где «XXX.XXX.XXX.XXX» — ваш IP-адрес. После этого появится возможность получать данные от системы и осуществлять управление ею.
Представленный здесь программный код позволяет через браузер включать и выключать свет, тогда как в приложении для Android-смартфона такая функция не реализована.
Работа с роутером
Далее на маршрутизаторе необходимо открыть порт:
- открываем настройки маршрутизатора;
- прописываем адрес Arduino IP;
- открываем порт 80.
Настройка учётной записи на noip.com
Этот этап не является обязательным, но он необходим, если вы хотите присвоить адресу доменное имя. Для этого надо зарегистрироваться на сайте https://www.noip.com/, перейти в раздел «Add host» и ввести IP-адрес системы.
После регистрации на сайте noip.com доступ к системе можно получать не только по IP-адресу, но и по полному доменному имени
Создание проекта завершено, можно проверять работоспособность системы.
Чего бы хотелось
Наибольшее желание любого огородника — получать максимальный урожай при минимальных затратах труда. Одним из вариантов решения этой проблемы становятся теплицы. Но и в таком случае хочется, чтобы в ней самостоятельно грядки поливались, освещались, и обогревались, когда нужно. Ну и конечно, была организована автоматическая система вентиляции, для минимизации усилий по открыванию и закрыванию форточек.
Мониторинг и настройка
Конечно, в первую очередь, требуется система управления всем этим высокоинтеллектуальным хозяйством. Кроме того, желательно получение информации о текущем состоянии напрямую или на домашний компьютер, или на смартфон. С этой целью будет использоваться контроллер для теплицы на Arduino.
Управление
В соответствии с желаниями, необходимо организовать автоматическое управление отоплением пола (как основы подогрева посадок), открытия форточек, увлажнением почвы. Хороша будет система контроля освещения, которая зажигает его, если на улице темно.
Устройства
После поисков был найден микроконтроллер ESP8266. Он программируется легко как Arduino. У него есть Wi-Fi на борту. Цена начинается от 80 рублей за штуку. В общем соответствует требованиям полностью. Я бы взял Arduino, но у него, к сожалению, нет на борту Wi-Fi. Единственное что смущает это энергопотребление. Но такого требования как батарейки у меня нет. Пока нет.
Контроллер ESP8266 оказался таким дешевым, что можно на каждый датчик или исполнительное устройство ставить по такому контроллеру. Можно ли так делать или нет я пока не знаю. Это я буду проверять уже на практике. Физических препятствий этому нету.
Самый дешевый вариант ESP8266, называется ESP01
Так как ESP8266 является весьма мощным контроллером, то к нему можно подсоединять несколько датчиков и исполнительных устройств. Поэтому можно сделать гибридную сеть (Wi-Fi + провода). Несколько ESP8266 соединяются с сервером по Wi-Fi. А на каждой ESP8266 могут быть несколько устройств, подсоединенными по 1-Wire или I2C. Например, сеть температурных датчиков.
ESP8266 можно программировать самостоятельно. Как Arduino. Я так и хотел сначала сделать, но нашел такое явление как готовые и универсальные прошивки для ESP8266. Их довольно много. Я выбрал под свои требования ESP Easy. Ее возможностей хватает для всего что мне нужно.
Расширение возможности на Ардуино
Одной из возможностей умного дома является визуализация состояния автоматики и проходящих в системе процессов. Для этого рекомендуется применять отдельный сервер, обеспечивающий обработку состояний (может применяться программа Node.js).
Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.
Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.
При желании можно задать алгоритм, который будет фиксировать факт нахождения человека в доме, и собирать эту информацию. Если владелец ежедневно возвращается где-то к 17.30, за час может быть включен бойлер или отопительные устройства. По приходу домой человек попадает в теплое здание с горячей водой.
Программа может запомнить время, когда владелец ложится отдыхать и отключать нагрев воды. Таких нюансов, которые при необходимости вносятся в программу, множество. Именно наличие внешнего ПК дает большие возможности контроллеру на Ардуино.
Итоговый результат
Если код вы записали правильно, с правильным паролем и именем от вашего wifi, который исправно работает, то в монитор порта будет отправлена ссылка, которую необходимо вставить в адресную строку браузера. Изображение должно выглядеть так
А теперь вы можете подключить ардуино к источнику питания и убрать провод подключения ардуино — компьютер. И узнавать температуру в вашем доме, находясь на другом конце города. Все зависит только от вашей фантазии.
В следующий раз попробуем разобрать еще один проект, который поможет больше раскрыть все возможности интернет модуля. В дальнейшем попробуем создать свой сервер и сайт, а также поговорим о соединении с соцсетями. Увеличить возможности сделать ваш дом умным.