Arduino умный дом wi fi

Схема моего умного дома на основе ESP8266, часть 1

Захотелось мне сделать свой дом умным. И чтобы он был дешевым, простым и надежным. Как оказалось, это сделать возможно. Но. готовых умных домов я не смог найти. Те, что имелись на рынке, либо дорогие, либо нефункциональные, либо невнятные и т.д. и т.п. Вспомнил я про Arduino. И оказалось на нем можно это сделать (точнее не на нем, а на очень похожем на него контроллере ESP8266). Правда это уже будет целым хобби. Просто взять купить и поставить не получится. Нужно искать, собирать, паять, соединять и конечно же программировать. Ок, поехали!

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

На кого рассчитана статья?

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

Профессионалам по электронике не будет это интересно. Я рассказываю про свой путь с нуля.

Что в итоге должно получится?

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

  1. Соединить сетевой увлажнитель, обогреватель, кондиционер, принудительную вентиляцию, датчики температуры, датчики влажности, датчики углекислого газа в одну систему, которая обеспечила бы нормальный микроклимат в комнате.
  2. Кнопку ‘Я ушел из дома’. По которой в доме отключались приборы: например освещение, утюг, паяльник.
  3. Датчики движения и присутствия с основным освещением комнаты. Для выключения освещения, если в комнате никого нет в течении какого-то времени.

Требования к умному дому

Итак, требования к умному дому, как хобби, такие:

  1. Обойтись по возможности без пайки.
  2. Не вдаваться глубоко в радиоэлектронику.
  3. Все задачи решать в основном программированием.
  4. Языки программирования C++ и JavaScript.
  5. В качестве связи устройств использовать Wi-Fi, 1-Wire, I2C.
  6. Устройства должны быть дешевле чем Xiaomi.

В общем, если заметили, требования как у программиста. Если можно, то все решать программированием. Автор все-таки программист, а не писатель и тем более не радиоэлектронщик.

Устройства

После поисков был найден микроконтроллер 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. Ее возможностей хватает для всего что мне нужно.

Сервер

Кроме ESP8266 в схеме умного дома будет сервер. Ну куда ж без него. Его можно написать полностью самому. Но ознакомившись с темой умного дома я нашел такие универсальные средства как: MQTT-брокер, средство визуального программирования Low Code Node Red и мост Homebridge. Последнее я припас для соединения своего умного дома с Apple HomeKit + Siri. Эти средства оказались настолько популярными, универсальными, простыми, надежными, что я решил на их основе и строить сервер.

Куда же размещать эти программные сервера? Можно просто на ноут кинуть или на что-то более специализированное. Можно также в облако. Особых требований у меня пока нет для выбора физического сервера, потому остановился на том, что больше все понравилось, а именно Малина. Итак, для сервера выбрал Raspberry Pi Zero W, который отвечает всем требованиям: цена 1500 рублей, wi-fi на борту, простота в программировании. И еще можно его запихнуть в DIN-корпус для установки в электрощиток.

Резюме

В итоге получилась такая схема. В электрощитке будет находиться Raspberry Pi Zero W для хранения логики работы моего дома. Без него умный дом работать не будет. Поэтому запитываться он будет от сети и от резервной аккумуляторной батареи.

Каждое устройство создается на основе ESP8266. Запитываться будет либо от сети либо от батарейки. Если батарейки не будет хватать хотя бы на полгода, то придется подумать как это решить (тут мне подсказывают, что ZigBee позволяет создавать более экономные устройства, чем Wi-Fi, но ZigBee более сложный, чем Wi-Fi).

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

Что дальше?

Дальше я расскажу как собрал первое тестовое устройство. Имитация лампы освещения и кнопки. В качестве лампы будет обычный светодиод. Кнопка просто кнопка. И еще в устройстве будут два датчика DHT11 (влажность) и BMP085 (давление и температура). Все это будет подключено к Homekit и Алисе.

Источник

Автоматизация дома с использованием Arduino и WiFi

Домашняя автоматизация — актуальная тема в наши дни. Мы собираемся управлять устройствами переменного тока через Интернет с помощью телефона Android из любой точки мира. В качестве основного контроллера будет использоваться плата разработки ESP8266.

Читайте также:  Wifi мышь windows 10

Здесь мы будем использовать сервисы RemoteMe.

ВНИМАНИЕ: переменный ток очень опасен, и случайный удар током может привести к летальному исходу. Работайте с приборами переменного тока только в том случае, если вы на 100% уверены, что знаете, с чем имеете дело. Мы не будем нести ответственность, если вы причините какой-либо вред себе или кому-либо еще.

Что такое RemoteMe?

Начнем с простого введения в RemoteMe для тех, кто не знает, что это такое и что вы можете с ним сделать. RemoteMe — это веб-приложение, которое используется для связи с такими устройствами, как Arduino, NodeMCU, Raspberry Pi и т.д. С помощью приложения RemoteMe вы можете разместить веб-сайт для управления своими устройствами в облаке RemoteMe.

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

Что такое Arduino Remote LITE?

Arduino Remote Lite — это приложение для Android, которое можно использовать для удаленного управления вашими проектами через Bluetooth или WiFi. Он также может быть подключен к серверу RemoteMe для управления реле и другими такими устройствами. Вы можете скачать это приложение из Google Play.

Компоненты проекта «Умный дом»

плата реле (я использовал 4-канальное реле, вы даже можете использовать 8-канальное или 16-канальное реле)

макетная плата (для создания прототипов, вы можете сделать постоянную схему на печатной плате, если хотите)

Настраиваем Arduino IDE

Перво-наперво, нам нужно настроить Arduino IDE и установить все необходимые библиотеки. Чтобы иметь возможность программировать плату ESP, вам необходимо настроить Arduino IDE. Как только среда ESP будет готова, следующим шагом будет добавление библиотек, необходимых для подключения к RemoteMe. Откройте Arduino IDE и перейдите к » Sketch » Include Library » Manage Libraries . Появится всплывающее окно, где вы должны искать нужные библиотеки и устанавливать их одну за другой.

Вам необходимо установить следующие библиотеки:

После установки этих библиотек среда IDE готова к работе с RemoteMe.org.

Настройка RemoteMe

Сначала зайдите на RemoteMe.org и зарегистрируйтесь, если вы этого еще не сделали.

Теперь установите Arduino Remote Lite и войдите в систему, используя учетную запись RemoteMe. Как только это будет сделано, вернитесь на сайт RemoteMe для создания переменных.

Внимательно выполните следующие шаги:

После входа в систему перейдите в «Variables», здесь вы увидите список переменных, автоматически создаваемых приложением Android Remote Lite. Мы будем использовать эти переменные для управления реле.

Теперь над «Variables» есть еще одна опция «Devices», нажмите на нее, и загрузится новая страница, где вы можете создавать устройства.

Нажмите на ‘New Devices’ в правом верхнем углу, появится раскрывающийся список. Выберите последний вариант ‘New Network Device’. Теперь дайте устройству имя, например, ‘Relay‘ или ‘Automation‘, или как угодно. Также присвойте устройству уникальный идентификатор, чтобы устройство распознавалось и отличалось от других устройств.

Читайте также:  Публичный вай фай безопасен

Генерация кода Arduino

После вышеуказанного шага появится новое устройство. Теперь мы должны сгенерировать код Arduino. Нажмите меню расположенное в строке в конце (изображение с 3-мя горизонтальными линиями). Затем выберите ‘Code Generating Wizard’. Вы увидите всплывающее окно со списком всех переменных, сгенерированных приложением.

Прокрутите вниз, чтобы найти список реле. Так как здесь используем 4-канальное реле, выберем первые 4-е реле. Если вы используете 8/16-канальное реле. выберите нужные номера и нажмите ‘Next’.

На следующем шаге введите имя и пароль WiFi и нажмите ‘Next’.

У вас также есть возможность включить ‘Enable Direct Connection‘. Если вы включите эту опцию, приложение будет подключаться к устройству напрямую без интернета, если смартфон находится в зоне действия WiFi.

На следующем шаге включите параметр Debug и нажмите ‘Next’. Теперь вы можете скачать код на свой компьютер. Нам нужно отредактировать код, чтобы установить контакты ввода/вывода.

Модифицирование кода Arduino для «Умного дома»

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

int Relay1 = D0;
int Relay2 = D1;
int Relay3 = D2;
int Relay4 = D3;

Вы можете добавить больше, если хотите.

void onRELAY_01Change(boolean b)
<
Serial.printf(«onRELAY_01Change : b : %d\n», b);
if(b == 1)
<
digitalWrite(Relay1, HIGH);
>
else if(b == 0)
<
digitalWrite(Relay1, LOW);
>
>

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

pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);

Приведенный выше код необходимо добавить в настройку, чтобы установить выводы в качестве выходных. Вот и весь код, который нужно отредактировать. Весь код можно скачать отсюда. Просто добавьте имя и пароль WiFi, идентификатор вашего устройства и токен, которые можно найти в пункте меню ‘Token‘ расположенный ниже ‘Variables‘.

После этого код готов к загрузке на плату ESP.

Подключение электроники

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

Сначала поместите плату ESP8266 на макетную плату и подключите вывод GND к -ve направляющим с обеих сторон.

Теперь подключите соединители к плате реле, ниже показано как подключать.

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

Теперь перейдем к тестированию сборки. Сначала включите источник питание 9В. Если вы также хотите запитать плату ESP от батареи, просто подключите контакт Vin платы ESP к +ve рейке макетной платы. Тогда вам не нужно будет подключать USB-кабель.

Откройте приложение Arduino Remote Lite, перейдите к третьей опции ‘Relay Control’, здесь вы можете управлять реле с помощью переключателей. Когда вы переключаете реле из RemoteMe, лампа должна включаться и выключаться.

Источник

Оцените статью
Adblock
detector