Умная компьютерная розетка на arduino своими руками
Содержание:
Как это сделать?
Следует понять, что «умный» дом – это просто набор контролеров с подключенными датчиками, которые считывают информацию и на ее основе выполняют какие-то конкретные команды. Например, контролер обогрева. При фиксировании его датчиком падения температуры ниже определенного уровня, он включит подачу тепла в комнату. На таком принципе работают автоматические кондиционеры. А в «умном» доме такие контролеры с датчиками стоят везде, что и позволяет охватить контролем максимальное количество задач. Естественно, чтобы сделать свой «умный» дом, вы сначала разработаете у себя в голове небольшой проект, учтя в нем, какие именно сферы своего быта вы хотели бы усовершенствовать и что вам для этого нужно.
Итак, чтобы сделать свой дом более самостоятельным, вам потребуются контролеры, которыми вы смогли воспользоваться. Дело в том, что их мало купить – нужно еще их запрограммировать, подключить внешние источники информации и настроить на нужную работу. Здесь возникает проблема недостатка знаний в конкретной области, потому что многие подобные устройства достаточно сложны в эксплуатации и работать с ними может не так уж и много людей. Но при появлении спроса (кому бы не хотелось своими руками собрать работающее электронное устройство?) появляется и соответствующее предложение. Одна компания является на данный момент практически самым популярным поставщиком удобных в использовании и простых для понимания электронных устройств. Это компания Arduino (ардуино).
Прежде чем начать рассмотрение этой системы, нужно принять во внимание то, что универсального проекта «умного» дома для этой системы нет. Каждый пользователь делает свой особенный проект, который по-своему и реализует, используя свои уникальные технические решения. Это одно из достоинств системы, которую мы рассмотрим ниже
Это одно из достоинств системы, которую мы рассмотрим ниже.
Этапы создания
Следует сказать, что этапы создания системы «умного дома» с привлечением специалистов или же своими руками будут одинаковыми. Правда, в последнем случае готовый вариант в целом обойдется существенно дешевле, чем если привлекать специалистов, которых на рынке и так не хватает. По этой причине зарплаты у них будут соответствующими, а значит, если вы не хотите тратить лишние средства, то можно обойтись собственными силами. Итак, начнем с комплектующих для этой системы, если вы решили все-таки создавать ее самостоятельно.
Комплектация
Если говорить о комплектации системы, то технология будет включать в себя следующий набор компонентов:
- датчик движения;
- датчик температуры и влажности;
- датчик освещенности;
- пара температурных датчиков с маркировкой DS18B20;
- Ethernet-модуль марки ENC28J60;
- микрофон;
- переключатель язычкового типа;
- реле;
- кабель типа «витая пара»;
- кабель категории Ethernet;
- резистор, имеющий сопротивление 4,7 килоома;
- микропроцессорная плата Arduino.
Алгоритм подключения
Следует сказать, что умный дом должен быть оснащен исключительно светодиодными лампочками, так как обычные варианты просто могут не выдержать большого напряжения. Когда проект будет готов, а все нужные запчасти уже приобретены, следует начать подключение датчиков и контроллеров. Делать это необходимо исключительно по схеме, созданной ранее. Контакты необходимо полностью заизолировать.
Если говорить кратко, то поэтапно алгоритм подключения будет выглядеть таким образом:
- установка кода;
- настройка приложения для ПК или мобильного;
- портовая переадресация;
- осуществление тестирования ПО и датчиков;
- устранение неисправностей, если они были выявлены при тестировании.
Итак, начнем с установки кода.
Сначала пользователю следует написать ПО в Arduino IDE. В нем представлены:
- текстовый редактор;
- создатель проектов;
- программа для компиляции;
- препроцессор;
- инструмент для загрузки ПО в мини-процессор Arduino.
Следует сказать, что существуют версии ПО для основных компьютерных ОС – Windows, Linux, Mac OS X. Если говорить об используемом языке программирования, то речь идет о C++ с рядом упрощений. Программы, написанные пользователями для Arduino, обычно называют скетчами. Ряд функций система создает автоматически и пользователю не нужно разбираться в их написании, прописывая список обычных действий. Также нет необходимости вносить файлы заголовочного типа обычных библиотек. Но пользовательские вставлять необходимо.
Добавлять библиотеки в проектный IDE-менеджер можно различными методами. В виде исходников, прописанных на С++, идет добавление в отдельную директорию на рабочей директории IDE-оболочки. Теперь имена необходимых библиотек появляются в определенном IDE-меню. Те, что вы отметите, войдут в компиляционный список. В IDE существует малое количество настроек, а задавать тонкости компилятора вообще нет возможности. Это сделано для того, чтобы несведущий человек не натворил каких-либо ошибок.
Если вы скачали библиотеку, то ее необходимо распаковать и просто вставить в IDE. В программном тексте есть комментарии, которые поясняют принцип ее работы. Следует отметить, что все приложения на Arduino работают по одной технологии: пользователь шлет запрос на процессор, а он, в свою очередь, осуществляет загрузку нужного кода на экран устройства. Когда человек нажимает клавишу Refresh, то микроконтроллер отсылает информацию. С каждой из страниц с определенным обозначением идет программный код, что будет отображаться на экране.
Следующий комплекс действий заключается в установке клиента на персональный компьютер или смартфон. Скачать его можно в интернете, в Google Play Market или из другого источника. Для того чтобы сделать это, необходимо открыть файл на телефоне, который вы скачали, после чего щелкнуть по нему и в появившемся окне нажать на клавишу «Установить». При этом следует знать, что для этого должна быть активирована опция, позволяющая осуществлять установку программ не из сервиса Google Play. Чтобы включить эту опцию, необходимо войти в раздел настроек и выбрать там пункт «Безопасность». Именно так и необходимо активировать соответствующую опцию. Когда установка завершится, то можно будет осуществить активацию приложения и настроить его.
Визуализация «умного дома» и расширение возможностей на Ардуино
Безусловно, для визуализации процессов «умного» дома можно было бы использовать ЖК-дисплей, любые цифровые табло. Но всё-таки, для «умного» дома это не является хорошим решением.
Для визуализации процессов и состояний автоматики на платформе Arduino лучше всего использовать отдельный сервер обработки состояний. Этот сервер может быть реализован на программной технологии Node.js, позволяющей реализовать любой сервер, в том числе и для обработки состояний платы Arduino.
Node.js используется для решения задач Интернета вещей, поэтому для визуализации автоматики «умного» дома он точно подойдёт. Достаточно создать сервер и обработчик на языке JavaScript, и можно будет отображать результат в браузере компьютера или планшета.
Микрокомпьютер одноплатный Raspberry Pi
В качестве «железа» сервера можно использовать микрокомпьютер Raspberry Pi или обычный стационарный компьютер или ноутбук. При этом расширяются возможности самой системы автоматизации.
Если на плате Arduino ограниченный объём физической памяти, то на сервере этот объём ничем не ограничен. Саму программу сервера можно написать так, что она будет полностью управлять платформой Arduino.
Например, можно расширить функционал нашего «умного» дома и приблизить его к умному дому без кавычек. Есть возможность написать такой алгоритм, который будет вести статистику нахождения хозяина в доме и его возвращение домой. Если хозяин обычно возвращается домой в районе 17:30, то за час можно включить бойлер для нагрева воды. Также, ориентируясь на это время, можно заранее включить отопительные приборы, чтобы возвращение было уже в тёплый дом, а не в тот, где температура ниже на 10 градусов из-за экономии электричества в отсутствии хозяев. Программа может понять когда хозяева обычно ложатся спать и заранее переставать греть воду, так как ею уже никто не будет пользоваться до утра. И таких нюансов может быть множество. Именно внешний компьютер может дать продвинутые «мозги» контроллеру на Arduino, который превратится больше в исполнительный механизм.
Почему именно Arduino?
Возникает логичный вопрос: все подобные системы возможно приобрести и так и заказать их установку профессионалам, которые помимо установки смогут и красиво оформить подобные системы (например, спрятать те же самые провода). Зачем же делать их самому с помощью Arduino? Ответ прост – дело в цене и удобстве. Как правило, фирмы, которые профессионально занимаются установкой таких систем делают весьма и весьма значительную накрутку как цену комплектующих и самих подобных устройств, так и на стоимость их установки.
Конечно, они сделают все за вас и это будет достаточно быстро, но вы, во-первых, потеряете возможность что-то изменить на свой вкус, а вкупе с этим и что-то отремонтировать при какой-то поломке (так как используют эти фирмы другие системы, которые далеко не так хорошо и удобно стандартизированы и унифицированы и далеко не так просты в использовании). Плата же Arduino и комплектующие к ней, а также необходимы дополнительные детали обойдутся вам гораздо дешевле и учитывая то, что вам обязательно придется просто понять, как это работает в случае необходимости вы сможете устранить поломку и заменить нужную деталь и подстроить систему под себя.
Выход в интернет
Чтобы связать наши проекты с интернетом можно использовать 10-ки способов, но мы пока остановимся на модуле, о котором я еще говорил еще в самой первой статье, ESP 8266. Arduno UNO не может работать с интернетом. Обычная плата без дополнений и модулей не может передавать информацию на расстоянии.
Но с помощью UART интерфейса на Arduino мы можем получать информацию, обрабатывать ее и отправлять данные обратно. С помощью него, UNO может работать с Bluetooth и Wi-fi модулями, которые уже и дают нашей системе дополнительные функции.
Давайте поговорим об интернете поподробнее. Я думаю, вы знаете, что интернет — это не магия и не просто радиоволны, а гигантская сеть между тысячами различных устройств с помощью беспроводной связи.
Сайты, с которыми мы каждый день сталкиваемся — это информация, переданная нам с сервера. Весь тот текст, картинки, анимация — все это хранится на сервере, пока клиент, мы, не захочет, чтобы ему передали эту информацию.
Вы можете узнать, что такое IP, TCP, HTTP, GET — запрос в интернете, если вам в дальнейшем будет не понятно.
Но это все не будет работать без связи нашей платы с сайтами и приложениями. Есть два решения, подключится к другому сайту (серверу), который будет обрабатывать информацию полученную либо от самой платы, либо от пользователя, чтобы управлять приборами на расстоянии или создать свой сервер, где будет лежать лично наш написанный сайт. Мы все это попробуем сделать в будущем.
Описание контроллера Arduino
Программная составляющая контроллера Arduino состоит из бесплатно распространяемой оболочки, обладающей простым, понятным на интуитивном уровне интерфейсом IDE. Программирование на ней можно осуществлять с платформ Windows, Linux и MacOSX. В оболочке уже имеется весь набор для загрузки программ сразу в контроллер, поэтому при работе с ней не требуется специальный программатор.
Для загрузки достаточно соединить плату Arduino с ПК или ноутбуком через USB-порт, после чего произвести загрузку нужной программы на устройство. При желании можно прошить загрузчик и самостоятельно: оболочка IDE позволяет поддерживать многие недорогие программаторы. Подсоединить их можно через штыревые выходы, специально предназначенные для внутреннего программирования:
- AVR через разъём ICSP
- ARM через JTAG.
Аппаратная составляющая платформы монтируется из печатных плат, выпускающихся как официальным обладателем товарного знака, так и многими другими производителями. На сегодня в продаже насчитывается свыше 20 разновидностей плат-контроллеров, которые могут сопрягаться между собой специальными разъёмами в виде своеобразного сэндвича. Большинство современных устройств типа Arduino используют следующие контроллеры:
- Atmel-AVR.
- ATmega-328.
- ATmega-168.
- ATmega-2560.
- ATmega-32U4.
- ATTiny-85.
Перечисленные микроконтроллеры работают на частоте 8 или 16 мегагерц. К плате контроллера возможно подключение различных электронных компонентов – датчиков, светодиодных осветителей, передающих устройств и т.д. Благодаря этому, Arduino удобно использовать для самостоятельного проектирования и сборки системы «умный дом».
Контроль и управление климатической системой
Владелец может совершать обогрев помещения, а также очистку, увлажнение и вентиляцию воздуха. Допустим, к моменту своего прихода прогреть помещение до определенного температурного режима.
Основные достоинства данной функции:
- Отопление, или охлаждение температуры в помещении осуществляется одной общей системой.
- Возможность регулировки любых температурных режимов в помещении, в соответствии с погодными условиями климата.
- Каждое отдельное устройство имеет свои специальные датчики, которые регулируют работу того или иного механизма, и позволяет контролировать внутренний климат в помещении.