Arduino mega 2560 умный дом. Умный дом на Аrduino своими руками

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

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

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

В реальности все, конечно, не так волшебно и красочно. Нынешние машины и компьютеры ещё не достигли такого уровня развития. Поэтому функции современного «умного» дома ограничены. К примеру, датчики могут контролировать:

  • Включение-выключение света.
  • Расход энергии.
  • Температуру.
  • Влажность в доме.

Профессиональных компаний, которые занимаются строительством и обустройством «умных» домов, очень мало. К тому же их слуги довольно дорогие и по карману только узкому кругу потребителей. Но, это вовсе не повод отказывать себе в обустройстве комфортной жизни в собственном доме. Ведь можно сделать «умный дом» своими руками.

Технология сборки

«Умный дом» - это всего лишь контроллеры с датчиками , основной целью которых является считывание информации и, исходя из этого, выполнение соответствующих команд. К примеру, контроль температуры в помещении. Если в комнате температура падает ниже ранее установленного уровня, то система автоматически включает обогрев комнаты. Это только один из примеров функций «умного дома». Подобные контрольные датчики установлены по всему дому и выполняют самые разнообразные функции.

Итак, как сделать свой дом «умным»? Что для этого нужно? Для начала нужно заняться закупкой необходимых контроллеров , которые будет необходимо запрограммировать и наладить. На первый взгляд все достаточно просто, но на самом деле могут возникнуть проблемы с эксплуатацией самой системы, для сборки и управления которой необходимы определённые знания. Поэтому компания Arduino постаралась максимально упростить свою систему, с которой может справиться даже ребёнок.

Что такое система Arduino ?

Система компании Arduino – это платформа для разработки собственных программ комфорта. Система легка в управлении и редко даёт сбои или выходит из строя. Система Arduino имеет открытый исходный код и возможность подключения при помощи USB-кабеля. Изначально система имеет набор программ, установленных по умолчанию, но благодаря открытому типу исходного кода, можно инсталлировать собственные разработки.

Принцип работы Arduino

Как же работает система Arduino? Очень просто. Установленные по всему дому или квартире датчики считывают информацию об окружающей среде и передают все данные на компьютер , который самостоятельно принимает решения. Функционировать эта система может на компьютере, ноутбуке, планшете или даже телефоне. Все программы для ардуино можно найти в свободном доступе. Все «железо» производитель делает максимально стандартизированным под системные разъёмы.

Функции системы Arduino

Система ардуино для проекта «умного дома» должна выполнять следующие функции:

Несмотря на набор разнообразных функций, существуют несколько важных причин , отталкиваясь от которых потребители отдают своё предпочтение именно Arduino.

Преимущества

  • Цена.
  • Качество.
  • Удобство.
  • Простота монтажа и проекта в целом.
  • Низкая стоимость в случае поломки или выхода из строя отдельных комплектующих.
  • Доступность программного обеспечения.

И вновь привет, Хаброжители! Ежедневно читая Хабр, я не раз наталкивался на статьи об Arduino и DIY проектах на его основе. Стоит заметить, что с электроникой я дел не имел, а весь мой опыт заключался в посещении радиокружка на базе подросткового клуба «Огонёк» (г. Петрозаводск). Однажды я собрался и решил сделать на Arduino браслет с сенсорами (температура, давление, пульс) для смартфона (связь по BT) Но сделав ошибку при заказе, я получил лишь сам Arduino и датчик давления. Чтобы протестировать плату я отправился в ближайший магазин радиодеталей за светодиодами, и там на глаза мне попался магнитный датчик закрытия двери. Он натолкнул меня на мысль, что можно было бы немного усовершенствовать жизнь в комнате (не путать с квартирой). Не тратя время, я оформил на Ali заказ с кучей сенсоров и Arduino Mega.

После заказа джентльменского набора сенсоров (температура, влажность, реле, StarterKit, BT, часы, дальнометр, IR датчик) я решил поискать как другие представляют умный дом. Большинство ограничивалось: управлением люстрами и тёплыми полами, хотя были и реально крутые статьи . Часть функций, обыденных для квартир, в комнате были просто лишними: например, датчик утечки газа или протечки. Я решил сам составить функционал, необходимый в умной комнате:

  • Управление светом
  • Контроль температуры
  • Управление множеством способов
  • Управление дверью
  • Мониторинг температуры
  • Мониторинг погоды

Оказалось, что все необходимые сенсоры уже заказаны и остаётся только ждать. И вот все сенсоры пришли!

Первый шаг

Когда ты уже помигал светодиодами и решил собрать умный дом, логичным шагом было бы помигать светом в комнате, но ранняя жара заставила заняться контролем температуры. Для начала я просто попытался подключить dht11 из StarterKita. Что может быть проще, если в интернете полно инструкций? Как оказалось, для подключения dht11 есть множество библиотек и не все они совместимы с последними версиями IDE, но спустя пару часов я любовался температурой выведенной в консоль, а ещё через пару минут светодиодом, мигающим в зависимости от неё. (Отключить датчик, положить в холодильник, достать из холодильника, подключить...)

Первой же проблемой стала низкая точность выбранного dht11: он врал на 2-3 градуса в обе стороны - пришлось его заменить (после этого я стараюсь заказывать датчики в нескольких вариантах).

Затем я отправился в LeroyMerlin и приобрёл там самый простой вентилятор . После нескольких минут возни с проводами и вилкой вентилятор был собран. Вместе с соседом сняли форточку и установили его (вентилятор, не соседа) на освободившееся место. Мы воткнули вилку в розетку и… Вентилятор начал вращаться. Медленно. Очень медленно.
Стоит ли говорить, что мы неправильно установили вилку, а вентилятор вращался от ветра?


Конечно, доступно ручное отключение тока. Но как же лучше управлять вентилятором через реле? Подключить напрямую к вентилятору? Я решил подключить вентилятор к реле через розетку: это придаёт гибкость системе (можно заменить вентилятор на что-либо другое).

Тестирование вентиляции

И вот код переписан со светодиода на реле. Прошивка загружена, я мониторю температуру в ожидании необходимой для старта - и вот он тот момент! Реле щёлкает, а COM-порт пропадает. Видимо, в момент переключения нагрузка на USB увеличивается и идёт помеха данным. Сначала я думал, что это из-за помех от 220В проводов, но они находятся на достаточном расстоянии от платы. В последствии это доставило мне немало проблем: при попытки залить новый скетч, Arduino уходит в ребут, переключает реле и тем самым выносит COM-порт, а, значит, и процесс обновления. Я так и не смог побороть эту проблему.

Управление с пульта

Конечно, постоянная работа вентилятора вскоре наскучила, а выключать его через выключатель было не круто! Поэтому я достал Starter Kit и пульт ДУ оттуда. Собственно с этого момента и начались проблемы: я понятия не имел, как выглядит приёмник. Но несколько минут гугления помогли мне найти его, а ещё через час я уже весело управлял вентилятором с пульта.

Сначала это был сложный алгоритм с несколькими флагами, но в итоге я пришёл к небольшому

алгоритму с таймером

Если (пришёл сигнал){
время_ручного_управления = 1800;
режим_вентилятора =! режим_вентилятора;
}
Если (время_ручного_управления!= 0){
время_ручного_управления--;
}иначе{
Если(температура < 26){
режим_вентилятора = false;
}иначе{
режим_вентилятора = true;
}
}


Но и тут без проблем не обошлось: обновляя провода, я подал 5V на DATA и очень быстро лишился приёмника. Это и подтолкнуло меня к следующему шагу…

Управление через BT модуль

Вскоре я подключил BT модуль HC-06, перенаправил вывод туда и добавил считывание команд. Думал, что будет намного сложнее, но спасибо статье с robocraft.

Получилось



Сосед и вентилятор

Я думал, что научив соседа управлять системой со смартфона, я решу проблему «Эй, мне холодно», но… Если отключение питания вентилятора через выключатель я мог стерпеть, но закрытие форточки меня просто выводило из себя. Почему? Вентилятор дул в стекло на расстоянии нескольких сантиметров и жутко гудел. К счастью, у меня завалялись магнитные датчики, которые и побудили меня на создание системы. Замкнутый датчик сигнализирует Arduino о том, что вентилятор нельзя включать. Увы, иногда шли помехи, поэтому пришлось сделать простейшую проверку: если сигнал о закрытии приходит несколько раз подряд - форточка действительно закрыта.


Управление светом

Теперь можно было взяться за управление светом. После вентилятора уже ничего сложного: короб, пара клеммников - и свет уже управляется через Arduino (конечно, с возможностью отключения через старый выключатель). Единственное, что волнует это то, что реле являются не лучшим способом для управления лампочками .

Проблемы со звуком

Ну какое же управление светом без хлопков? Мной был заказан микрофон. Так я думал… Помните про неопытность? На самом деле я заказал детектор звука с ручной настройкой порога. Вроде бы годится для моей цели? Но появилась пара «но»:
  • Маленький радиус действия: хлопки обрабатываются только с десятка сантиметров
  • Малая длительность подачи сигнала: при большом времени исполнении кода сигнал с датчика просто не успевал зафиксироваться Arduino

Возвращение пульта

Небольшое гугление, поход в магазин - и вместо сгоревшего VS1838B я приобрёл более надёжный TSOP1836. В этот раз установка прошла успешно и всё заработало сразу.


Выход на улицу

С окном разобрался, но что за ним? Вооружившись паяльником, я припаял к пятиметровому VGA кабелю датчик дождя и ещё один dht11. Немного U-образных крепежей, чёрной изоленты, мха и система выходит на боевое дежурство.


А ещё я узнал, что можно выводить русский текст.

Стало



Немного удобства

Кажется, что смартфон всегда под рукой, но пока найдёшь, пока подключишь… Иногда быстрее отключить свет или вентилятор через выключатель, но это лишает возможность управления через Arduino (импульсные реле слишком дороги), поэтому я добавил две обыкновенные кнопки.

Немного безопасности

Куда без пожарной сигнализации в общаге технарей? По неопытности, я приобрёл датчик огня, а не дыма. Определение горящей спички на расстоянии до 30 см - это, конечно, круто, но недостаточно. Поэтому пока обошёлся без этого.

К слову о пожарной сигнализации в общежитии...


  • Динамик, из которого иногда раздаётся сирена или хрип мертвеца
  • Локальный датчик дыма
  • Сетевой датчик дыма (подключён к пульту охраны)

Общий вид







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

Код скетча

Текущее состояние

#include
#include
#include
#include
#define DHT_PIN 2 //пин градусника…
#define DHT2_PIN 52 //пин уличного градусника…
#define RAIN_PIN 53 //пин датчика дождя
#define RECV_PIN 3 //пин подключения IR приёмника
#define FAN_PIN 4 //пин подключения реле
#define LAMP_PIN 5 //пин подключения реле
#define SOUND_PIN A0 //пин подключения микрофона
#define WINDOW_PIN A1 //пин окна

#define LAMP_BUT_PIN 50 //пин подключения микрофона
#define FAN_BUT_PIN 51 //пин окна

#define DHTTYPE DHT11

#define TIMER_FAN 0
#define TIMER_WINDOW 1

IRrecv irrecv(RECV_PIN);
decode_results results;
int timers;
bool FAN_FLAG = false;
bool LAMP_FLAG = true;
int WINDOW_VAL = 0;

Bool WINDOW_OPEN = false;
bool WINDOW_FLAG = false;
bool RAIN_FLAG = false;

Char incomingByte;

DHT dht(DHT_PIN, DHTTYPE);
DHT dht2(DHT2_PIN, DHTTYPE);

DS1302 rtc(49, 46, 48);
void setup() {
Serial1.begin(9600);

Rtc.halt(false);
rtc.writeProtect(false);
//rtc.setDOW(SUNDAY); // Set Day-of-Week to FRIDAY
//rtc.setTime(0, 37, 40); // Set the time to 0:37:00 (24hr format)
//rtc.setDate(25, 5, 2014); // Set the date to 25 мая

Timers = 0;
timers = 0;

PinMode(RAIN_PIN, INPUT);
pinMode(LAMP_BUT_PIN, INPUT);
pinMode(FAN_BUT_PIN, INPUT);

PinMode(FAN_PIN,OUTPUT);
pinMode(LAMP_PIN,OUTPUT);

DigitalWrite(FAN_PIN,LOW);
irrecv.enableIRIn(); // Включаем ресивер

Dht.begin();
dht2.begin();
}
int volume;
void loop() {
WINDOW_VAL = analogRead(WINDOW_PIN); //магнитный датчик
if(WINDOW_VAL > 950){
if(WINDOW_FLAG){
timers++;
if(timers>10){
WINDOW_OPEN = false;
}
}else{
WINDOW_FLAG=true;
}
}else{
WINDOW_OPEN = true;
WINDOW_FLAG = false;
timers=0;
}

If(digitalRead(RAIN_PIN)==HIGH){
RAIN_FLAG=true;
}else{
RAIN_FLAG=false;
}

Volume = analogRead(SOUND_PIN);
if(volume<40){
LAMP_FLAG = !LAMP_FLAG;
}

If(digitalRead(LAMP_BUT_PIN)==HIGH){
input_signal(1);
}
if(digitalRead(FAN_BUT_PIN)==HIGH){
input_signal(0);
}

If (irrecv.decode(&results))
{
if (results.value == 16750695) //Код кнопки
{
input_signal(0);
}
if (results.value == 16756815) //Код кнопки
{
input_signal(1);
}
irrecv.resume(); // Получаем следующее значение
}
//Serial.println(rtc.getTime().hour);
//Serial.println(rtc.getTime().min);
Serial1.print(rtc.getDOWStr());
Serial1.print(" ");
Serial1.print(rtc.getDateStr());
Serial1.print(" - ");
Serial1.println(rtc.getTimeStr());

If (Serial1.available() > 0) {
incomingByte = Serial1.read();
if(incomingByte == "0") {
Serial1.println(«Ручной режим деактивирован»);
input_signal(0);
}else if(incomingByte == "1") {
Serial1.println(«Ручной режим активирован»);
input_signal(0);
}else if(incomingByte == "2") {
input_signal(1);
}
}

Float h = dht.readHumidity();
float t = dht.readTemperature();

If (isnan(t) || isnan(h)) {
Serial1.println(«Ошибка чтения с внутреннего термометра»);
} else {
if(timers<=0){
if (t<26){
FAN_FLAG = false;
}else if (t>26){
FAN_FLAG = true;
}
}else{
timers--;
}
Serial1.print(h);
Serial1.println(“ %\t»);
Serial1.print(t);
Serial1.println(“ *C»);
}

If(timers>0){
Serial1.print(«Ручному режиму осталось работать: „);
Serial1.print(timers);
Serial1.println(“ сек.»);
}else{
Serial1.println(«Ручной режим выключен»);
}
if (FAN_FLAG && WINDOW_OPEN){
digitalWrite(FAN_PIN,HIGH);
Serial1.println(«Вентилятор включён»);
}else{
digitalWrite(FAN_PIN,LOW);
Serial1.println(«Вентилятор выключен»);
}

If(WINDOW_OPEN){
Serial1.println(«Окно открыто»);
}else{
Serial1.println(«Окно закрыто»);
}

If(LAMP_FLAG){
digitalWrite(LAMP_PIN,HIGH);
}else{
digitalWrite(LAMP_PIN,LOW);
}

H = dht2.readHumidity();
t = dht2.readTemperature();
Serial1.println(«За окном:»);
if (isnan(t) || isnan(h)) {
Serial1.println(«Ошибка чтения с уличного термометра»);
} else {
Serial1.print(«Влажность: „);
Serial1.print(h);
Serial1.println(“ %\t»);
Serial1.print(«Температура: „);
Serial1.print(t);
Serial1.println(“ *C»);
}
if (RAIN_FLAG) {
Serial1.println(«Дождя нет»);
}else{
Serial1.println(«Дождь»);
}

Serial1.println("*****");
delay(100);
}

Void input_signal(int signal){
switch(signal){
case 0:
if(rtc.getTime().hour> 1 && rtc.getTime().hour < 8){
timers = 1800;
}else{
timers = 18000;
}
FAN_FLAG = !FAN_FLAG;

Serial1.println(«Вентилятор переключён»);
break;
case 1:
LAMP_FLAG = !LAMP_FLAG;
Serial1.println(«Свет переключён»);
break;
}
}

А что, если в коде сбой

Я использую нормальнозамкнутое реле. То есть по умолчанию всё включено: можно отключить Arduino от сети и использовать простые выключатели.

Планы по развитию

То, что я перечислил, является лишь основой для действительно умной комнаты. Ведь всё её AI - это включение и отключение вентилятора, в зависимости от температоруы. Я планирую следующее, чтобы сделать комнату более удобной и «автономной».
Будильник
После добавления часов в систему следующий на очереди будильник. В качестве сигнала я предполагаю: пьезопищалку, моргание света и включение вентилятора. Ну и конечно, раннее пробуждение, если на улице дождь (-10 к скорости передвижения).

Добавить систему сохранения будильников на SD карточку с помощью такого модуля (на случай сбоев в питании).

Приложение на компьютер и смартфон + виджеты
Какой же умный дом без управления со смартфона или компьютера?

Предполагаю примерно такую схему:


Почему не Wi-Fi? Слишком дорого.

Вывести Arduino собственное питание
Думаю, что комментарии излишни: опасность выжечь USB и постоянные помехи для других устройств. Кроме того, хочу перенести питание с платы на специальный адаптер.
Управление роутером через розетку
Старый добрый Asus RT56U очень любит греться, особенно летом. Поэтому хочу сделать автоматическое отключение на пару часов ночью, чтобы давать ему остыть.
Добавить мониторинг присутствия
Сейчас у меня есть несколько старых добрых пироэлектрических инфракрасных датчиков и пара ультразвуковых датчика расстояния. Этого может хватить для простейшего контроля присутствия.

В комнате проживают два человека. Каждый имеет по четыре состояния:

  • За компьютером
  • Стоит
  • Лежит на кровати
  • Отсутствует

Инфракрасные датчики определяют присутствие в комнате, а ультразвуковые наличие в зонах (кровать/стол) и мониторят количество вошедших/вышедших.

Это позволит реализовать простейшие сценарии:

  • Я пришёл вечером и сосед не спит: включить свет
  • Все вышли: выключить свет
  • Все легли и не двигаются: выключить свет
Добавить светочувствительный резистор
Классика жанра: автоматическое включение света, если в комнате кто-то в зонах «За компьютером», а в комнате темно.
Добавить электромеханический замок и доводчик
Не знаю, как вам, а мне всё время лень искать ключи, поэтому я очень хочу установить электромеханический замок вкупе со считывателем проксимити карт или датчиком отпечатков пальцев . Вход в общежитие осуществляется с помощью электронных пропусков - частота мне известна, и я могу легко заказать считыватель для Arduino, но карты очень легко клонировать (у меня у самого есть устройство для этого), поэтому, когда придёт час, скорее всего, остановлюсь на отпечатках пальцев.

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

Проапгрейдить форточку
Как я уже писал, если температура выше определённого предела, включается вентилятор. Но что, если в комнате никого нет, а температура уже ниже 20-ти? Хотелось бы добавить в систему открытие/закрытие форточки. Возможно, это будут простые моторчики + леска.

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

лампочка, которая не дожила до системы контроля температуры


Заменить DHT11
Как я уже писал, я не разбираюсь в сенсорах и т.п. Поэтому я купил первые попавшиеся датчики температуры: dht11. Сейчас я хочу заменить их на dht22 для комнаты и dht21 для улицы. У dht22 меньшая погрешность, а dht21 имеет поддержку отрицательных температур и защищённый корпус, что актуально для улицы. Уличный dht11 уже иногда начал теряться.
студенты Добавить метки

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

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

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


Что такое «умный» дом?

В максимальном представлении «умный» дом – это такое строение, в котором все сферы бытовой жизни человека контролируются машинами. Фантастические фильмы часто показывают примеры таких домов, где компьютер будит человека, собирает его на работу, готовит ему завтрак, разговаривает с ним и т.д. Современные амбициозные проекты пока, к сожалению, не реализованы, так как машины еще не достигли должного уровня развития. Поэтому их функции ограничиваются контролем света, энергии, влажности, температуры в доме и т.п. Как правило, такие проекты от профессиональных компаний, занимающихся «умными» домами стоят достаточно больших денег и недоступны широкому спектру потребителей. Но, как и всегда, есть другой путь – собрать свой «умный» дом самостоятельно.


Как это сделать?

Следует понять, что «умный» дом – это просто набор контролеров с подключенными датчиками, которые считывают информацию и на ее основе выполняют какие-то конкретные команды. Например, контролер обогрева. При фиксировании его датчиком падения температуры ниже определенного уровня, он включит подачу тепла в комнату. На таком принципе работают автоматические кондиционеры. А в «умном» доме такие контролеры с датчиками стоят везде, что и позволяет охватить контролем максимальное количество задач. Естественно, чтобы сделать свой «умный» дом, вы сначала разработаете у себя в голове небольшой проект, учтя в нем, какие именно сферы своего быта вы хотели бы усовершенствовать и что вам для этого нужно.

Итак, чтобы сделать свой дом более самостоятельным, вам потребуются контролеры, которыми вы смогли воспользоваться. Дело в том, что их мало купить – нужно еще их запрограммировать, подключить внешние источники информации и настроить на нужную работу. Здесь возникает проблема недостатка знаний в конкретной области, потому что многие подобные устройства достаточно сложны в эксплуатации и работать с ними может не так уж и много людей. Но при появлении спроса (кому бы не хотелось своими руками собрать работающее электронное устройство?) появляется и соответствующее предложение. Одна компания является на данный момент практически самым популярным поставщиком удобных в использовании и простых для понимания электронных устройств. Это компания Arduino (ардуино).

Прежде чем начать рассмотрение этой системы, нужно принять во внимание то, что универсального проекта «умного» дома для этой системы нет. Каждый пользователь делает свой особенный проект, который по-своему и реализует, используя свои уникальные технические решения. Это одно из достоинств системы, которую мы рассмотрим ниже.

Что представляют собой системы Arduino?

Arduino сейчас представляет собой удобный электронный конструктор, понятную среду для программирования и в целом удобный инструмент для создания собственных разработок как новичкам, так и профессионалам. Популярность платформе ардуино придает то, что она программируется на простом и понятном языке, переносятся программы через USB (не нужен программатор, проще говоря, передатчик программы на нужное устройство), также открытый исходный код (та основа, на которой создается платформа, ее программное ядро, с помощью которого и создаются все нужные программы). Открытый код полезен для пользователей тем, что на основе него они могут создавать свои собственные «самодельные» программы, а не использовать только те, которые поставляются самим Arduino.


В чем суть технологии ардуино? Она позволяет обычном компьютеру как бы «выйти» в реальное пространство, начать «чувствовать». Это достигается за счет датчиков, которые с помощью каких-либо путей (чаще всего беспроводных) передают ему информацию об окружающей среде и на основе которой он может принимать самостоятельные решения об управлении какими-то контролирующими устройствами. Таким образом, настроить работу этой технологии можно практически для чего угодно. При этом продукция Arduino универсальна и может взаимодействовать с большим количеством систем, как на персональном компьютере, так и на устройствах мобильных. Саму начинку из небольшой платы и дополнений к ней конкретный пользователь может либо купить в сборном варианте, либо собрать самостоятельно из нужных именно ему комплектующих. Все разъемы у плат ардуино максимально стандартизированы, что облегчает сторонним производителям производство совместимых деталей. Все программное обеспечение доступно для бесплатного скачивания, что значительно прибавляет к популярности Arduino в сети.

«Универсальность Arduino поможет вам сэкономить и собственные деньги, и время, и нервы – три в одном» — говорят опытные домашние инженеры на различных форумах и в сообществах. На самом деле проект вашего «умного» дома действительно значительно облегчиться, ведь не придется покупать дорогие редкие комплектующие при широком выборе более простых и дешевых и не уступающих в функционале деталей. Плюс, вам на руку служит и популярность системы – для нее сегодня активно идет разработка готовых кодов, планов, проектов, которыми занимаются как профессионалы, так и любители. Все это объединяется в огромные библиотеки, где можно найти функционал на любой вкус.


Что должен уметь «умный» дом?

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


Прежде всего, нужно определить, какими качествами должен и может обладать «умный» дом, если отбросить в сторону научную фантастику? Ведь в проекте вашего дома можно предусмотреть такие вещи, которые на деле мало выполнимы. Вряд ли вы сможете найти такую систему, которая будет сама выбирать вам одежду на работу. После некоторого исследования форумов и сайтов можно прийти к выводу, что такой дом должен уметь:

  1. Он должен управлять включением-выключением света. При наиболее прогрессивном векторе развития не просто отключать лампочки по сигналу с пульта или звуковому сигналу (хлопку), а, например, автоматически отключать свет, когда дома ни кого не будет или когда все в доме спят.
  2. Контроль температуры внутри дома. Это взаимодействие автоматизированного компьютера с вентиляционными, отопительными и им подобными системами. Принцип работы здесь достаточно прост: при изменении температуры, которое фиксирует датчик, система автоматически включает или выключает какие-либо нужные приборы. Здесь также есть перспективы, например создание такого набора команд, чтобы после того, как вы ложились спать, температура медленно понижалась (спать в глубокой фазе комфортнее в прохладной комнате), а после пробуждения (сигнала будильника), наоборот, повышалась (просыпаться приятнее в комнате более теплой).
  3. Мониторинг внешней среды. За этими научными терминами кроется определение уличной температуры, индикация дождя, снега и тому подобное. Как правило вся информация о погоде должна либо предаваться на какой-либо экран, а также может сопровождаться звуковыми сигналами. Один из конструкторов предложил идею более раннего пробуждения в случае дождя, так как в дождь человек медленнее собирается и дольше добирается на работу/учебу.
  4. Управление дверями и входом/выходом. В эту категорию включен довольно широкий спектр различных приспособлений, таких как охранная система (часто это набор ультразвуковых и инфракрасных датчиков, которые фиксируют наличие людей в помещений в тот момент, когда их там быть не должно), авто блокираторы двери, электронные замки различных модификаций (например, основанных на считывании отпечатков пальцев) и достаточно простые приспособления вроде автоматического закрывания двери, когда с вами живут люди, которые забывают закрывать ее за собой.
  5. Система оповещения о различных утечках, протечках, сюда же входит функция определения задымления и открытого огня в помещении. Модифицировать такую систему можно вплоть до того, чтобы она начинала звонить в пожарную службу.
  6. Прочие системы, видов которых может быть огромное множество. Из часто употребляемых можно выделить управление техникой (к примеру, автоматическое включение музыкальных приборов, телевизора), различные системы сбора данных (например, устройство раз в несколько минут выводит информацию о температуре воды в аквариуме).


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

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

«Arduino, по факту, идеальный инструмент для воплощения ваших проектов и мечт в жизнь» — говорят бывалые конструкторы на форумах, которые и сами представляют поражающие воображение неискушенного человека проекты собственных городских и загородных домов, которые разработали и реализовали они сами.


Почему именно Arduino?

Возникает логичный вопрос: все подобные системы возможно приобрести и так и заказать их установку профессионалам, которые помимо установки смогут и красиво оформить подобные системы (например, спрятать те же самые провода). Зачем же делать их самому с помощью Arduino? Ответ прост – дело в цене и удобстве. Как правило, фирмы, которые профессионально занимаются установкой таких систем делают весьма и весьма значительную накрутку как цену комплектующих и самих подобных устройств, так и на стоимость их установки.

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


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

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

Всех с наступающим Новым Годом! В преддверии праздника речь пойдет о новогодней гирлянде, управляемой с планшета или смартфона по bluetooth. Список компонентов проекта: RGB светодиодная лента(гирлянда) с микросхемой управления Ардуино pro mini Bluetooth модуль Планшет(смартфон) на базе Андроид В продаже существует очень много разных RGB лент, на разных микросхемах. Ниже список микросхем, с которыми мы сможем...

Датчик влажности DHT В прошлой статье мы рассмотрели управление вентилятором в ванной с использованием обычного фоторезистора. Пришла пора добавить в нашу схему умного дома новый тип датчика. Датчик влажности и температуры — DHT(пины 9,10). Описание и пример работы с датчиком можно посмотреть в статье При помощи датчика DHT мы будем замерять влажность в ванной...

Автоматическую ночную подсветку в ванной будем делать с использованием датчика движения и датчика света(фоторезистора). В качестве светящегося элемента будем использовать светодиодную ленту 12v Профиль со светодиодной лентой Датчик движения в боксе Фоторезистор(временный монтаж) Алгоритм управления довольно простой. Если темно и сработал датчик движения — включаем подсветку на некоторое время. Также необходимо предусмотреть случай, когда выходишь...

После написания последней статьи, появилась проблема с перегревом одного из датчиков DS18B20. Через разное время после включения, начал наблюдать, что данные с датчиков DS не приходят. После перезагрузки всей системы один из датчиков показывал 35-40 градусов, и в течении 15 минут температура падала до реальной. Пробовал менять датчик на новый, ничего не помогало. Как потом...

Следующим этапом в проектировании нашего умного дома будет проектирование управления вентиляцией. В наличие у нас 3 вентилятора, питающихся от сети 220 нагрузкой 180Вт — Вентилятор в ванной, совмещенной с санузлом — Вентилятор на кухни для потолочной вентиляции — Вентилятор для блока управления умным домом и рабочего стола(пк, зона пайки) Управление вентилятором осуществляется через реле, которые...

В данном проекте я покажу, как построить умный дом. Он может контролировать температуру снаружи и внутри помещения, фиксировать открыто или закрыто окно, показывать, идет ли дождь, а также подавать тревожный сигнал, когда сработает датчик движения PIR. Я создал приложение на ОС Android для отображения всех данных (данные можно также просматривать через браузер). Вы сможете видеть температуру в вашем доме и другую информацию с любой точки мира! Приложение переведено на английский и польский язык. Я создал данное устройство, поскольку хотел иметь свой собственный умный дом, которым можно управлять. Вы также сможете построить умный дом из компонентов, рекомендованных ниже. Тогда приступим.

Объяснение сокращений для начинающих:

GND - земля
VCC - питание
PIR – датчик движения

Шаг 1: Компоненты

Стоимость всех компонентов не превышает $90

  • Датчик температуры DS18B20 x 2 штуки
  • Язычковый переключатель
  • Резистор 4.7 кОм
  • Кабель, витая пара
  • ethernet кабель
  • инструменты (паяльник, отвертка)

Шаг 2: Соединения


Схема соединений показана выше.

Шаг 3: Программный код

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

Шаг 4: Принцип работы


Если вы нажмете на кнопке refresh (обновить) в вашем приложении или в браузере, то Arduino отправит данные в смартфон/браузер. Приложение получает программный код с каждой страницы (/tempin, /tempout, /rain, /window, /alarm) и отображает его на вашем смартфоне.

Шаг 5: Приложения для Android.

Для установки приложения на вашем смартфоне под управлением ОС Android вам необходимо выполнить следующее (это видно на картинках выше):

1. Сначала загрузите файл smartHome.apk
2. Отправьте файл apk на ваш телефон
3. Откройте файловый менеджер и разместите файл smarthHome.apk
4. Щелкните на нем и нажмите установить (вам необходимо установить галочку, которая разрешает устанавливать приложения вне маркета google play)
5. После установки вам необходимо активировать приложение

Шаг 6: Конфигурирование приложения

Я кратко объясню, как работает приложение. Оно отображает все данные из вашего дома. Вы можете нажать на иконку настроек для редактирования вашего IP адреса, и включать и выключать тревожную сигнализацию. Когда вы включаете сигнализацию, то приложение получает данные от активного датчика движения PIR. Если датчик определяет постороннее движение в доме, он посылает уведомление. Приложение получает данные от датчика каждую минуту. В поле IP введите ваш IP-адрес.

Шаг 7: Браузер



Введите в адресной строке браузера ваш ip адрес / all. При этом вы увидите все данные и сможете включать и выключать свет.

Для этих функций вы также можете использовать приложение на Android.

Шаг 8: Переадресация портов

Вам нужно открыть порт на вашем роутере. Войдите в конфигурацию роутера, установите адрес arduino ip и откройте порт 80. Процедура показана на картинке выше.

Шаг 9: Присвоение доменного имени NO IP (опция)

Вы можете настроить учетную запись на no ip, но это не обязательно. На картинке выше показан процесс конфигурации.

Шаг 10: Тестирование

Если вы хотите видеть данные на вашем компьютере, то в адресной строке браузера введите ваш ip адрес / all (напр., 12.345.678.901/all) или используйте приложение Android.

Шаг 11: Редактирование: исходная программа приложения Android app

Ниже указан исходный программный код для Android.

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