Как да управлявате климатика си със смартфона си вместо с дистанционното?

В съвременния свят, ако се огледаме, можем да видим, че всичко, което включва електроника, е автоматизирано до известна степен. Най-новите техники за автоматизация са възприети от няколко души в домовете им. В тази модерна ера хората трябва да изберат най-новите техники за автоматизация, за да улеснят живота си. Обикновено в домовете си се обръщаме НА , ИЗКЛ и задайте температурата ръчно в нашите климатици. В днешно време един компонент като релеен модул може да се използва за управление на различни електронни параметри на къща, например превключване на домакински уреди, наблюдение на алармите за сигурност, автоматизация на гаражни врати и др. В тази статия ще разработим система, която ще ви позволи да управлявате вашия климатик, като използвате мобилно приложение вместо дистанционното му. Тъй като мобилният телефон за android е най-често срещаният сред хората, така приложението за android е най-добрият вариант за управление на нашия климатик.



Управление на климатика

Как да настроите всички необходими периферни устройства с ESP32?

За да направи какъвто и да е проект, човек трябва да знае кои са основните компоненти, които ще са му необходими, за да го завърши. Така че отличен подход преди започване на работата е да се направи пълен списък на всички компоненти, за да се спести време и да се избегне шансът да заседне в средата на проекта. Пълен списък на всички компоненти, които са лесно достъпни на пазара, е даден по-долу. След подреждането на хардуерните компоненти ще проектираме наше собствено приложение за Android за управление на нашия климатик:



Стъпка 1: Използвани компоненти (хардуер)

  • ESP32
  • Дисплейен модул MakerFocus I2C OLED
  • Резистор, зависим от светлината
  • Бутон за превключване
  • IR приемник
  • Резистор 1K Ohm (x4)
  • BC 338 NPN транзистор
  • Джъмперни кабели
  • TSOP приемник
  • Макет
  • Зарядно за Android

Стъпка 2: Използвани компоненти (софтуер)

Тъй като ще направим a безжичен превключвател , ще ни е необходим бутон за включване и изключване. Искаме да използваме мобилен телефон, за да управляваме този бутон, така че ще трябва да разработим приложение за това. Най-удобното приложение е приложение за Android и ние трябва да инсталираме тези два софтуера, за да се свържем с това приложение. И двамата са изброени по-долу:



  • Android Studio
  • JAVA JDK

Стъпка 3: Инсталиране на Android Studio

Преди да инсталирате Android Studio , първо ще инсталираме JAVA JDK. За да инсталирате това, щракнете върху exe файл които сте изтеглили от горната връзка и щракнете върху Напред, докато бъде успешно инсталиран. Сега преминете през следните стъпки, така че командният ред да разпознае java като външна или вътрешна команда.



  1. Отворете Контролен панел и кликнете върху Система и сигурност .
  2. Кликнете върху Система.

    Система

  3. Кликнете върху Разширена настройка на системата и след това щракнете върху Променливи на околната среда. Разширени настройки на системата

    Разширени настройки на системата

  4. В раздела Системна променлива щракнете върху пътя и след това щракнете върху редактиране. Нова Редактиране на променливата на околната среда ще се появи полето.

    Редактиране на пътя



  5. Сега отидете на C: Program Files Java във вашия компютър. Отворете папката JDK, щракнете върху папката bin и след това копирайте пътя на тази папка.

    Папка на кошчето

  6. Сега отидете в полето Редактиране на променливата на околната среда и щракнете върху ново, за да направите нова променлива. Поставете пътя, който сте копирали в горната стъпка, в новата променлива и го запазете.
  7. Сега, за да потвърдите, ако е напълно инсталиран, отворете командния ред и въведете java –версия.

    Версия на JAVA

След като успешно инсталирахте Java JDK на вашия компютър. Нека сега инсталираме Android Studio на вашия компютър. Инсталирането на този софтуер е много лесно. Трябва да отворите изтегления файл и да щракнете напред, докато софтуерът ви бъде напълно инсталиран.

Стъпка 4: Връзка с Firebase

След като инсталирахме Android Studio, нека го стартираме и направим нов проект, който да го свърже към firebase. За да направите това, следвайте следните стъпки.

  1. Стартирайте Android Studio и направете нов проект, като кликнете върху Празна дейност .
  2. Сега назовете проекта си като computerSwitc, изберете Котлин като език и изберете минималното ниво на API според вашия мобилен телефон.
  3. Тъй като ще използваме интернет, за да контролираме щифтовете на малиновия пи. Ще зададем разрешение в нашето приложение за достъп до локален wifi. За да направите това, отидете на приложение> манифести> AndroidManifest.xml и добавете следната команда.

    Разрешение за интернет

  4. Сега щракнете върху n Инструменти. Ще се появи падащо меню, от което изберете Firebase.

    Връзка с Firebase

  5. В дясната част на екрана ще се появи голямо меню, което ще предоставя менюто на почти всяка услуга, която предоставя firebase. Но в момента основният ни фокус е върху базата данни в реално време. Така че кликнете върху база данни в реално време. Връзка към „ Запазване и извличане на данни Ще се появи. Щракнете върху тази връзка.

    Firebase Assistant

  6. Свържете се Свържете се с Firebase бутон. Ще ви отведе до уеб браузъра по подразбиране. Първо ще поиска да влезете в акаунта си в Gmail. След това кликнете върху Добавете базата данни в реално време към приложението си и приемете промените.
  7. Сега отидете на Конзола на Firebase . Там ще видите вече направен проект. Логото на android на иконата на този проектор означава, че вече принадлежи към приложение за android.
  8. От Развийте меню, което се появява в лявата част на екрана, изберете База данни. Бутон на Създаване на база данни ще се появи вдясно. Кликнете върху този бутон.
  9. Ще се появи меню с искане да зададете режима на вашата база данни. Кликнете върху тестов режим и след това щракнете Активиране .

    Тестов режим

  10. Сега наистина важна стъпка, която трябва да запомните, е да промените Cloud Firestore да се База данни в реално време. За целта кликнете върху бутона, показан на изображението по-долу, и променете желаната опция.

    Firebase в реално време

  11. Сега кликнете върху Правила и променете конфигурациите на Вярно . След като всичко приключи, щракнете Публикувай .

    Промяна на конфигурациите

  12. Едно нещо, което трябва да направите, освен да свържете firebase, е да актуализирате версията на базата данни. За това кликнете върху отидете на документи . Сега кликнете върху ръководства и изберете Ръководства за Android от списъка, който се появява на екрана. Превъртете надолу, докато се появи таблица. Потърсете база данни в реално време в тази таблица и намерете нейната версия. в моя случай е така 19.1.0.

    Версия

  13. . Кликнете върху Gradle скриптове, меню от лявата страна на екрана. След това изберете построен. gradle (Модул: приложение). Сега в кода потърсете версията на базата данни в реално време и я заменете с новата.

    Версия на Firebase

  14. Сега синхронизирайте проекта, като щракнете върху бутона за синхронизиране, който се появява в горната част на екрана.

Стъпка 5: Създаване на оформление

Сега, тъй като нашето приложение за Android е свързано с firebase, нека направим оформление на нашето приложение, което ще се използва от потребителя за включване или изключване на компютъра. За да направите оформление, отидете на app> res> layout> activity_main.xml. където ще проектираме оформление. Копирайте дадения по-долу код там, за да направите текстов изглед.

 

Оформлението на нашето приложение ще изглежда така:

Оформление на приложението

Стъпка 6: Първи стъпки с 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 от Беноа Бланшон.

    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  airconditioner  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  airconditioner  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  пакети  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 от Беноа Бланшон които сте инсталирали преди. Деинсталирайте го първо и след това задайте неговата версия на 5.13.5. Сега, когато зададохме стара версия на Arduino JSON, инсталирайте я отново и прекомпилирайте кода. Този път вашият код ще се компилира успешно.

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

Кодът на този проект е много прост и накратко е обяснен по-долу. Освен това кодът с необходимите библиотеки също може да бъде изтеглен от Тук.

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

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSFID 'WIFI_SSFID' WIFI_SSFID 'WIDE' WIFI_SSID WIDE 'WIFI_SDFDagDagWide' WIFI_SSFID 'WIFI_SSIDWORD' WIFI_SSIDWIDE 'WIFI_SSFID' WIDE 'WIFI_DSFID' WIFI_SSIDWORD 'WIFI_SSIDWORD int RECV_PIN = 19; IRrecv unrecv (RECV_PIN); decode_results резултати;

2. настройка за празнота () , е цикълът, който се изпълнява при натискане на бутона за активиране или когато микроконтролерът е включен. Тук ще стартираме приемника на нашия IR сензор и ще напишем кода, за да започнем да свързваме нашия микроконтролер към локалната интернет връзка.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); revocv.enableIRIn (); // Стартиране на приемника // свързване към 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); Firebase.enableClassicRequest (firebaseData, вярно); }

3. цикъл void () е функция, която се изпълнява многократно в цикъл. Тук този код проверява дали стойностите идват от сензора.

невалиден цикъл () {if (unrecv.decode (& резултати)) {Serial.println (results.value, HEX); изхвърляне (& резултати); unrecv.resume (); // Получаваме следващата стойност} delay (500); }

Четири. void dump () е функция, която се използва за първо идентифициране на модела на дистанционното, който изпраща сигнала към сензора. той също изхвърля структурата decode_results.

невалиден дъмп (decode_results * резултати) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Неизвестно кодиране:'); } else if (results-> decode_type == NEC) {Serial.print ('Decoded NEC:'); } else if (резултати-> decode_type == SONY) {Serial.print ('Decoded SONY:'); } иначе ако (резултати-> decode_type == RC5) {Serial.print ('Decoded RC5:'); } else if (results-> decode_type == RC6) {Serial.print ('Decoded RC6:'); } to else if (results-> decode_type == PANASONIC) {Serial.print ('Decoded PANASONIC - Address:'); Serial.print (резултати-> panasonicAddress, HEX); Serial.print ('Стойност:'); } else if (results-> decode_type == JVC) {Serial.print ('Decoded JVC:'); } Serial.print (резултати-> стойност, HEX); Serial.print ('('); Serial.print (резултати-> бита, DEC); Serial.println ('бита)'); Serial.print ('Raw ('); Serial.print (count, DEC); Serial.print ('):'); за (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) резултати-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

Стъпка 8: Подготовка на хардуера

След изгаряне на кода в ESP32, трябва да подготвим хардуера и да го прикрепим към стената или всяко друго подходящо място в близост до климатика. Прикрепете компонентите към макет, като следвате схемата, представена отгоре. След сглобяване на веригата включете ESP модула с помощта на Android зарядното устройство. По-добре е да проектирате корпуса на хардуера у дома или просто да поставите хардуера в кутията на Raspberry Pi.

Стъпка 9: G iving Final Touches

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

Това беше всичко за днес, надявам се, че ще се радвате да прочетете тази статия и след като направите свой собствен прототип за управление на вашия климатик у дома, не забравяйте да споделите своя опит!