Jak ovládat klimatizaci pomocí smartphonu namísto dálkového ovladače?

Pokud se v moderním světě podíváme kolem sebe, vidíme, že vše, co zahrnuje elektroniku, je do určité míry automatizované. Nejnovější automatizační techniky přijímá několik lidí v jejich domácnostech. V této moderní době by se lidé měli rozhodnout pro nejnovější automatizační techniky, které jim usnadní život. Normálně se v našich domovech obracíme NA , VYPNUTO a nastavit teplotu ručně v našich klimatizacích. V dnešní době lze jedinou součástku, jako je reléový modul, použít k ovládání různých elektronických parametrů domu, například spínání domácích spotřebičů, sledování bezpečnostních alarmů, automatizace garážových vrat atd. V tomto článku se chystáme vyvinout systém, který vám umožní ovládat klimatizaci pomocí mobilní aplikace namísto dálkové. Protože mobilní telefon s Androidem je mezi lidmi nejběžnější, je nejlepší volbou pro ovládání naší klimatizace aplikace pro Android.



Ovládání klimatizace

Jak nastavit všechna nezbytná periferní zařízení pomocí ESP32?

Chcete-li vytvořit jakýkoli projekt, musíte vědět, jaké jsou základní komponenty, které člověk potřebuje k dokončení. Vynikajícím přístupem před zahájením práce je tedy vytvoření úplného seznamu všech komponent, které šetří čas a zabrání možnosti uvíznutí uprostřed projektu. Níže je uveden kompletní seznam všech komponent, které jsou na trhu snadno dostupné. Po uspořádání hardwarových komponent navrhneme vlastní aplikaci pro Android pro ovládání naší klimatizace:



Krok 1: Použité komponenty (hardware)

  • ESP32
  • MakerFocus I2C OLED displejový modul
  • Odpor závislý na světle
  • Tlačítkový spínač
  • IR přijímač
  • 1K ohmový rezistor (x4)
  • Tranzistor NPN BC 338
  • Propojovací kabely
  • Přijímač TSOP
  • Nepájivá deska
  • Nabíječka pro Android

Krok 2: Použité komponenty (software)

Jak budeme dělat bezdrátový přepínač , budeme potřebovat tlačítko pro zapnutí a vypnutí. K ovládání tohoto tlačítka chceme použít mobilní telefon, takže k tomu budeme muset vyvinout aplikaci. Nejpohodlnější aplikací je aplikace pro Android a pro připojení k této aplikaci musíme nainstalovat tyto dva programy. Oba jsou uvedeny níže:



  • Android Studio
  • JAVA JDK

Krok 3: Instalace Android Studio

Před instalací Android Studio nejdříve nainstalujeme JAVA JDK. Chcete-li jej nainstalovat, klikněte na ikonu exe soubor který jste stáhli z výše uvedeného odkazu, a klikejte na další, dokud nebude úspěšně nainstalován. Nyní proveďte následující kroky, aby váš příkazový řádek rozpoznal Jáva jako externí nebo interní příkaz.



  1. otevřeno Kontrolní panel a klikněte na Systém a zabezpečení .
  2. Klikněte na Systém.

    Systém

  3. Klikněte na Pokročilé nastavení systému a poté klikněte na Proměnné prostředí. Pokročilé systémové nastavení

    Pokročilé systémové nastavení

  4. V části Systémová proměnná klikněte na cestu a poté klikněte na Upravit. Nový Upravit proměnnou prostředí Zobrazí se pole.

    Upravit cestu



  5. Nyní jděte na C: Program Files Java ve vašem PC. Otevřete složku JDK, klikněte na složku bin a poté zkopírujte cestu k této složce.

    Cesta složky bin

  6. Nyní přejděte do pole Upravit proměnnou prostředí a kliknutím na nové vytvořte novou proměnnou. Vložte cestu, kterou jste zkopírovali v předchozím kroku, do nové proměnné a uložte ji.
  7. Nyní potvrďte, pokud je zcela nainstalován, otevřete příkazový řádek a zadejte java - verze.

    JAVA verze

Nyní, když jste úspěšně nainstalovali Java JDK do počítače. Nyní si do počítače nainstalujte Android Studio. Instalace tohoto softwaru je velmi snadná. Musíte otevřít stažený soubor a klikat na další, dokud nebude váš software plně nainstalován.

Krok 4: Připojení k Firebase

Nyní, když jsme nainstalovali Android Studio, spustíme jej a vytvoříme nový projekt pro připojení k firebase. Chcete-li to provést, postupujte podle následujících kroků.

  1. Spusťte Android Studio a kliknutím na ikonu vytvořte nový projekt Prázdná aktivita .
  2. Nyní pojmenujte svůj projekt jako computerSwitc, vybrat Kotlin jako jazyk a vyberte minimální úroveň API podle vašeho mobilního telefonu.
  3. Protože budeme ovládat kolíky malinové pí pomocí internetu. V naší aplikaci nastavíme oprávnění pro přístup k místní wifi. Chcete-li to provést, přejděte na aplikace> manifesty> AndroidManifest.xml a přidejte následující příkaz.

    Internetové oprávnění

  4. Nyní klikněte na n Nástroje. Zobrazí se rozevírací nabídka, ze které vyberte Firebase.

    Připojení Firebase

  5. Na pravé straně obrazovky se objeví velká nabídka, která bude poskytovat nabídku téměř každé služby, kterou firebase poskytuje. Ale právě teď se zaměřujeme hlavně na databázi v reálném čase. Klikněte tedy na Real-Time Database. Odkaz na „ Uložit a načíst data ' objeví se. Klikněte na tento odkaz.

    Firebase Assistant

  6. Připojte se Připojit k Firebase knoflík. Dostanete se do výchozího webového prohlížeče. Nejprve vás požádá, abyste se přihlásili ke svému účtu Gmail. Poté klikněte na Přidejte do své aplikace databázi v reálném čase a přijmout změny.
  7. Nyní jděte na Konzole Firebase . Zde uvidíte již vytvořený projekt. Logo Androidu na ikoně tohoto projektoru znamená, že již patří do aplikace pro Android.
  8. Z Rozvíjet nabídce, která se zobrazí na levé straně obrazovky, vyberte Databáze. Tlačítko Vytvořit databázi se zobrazí vpravo. Klikněte na toto tlačítko.
  9. Zobrazí se nabídka s požadavkem na nastavení režimu vaší databáze. Klikněte na testovací mód a poté klikněte Umožnit .

    Testovací mód

  10. Opravdu důležitým krokem k zapamatování je změna Cloud Firestore na Databáze v reálném čase. Chcete-li tak učinit, klikněte na tlačítko zobrazené na následujícím obrázku a změňte požadovanou možnost.

    Realtime Firebase

  11. Nyní klikněte na Pravidla a změňte konfigurace na Skutečný . Jakmile je vše hotovo, klikněte na Publikovat .

    Změna konfigurace

  12. Jedna věc, kterou musíte udělat kromě připojení firebase, je aktualizace verze databáze. Klikněte na přejít na dokumenty . Nyní klikněte na průvodci a vyberte Průvodci Androidem ze seznamu, který se objeví na obrazovce. Přejděte dolů, dokud se neobjeví tabulka. V této tabulce vyhledejte databázi v reálném čase a najděte její verzi. v mém případě ano 19.1.0.

    Verze

  13. . Klikněte na Gradle skripty, nabídka na levé straně obrazovky. Poté vyberte postavený. gradle (Modul: aplikace). Nyní v kódu vyhledejte verzi databáze v reálném čase a nahraďte ji novou.

    Verze Firebase

  14. Nyní synchronizujte projekt kliknutím na tlačítko synchronizace zobrazené v horní části obrazovky.

Krok 5: Vytvoření rozložení

Nyní, když je naše aplikace pro Android připojena k firebase, vytvořme rozvržení naší aplikace, které bude používáno uživatelem k zapnutí nebo vypnutí počítače. Chcete-li vytvořit rozvržení, přejděte na aplikace> res> rozložení> activity_main.xml. kde navrhneme rozvržení. Zkopírujte níže uvedený kód a vytvořte textové zobrazení.

 

Rozložení naší aplikace bude vypadat takto:

Rozložení aplikace

Krok 6: Začínáme s ESP32

Pokud jste na Arduino IDE dříve nepracovali, nemějte obavy, protože krok za krokem pro nastavení Arduino IDE je uveden níže.

  1. Stáhněte si nejnovější verzi Arduino IDE z Arduino.
  2. Připojte desku Arduino k počítači a otevřete ovládací panel. Klikněte na Hardware a zvuk. Nyní otevřeno Zařízení a tiskárna a najděte port, ke kterému je vaše deska připojena. V mém případě ano COM14 ale v různých počítačích je to jiné.

    Hledání přístavu

  3. Klikněte na Soubor a poté na Předvolby. Zkopírujte následující odkaz do složky URL dalšího správce představenstva. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Předvolby

  4. Nyní, abychom mohli používat ESP32 s Arduino IDE, musíme importovat speciální knihovny, které nám umožní vypálit kód na ESP32 a použít jej. tyto dvě knihovny jsou připojeny v níže uvedeném odkazu. Chcete-li zahrnout knihovnu, přejděte Skica> Zahrnout knihovnu> Přidat knihovnu ZIP . Zobrazí se pole. Najděte ve svém počítači složku ZIP a kliknutím na OK složky zahrňte.

    Včetně knihovny

  5. Nyní jděte na Skica> Zahrnout knihovnu> Správa knihoven.

    Správa knihoven

  6. Otevře se nabídka. Do vyhledávacího pole zadejte Arduino JSON. Zobrazí se seznam. Nainstalujte Arduino JSON od Benoita Blanchona.

    Arduino JSON

  7. Nyní klikněte na Nástroje. Zobrazí se rozbalovací nabídka. Nastavte desku na Modul ESP Dev.

    Nastavení desky

  8. Znovu klikněte na nabídku Nástroj a nastavte port, který jste dříve pozorovali na ovládacím panelu.

    Nastavení portu

  9. Nyní nahrajte kód, který je připojen v níže uvedeném odkazu, a kliknutím na tlačítko nahrávání vypálíte kód na mikrokontroléru ESP32.

    nahrát

Takže teď, když nahrajete kód, může dojít k chybě. Toto je nejčastější chyba, ke které může dojít, pokud používáte novou verzi Arduino IDE a Arduino JSON. Následují chyby, které se mohou zobrazit na obrazovce.

V souboru zahrnutém z C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, z 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 je třída z ArduinoJson 5. Další informace o upgradu programu na ArduinoJson najdete na arduinojson.org/upgrade verze 6 StaticJsonBuffer jsonBuffer; ^ V souboru zahrnutém z C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, z C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer je třída z ArduinoJson 5. Přečtěte si prosím arduinojson.org/upgrade, kde se dozvíte, jak upgradovat program na ArduinoJson verze 6 vrací StaticJsonBuffer (). ParseObject (_data); ^ Pro 'WiFi.h' bylo nalezeno více knihoven Použité: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Nepoužívá se: C:  Program Files ( x86)  Arduino  libraries  WiFi Používání knihovny WiFi ve verzi 1.0 ve složce: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Používání knihovny IOXhop_FirebaseESP32-master ve složce: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (starší) Používání knihovny HTTPClient ve verzi 1.2 ve složce: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Používání knihovny WiFiClientSecure ve verzi 1.0 ve složce: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Používání knihovny ArduinoJson na verze 6.12.0 ve složce: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson stav ukončení 1 Chyba kompilace pro deskový modul ESP32 Dev.

Není se čeho bát, protože tyto chyby můžeme eliminovat pomocí několika jednoduchých kroků. Tyto chyby vznikají, protože nová verze Arduino JSON má místo třídy jinou StaticJsonBuffer. Toto je vlastně třída JSON 5. Tuto chybu tedy můžeme jednoduše eliminovat snížením verze Arduino JSON našeho Arduino IDE. Jednoduše přejděte na Skica> Zahrnout knihovnu> Správa knihoven. Hledat Arduino JSON od Benoita Blanchona které jste nainstalovali dříve. Nejprve jej odinstalujte a poté nastavte jeho verzi na 5.13.5. Nyní, když jsme nastavili starou verzi Arduino JSON, znovu ji nainstalujte a znovu zkompilujte kód. Tentokrát se váš kód úspěšně zkompiluje.

Krok 7: Porozumění Kodexu

Kód tohoto projektu je velmi jednoduchý a je stručně vysvětlen níže. Dále lze stáhnout kód s potřebnými knihovnami Tady.

1. Na začátku musíme zahrnout dvě knihovny, které budou použity pro připojení našeho kódu k databázi Firebase, a druhou, která bude používat infračervený senzor s naším mikrokontrolérem. Potom přidáme hostitele a autentizaci naší firebase, protože poté naši ESP32 bude schopen najít naši databáze . Poté poskytneme SSID a heslo našeho místního připojení k internetu. Poté musíme vytvořit objekt, abychom mohli tlačit a vyskakovat data z našeho cloudu. Poté definujeme kolík, ke kterému bude náš senzor připojen, a také uděláme objekt pro zpracování dat pocházejících z IR senzoru.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSID 'PRO' #Define WIFI_SSID 'PRO' #Define PRO int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); výsledky decode_results;

2. neplatné nastavení () , je smyčka, která běží, když je stisknuto tlačítko povolení nebo když je mikrokontrolér zapnutý. Zde spustíme přijímač našeho infračerveného senzoru a napíšeme kód pro zahájení připojení našeho mikrokontroléru k místnímu připojení k internetu.

void setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Spusťte přijímač // připojte se k wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('připojování'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); zpoždění (500); } Serial.println (); Serial.print ('connected:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, true); }

3. neplatná smyčka () je funkce, která běží opakovaně ve smyčce. Zde tento kód kontroluje, zda hodnoty přicházejí ze snímače.

void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); výpis (& výsledky); irrecv.resume (); // Příjem další hodnoty} delay (500); }

Čtyři. výpis prázdnoty () je funkce, která se používá k první identifikaci modelu dálkového ovladače, který odesílá signál do snímače. také vypíše strukturu decode_results.

void dump (decode_results * results) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Unknown encoding:'); } else if (results-> decode_type == NEC) {Serial.print ('Decoded NEC:'); } else if (results-> decode_type == SONY) {Serial.print ('Decoded SONY:'); } else if (results-> 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 (výsledky-> panasonicAddress, HEX); Serial.print ('Hodnota:'); } else if (results-> decode_type == JVC) {Serial.print ('Decoded JVC:'); } Serial.print (výsledky-> hodnota, HEX); Serial.print ('('); Serial.print (results-> bits, DEC); Serial.println ('bits)'); Serial.print ('Raw ('); Serial.print (count, DEC); Serial.print ('):'); for (int i = 0; i rawbuf [i] * USECPERTICK, DEC); } else {Serial.print (- (int) results-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

Krok 8: Příprava hardwaru

Po vypálení kódu do ESP32 musíme připravit hardware a připevnit jej na zeď nebo jiné vhodné místo v blízkosti klimatizace. Připevněte komponenty na prkénko podle následujícího schématu nahoře. Po sestavení obvodu zapněte modul ESP pomocí nabíječky Android. Je lepší navrhnout hardware doma nebo hardware jednoduše umístit do pouzdra Raspberry Pi.

Krok 9: G iving závěrečných dotyků

Po sestavení hardwaru jej otestujeme. Připojte nabíječku Android k ESP32 a zapněte jej a ujistěte se, že váš telefon má dobrou sílu signálů z vašeho místního prostředí připojení k internetu . Otevřete aplikaci a stiskněte tlačítko, uvidíte, že nyní můžete ovládat AC pomocí mobilní aplikace.

To bylo pro dnešek vše, doufám, že byste si přečetli tento článek a po vyrobení vlastního prototypu pro ovládání vaší klimatizace doma se nezapomeňte podělit o své zkušenosti!