Как да направя интелигентна система за домашна автоматизация с помощта на модул ESP32?

В тази модерна епоха концепцията за домашна автоматизация нараства с голяма скорост. Интелигентните системи се инсталират на почти всяко място. Smart Home Systems е концепция, при която всички електрически уреди или устройства се управляват с едно дистанционно управление. В тези системи през повечето време дистанционното управление е мобилно приложение. Тъй като мобилният телефон за android е най-често срещаният сред хората, така приложението за Android е най-добрият вариант за управление на всички тези устройства.



Автоматизация на дома

Така че в този проект ще свържем някои от електрическите уреди на дома към модула Relay и ще го управляваме чрез микроконтролера ESP32. Ще направим база данни на Firebase в реално време и ще я свържем от приложението за Android. Това приложение за Android ще изпрати данните в облака и след това ще бъде изпратено до микроконтролера, за да включи или изключи електрическия уред. Най-хубавото е, че можете да имате пълен контрол върху превключването на вашите уреди от всяка точка на света. Трябва ви само връзка с интернет, за да работите с приложението за Android.



Как да контролирам домашните уреди чрез WiFi?

Системите за домашна автоматизация, които вече се предлагат на пазара, са много скъпи. Можем да използваме платка ESP32, за да свързваме различни домакински уреди и да ги управляваме с помощта на приложение за Android. Това ще бъде с много ниски разходи и ефективен начин за автоматизиране на къщата. Сега нека направим крачка напред и започнем да събираме информация, за да стартираме проекта.



Стъпка 1: Събиране на компонентите

Най-добрият подход за стартиране на всеки проект е да се направи списък с компоненти и да се премине през кратко проучване на тези компоненти, защото никой няма да иска да остане в средата на проекта само поради липсващ компонент. Списък на компонентите, които ще използваме в този проект, е даден по-долу:



  • ESP32
  • Макет
  • Свързване на проводници

Стъпка 2: Изучаване на компонентите

Сега, тъй като знаем резюмето на този проект, нека направим крачка напред и да преминем през кратко проучване на работата на основните компоненти, които ще използваме.

ESP32 е платка за микроконтролер с ниска мощност и евтина цена, която има вграден WiFi и двумодов Bluetooth модул. Тази платка за микроконтролер е създадена и разработена от Системи Espressif . Тази платка има вградени усилватели на мощност, усилватели с ниско ниво на приемане, филтри и превключватели за антена. Захранва се от android кабел за данни и може да осигури до 3.3V на изхода. ESP32 изпълнява TCP / IP, пълен 802.11 b / g / n / e / I WLAN MAC конвенция и Wi-Fi Direct. Това предполага, че ESP 32 може да адресира голяма част от WiFi рутерите там, когато се използва в режим на станция (клиент). По същия начин той може да направи точка за достъп с пълни 802.11 b / g / n / e / I. ESP32 не е в основата на най-новия BLE Bluetooth 4.2, а освен това подкрепя страхотния Bluetooth. Това основно означава, че може да адресира стари и нови Bluetooth телефони / маси. Ако нямате модул ESP32, можете също да използвате ESP8266 или Node MCU. Тези дъски могат да се използват за изпълнение на една и съща задача, ако са свързани към WiFi.

ESP32



Релейният модул е ​​комутационно устройство. Той работи в два режима, Нормално отворен (НЕ) и Обикновено Затворено (NC) . В режим НЕ, веригата винаги е прекъсната, освен ако не изпратите HIGH сигнал на релето чрез Arduino. NC режимът се тревожи обратното, веригата винаги е пълна, освен ако не включите релейния модул. Уверете се, че сте свързали положителния проводник на вашия електроуред към релейния модул по начина, показан по-долу.

Сглобяване на веригата на релейния модул

Стъпка 3: Блокова диаграма

Блокова диаграма

В горната блок-схема е показан потокът на този проект. Релетата са свързани с електрическите уреди или устройства на дома. Мобилно приложение ще изпрати На или ИЗКЛЮЧЕНО команда към базата данни. Този облак е свързан с платката за микроконтролер ESP32 чрез WiFi. За да включим електронното устройство, ще изпратим „1“ в базата данни, а за да го изключим ще изпратим „0“ в базата данни. След това тази команда ще бъде извлечена от микроконтролера, тъй като тя също е свързана с базата данни. Въз основа на това 0 или 1, микроконтролерът ще включи или изключи релейния модул, което в крайна сметка ще доведе до превключване на електрическите уреди.

Така че тук, в тази статия, ще използвам два релейни модула, за да ви покажа цялата процедура. Но можете да увеличите броя на релетата и да добавите една и съща част от кода във вашата програма, ако искате да контролирате по-голям брой електрически домакински уреди.

Стъпка 4: Сглобяване на компонентите

Сега, когато имаме ясна визия за това, което искаме да направим в този проект, нека не губим повече време и да започнем да сглобяваме компонентите.

  1. Вземете макет и фиксирайте в него микроконтролера ESP32. Сега вземете двата релейни модула и свържете паралелно Vcc и земята на модулите към Vin и земя на платката на микроконтролера ESP32. Свържете в-щифт на релейните модули към pin34 и pin35 на платката ESP32. Ще видите, че релетата вече са включени.
  2. Свържете домашните уреди към релейния модул. Уверете се, че вашите връзки съвпадат с връзките, показани на фигурата в стъпка 2.

Сега, когато свързахме хардуерната част на нашата система. Ще разработим приложение за android, което ще бъде свързано с базата данни на firebase. Ще направим базата данни и приложението за Android в част 2 на тази статия.

Стъпка 5: Първи стъпки с ESP32

Ако не сте работили по Arduino IDE преди, не се притеснявайте, защото стъпка по стъпка за настройване на Arduino IDE е показана по-долу.

  1. Изтеглете най-новата версия на Arduino IDE от Arduino.
  2. Свържете дъската на Arduino към компютъра и отворете контролния панел. Кликнете върху Хардуер и звук. Сега отворете Устройства и принтер и намерете порта, към който е свързана вашата платка. В моя случай е така COM14 но при различните компютри е различно.

    Намиране на порт

  3. Щракнете върху Файл и след това върху Предпочитания. Копирайте следната връзка в URL адрес на допълнителен управител на борда. „ https://dl.espressif.com/dl/package_esp32_index.json '

    Предпочитания

  4. Сега, за да използваме ESP32 с Arduino IDE, трябва да импортираме специални библиотеки, които ще ни позволят да записваме код на ESP32 и да го използваме. тези две библиотеки са прикачени в линка, даден по-долу. За да включите библиотеката, отидете Скица> Включване на библиотека> Добавяне на ZIP библиотека . Ще се появи поле. Намерете ZIP папката на вашия компютър и щракнете върху OK, за да включите папките.

    Включете библиотека

  5. Сега отидете Скица> Включване на библиотека> Управление на библиотеки.

    Управление на библиотеките

  6. Ще се отвори меню. В лентата за търсене въведете Arduino JSON. Ще се появи списък. Инсталирай Arduino JSON от Benoit Blanchon.

    Arduino JSON

  7. Сега кликнете върху Инструменти. Ще се появи падащо меню. Настройте дъската на ESP Dev модул.

    Съвет за настройка

  8. Щракнете отново върху менюто Инструменти и задайте порта, който сте наблюдавали в контролния панел преди.

    Настройка на порт

  9. Сега качете кода, който е приложен в линка по-долу, и кликнете върху бутона за качване, за да запишете кода на микроконтролера ESP32.

    Качване

Така че сега, когато ще качите кода, може да възникне грешка. Това е най-честата грешка, която може да възникне, ако използвате нова версия на Arduino IDE и Arduino JSON. Следват грешките, които може да видите на екрана.

Във файл, включен от C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, от C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer е клас от ArduinoJson 5. Моля, вижте arduinojson.org/upgrade, за да научите как да надстроите програмата си до ArduinoJson версия 6 StaticJsonBuffer jsonBuffer; ^ Във файл, включен от C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, от C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: грешка: StaticJsonBuffer е клас от ArduinoJson 5. Моля, вижте arduinojson.org/upgrade, за да научите как да надстроите програмата си до ArduinoJson версия 6 връща StaticJsonBuffer (). ParseObject (_data); ^ Намерени са множество библиотеки за „WiFi.h“ Използвано: C:  Users  Pro  AppData  Local  Arduino15  пакети  esp32  hardware  esp32  1.0.2  библиотеки  WiFi Не се използва: C:  Program Files ( x86)  Arduino  libraries  WiFi Използване на библиотека WiFi на версия 1.0 в папка: C:  Users  Pro  AppData  Local  Arduino15  пакети  esp32  hardware  esp32  1.0.2  библиотеки  WiFi Използване на библиотека IOXhop_FirebaseESP32-master в папка: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (наследство) Използване на библиотека HTTPClient във версия 1.2 в папка: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Използване на библиотека WiFiClientSecure при версия 1.0 в папка: C:  Users  Pro  AppData  Local  Arduino15  пакети  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Използване на библиотека ArduinoJson в версия 6.12.0 в папка: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson статус на излизане 1 Грешка при компилиране за модула ESP32 Dev.

Няма какво да се притеснявате, защото можем да премахнем тези грешки, като следваме няколко прости стъпки. Тези грешки възникват, защото новата версия на Arduino JSON има друг клас вместо StaticJsonBuffer. Това е класът на JSON 5. Така че можем просто да премахнем тази грешка, като понижим версията на Arduino JSON на нашата Arduino IDE. Просто отидете на Скица> Включване на библиотека> Управление на библиотеки. Търся Arduino JSON от Benoit Blanchon които сте инсталирали преди. Първо го деинсталирайте и след това задайте неговата версия на 5.13.5. Сега, когато зададохме стара версия на Arduino JSON, инсталирайте я отново и прекомпилирайте кода. Този път вашият код ще се компилира успешно.

За да изтеглите кода, щракнете тук.

Стъпка 6: Разбиране на кодекса

Кодът на този проект е много прост и добре коментиран. Но все пак кодът е обяснен накратко по-долу.

1. В началото са включени библиотеки, така че платката ESP32 да може да бъде свързана към локалната WiFi връзка в дома или офиса. След това се дефинират връзка към вашия проект на firebase и удостоверяване на вашия проект на firebase. След това се дефинират името и паролата на вашата локална wifi връзка, за да може ESP32 да бъде свързан към Wifi. Някои изводи на ESP32 са определени за свързване към релейните модули. и накрая е декларирана променлива, която ще съхранява някои временни данни, които ще идват от облака на firebase.

#include // включва библиотека за свързване към локалната Wifi връзка #include // Включва библиотека за свързване към Firebase databse #define FIREBASE_HOST 'coma-patient.firebaseio.com' // включва връзката към вашия проект на firebase #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5F9ANDRWWZZFFEANDRWNZWFE '// Включете удостоверяването на вашия проект на firebase #define WIFI_SSID' abcd '// името на WiFi връзката на вашия дом или офис #define WIFI_PASSWORD' abcd '// парола на WiFi връзката на вашия дом или офис int r1 = 34; // щифт за свързване на реле 1 int r2 = 35; // щифт за свързване на реле 2 int temp; // променлива за пренасяне на данни

2. настройка за празнота () е функция, при която инициализираме пина INPUT или OUTPUT. Тази функция също така задава скоростта на предаване чрез Serial.begin () команда. Скорост на предаване е скоростта на комуникация на микроконтролера. Тук са добавени някои редове код, за да свържете ESP32 към локалната wifi връзка. Платката ще се опита да се свърже с локалната wifi връзка и ще отпечата „връзка“. в серийния монитор. Той ще отпечата „Connected“, когато връзката е установена. Така че, за да наблюдавате това, по-добре е да отворите серийния монитор и да проверите неговия стаус там.

void setup () {Serial.begin (115200); // задаване на скорост на предаване // свързване към wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('свързване'); докато (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); забавяне (500); } Serial.println (); Serial.print ('свързан:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. цикъл void () е функция, която се изпълнява многократно в цикъл. В този цикъл ние пишем код, който казва на борда на микроконтролера какви задачи да изпълнява и как. Извлекли сме данните срещу светлина и AC от базата данни и се съхранява в двете временни променливи. След това се прилагат четири условия за превключване на двата уреда според извлечените 0 или 1 от базата данни.

void loop () {// получаваме стойност temp1 = Serial.println (Firebase.getFloat ('light')); // получаваме стойността за превключване на светлината temp2 = Serial.println (Firebase.getFloat ('AC')); // получаваме стойността за превключване на забавяне на вентилатора (1000); if (temp1 == 1 && temp2 == 1) {// За включване на осветление и вентилатор digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// За включване на вентилатора и изключване на светлината digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// За да изключите вентилатора и да включите светлина digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// За да изключите вентилатора и да изключите светлината digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Това беше част първа от „Как да направя система за интелигентен дом, използвайки ESP32?“. Можете да добавите още релейни модули, ако искате да контролирате още някои домакински уреди, единственото нещо, което ще трябва да направите, е да прочетете данни от firebase и да добавите още някои условия за превключване. В следващата статия ще ви обясня как да разработите приложение за Android и база данни на Firebase. Ще обясня стъпка по стъпка процедурата за свързване на приложението за Android към firebase и изпращане на данни към него.

За да преминете към следващия урок Натисни тук