Hur man skapar smarta hemautomationssystem med ESP32-modulen?

I den här moderna eran växer begreppet hemautomation snabbt. Smarta system installeras på nästan alla platser. Smart Home Systems är ett koncept där alla elektriska apparater eller enheter styrs med en enda fjärrkontroll. I dessa system är fjärrkontrollen oftast en mobilapplikation. Eftersom en Android-mobil är den vanligaste bland folket, så är en Android-applikation det bästa alternativet för att styra alla dessa enheter.



Hemautomation

Så i det här projektet ska vi ansluta några av hushållets elektriska apparater till relämodulen och styra den via ESP32 Microcontroller. Vi kommer att skapa en databas i realtid och ansluta den från Android-appen. Denna Android-app skickar data till molnet och sedan skickas den till mikrokontrollern för att slå på eller av den elektriska apparaten. Det bästa är att du kan ha full kontroll över hur du byter apparater från var som helst i världen. Du behöver bara en internetanslutning för att använda Android-applikationen.



Hur man styr hushållsapparater via WiFi?

Hemautomationssystem som redan finns på marknaden är mycket kostsamma. Vi kan använda ett ESP32-kort för att ansluta olika hushållsapparater och styra dem med en Android-app. Detta kommer att ha mycket låg kostnad och ett effektivt sätt att automatisera huset. Låt oss nu gå ett steg framåt och börja samla information för att starta projektet.



Steg 1: Samla in komponenterna

Det bästa sättet att starta något projekt är att göra en lista över komponenter och gå igenom en kort studie av dessa komponenter eftersom ingen vill sticka mitt i ett projekt bara på grund av en saknad komponent. En lista över komponenter som vi ska använda i detta projekt ges nedan:



  • ESP32
  • Bakbord
  • Anslutande ledningar

Steg 2: Studera komponenterna

Nu som vi känner till sammandraget av detta projekt, låt oss gå ett steg framåt och gå igenom en kort studie av hur de viktigaste komponenterna fungerar som vi ska använda.

ESP32 är ett mikrostyrkort med låg effekt och låg kostnad som har en inbyggd WiFi och en dual-mode Bluetooth-modul. Detta Microcontroller-kort skapas och utvecklas av Espressif-system . Detta kort har inbyggda effektförstärkare, lågt mottagande förstärkare, filter och antennomkopplare. Den drivs av en Android-datakabel och kan ge upp till 3,3 V på utgången. ESP32 kör TCP / IP, full 802.11 b / g / n / e / I WLAN MAC-konvention, och särskilt Wi-Fi Direct. Detta innebär att ESP 32 kan adressera en stor del av WiFi-routrarna där ute när de används i stationsläge (klient). På samma sätt kan den skapa en åtkomstpunkt med full 802.11 b / g / n / e / I. ESP32 stöder inte bara den senaste BLE Bluetooth 4.2, utan förstärker dessutom bra Bluetooth. Det innebär i grunden att den kan adressera gamla och nya Bluetooth-telefoner / -tabeller. Om du inte har en ESP32-modul kan du också använda ESP8266 eller en Node MCU. Dessa kort kan användas för att utföra samma uppgift om de är anslutna till WiFi.

ESP32



En relämodul är en omkopplingsenhet. Det fungerar i två lägen, Normalt öppen (NO) och I vanliga fall Stängd (NC) . I NO-läge bryts kretsen alltid om du inte skickar en HÖG signal till reläet via Arduino. NC-läge förvärras tvärtom. Kretsen är alltid komplett om du inte slår på relämodulen. Se till att ansluta den positiva ledningen till din elektriska apparat till relämodulen på det sätt som visas nedan.

Montering av relämodulens krets

Steg 3: Blockera diagram

Blockdiagram

I ovanstående blockschema visas flödet för detta projekt. Reläerna är anslutna till hemmets elektriska apparater eller enheter. En mobilapp kommer att skicka en eller AV kommandot till databasen. Det här molnet är anslutet till ESP32-mikrokontrollkortet via WiFi. För att slå på den elektroniska enheten skickar vi ett '1' i databasen och för att stänga av det skickar vi ett '0' i databasen. Detta kommando hämtas sedan av mikrokontrollern eftersom det också är anslutet till databasen. Baserat på detta 0 eller 1 kommer mikrokontrollern att slå på eller av relämodulen vilket i slutändan kommer att leda till att de elektriska apparaterna kopplas om.

Så här, i den här artikeln, kommer jag att använda två relämoduler för att visa dig hela proceduren. Men du kan öka antalet reläer och lägga till samma bit kod i ditt program om du vill styra ett större antal elektriska hushållsapparater.

Steg 4: Montering av komponenterna

Nu när vi har en tydlig vision om vad vi vill göra i det här projektet, låt oss inte slösa mer tid och börja montera komponenterna.

  1. Ta en brädbräda och fixa ESP32-mikrokontrollern i den. Ta nu de två relämodulerna och anslut Vcc och jord på modulerna till Vin och jord på ESP32-mikrokontrollkortet parallellt. Anslut in-stift relämodulerna till pin34 och pin35 på ESP32-kortet. Du ser att reläerna nu är påslagna.
  2. Anslut hushållsapparaterna till relämodulen. Se till att dina anslutningar matchar anslutningarna som visas i figuren i steg 2.

Nu när vi anslöt hårdvarudelen av vårt system. Vi kommer att utveckla en Android-applikation som kommer att anslutas till Firebase-databasen. Vi kommer att göra databasen och Android-applikationen i del 2 av den här artikeln.

Steg 5: Komma igång med ESP32

Om du inte har arbetat med Arduino IDE tidigare, oroa dig inte för att steg för steg för att ställa in Arduino IDE visas nedan.

  1. Ladda ner den senaste versionen av Arduino IDE från Arduino.
  2. Anslut ditt Arduino-kort till datorn och öppna Kontrollpanelen. Klicka på Hårdvara och ljud. Nu öppen Enheter och skrivare och hitta porten som ditt kort är anslutet till. I mitt fall är det COM14 men det är annorlunda på olika datorer.

    Hitta port

  3. Klicka på Arkiv och sedan på Inställningar. Kopiera följande länk i Ytterligare styrelsens URL. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Inställningar

  4. För att använda ESP32 med Arduino IDE måste vi importera speciella bibliotek som gör att vi kan bränna kod på ESP32 och använda den. dessa två bibliotek bifogas i länken nedan. För att inkludera biblioteket, gå till Skiss> Inkludera bibliotek> Lägg till ZIP-bibliotek . En ruta visas. Hitta ZIP-mappen på din dator och klicka på OK för att inkludera mapparna.

    Inkludera bibliotek

  5. Nu går det Skiss> Inkludera bibliotek> Hantera bibliotek.

    Hantera bibliotek

  6. En meny öppnas. Skriv i sökfältet Arduino JSON. En lista visas. Installera Arduino JSON av Benoit Blanchon.

    Arduino JSON

  7. Klicka nu på Verktyg. En rullgardinsmeny visas. Ställ in brädet på ESP Dev-modul.

    Inställningsbräda

  8. Klicka på Verktyg-menyn igen och ställ in porten som du observerade på kontrollpanelen tidigare.

    Ställ in port

  9. Ladda nu upp koden som är bifogad i länken nedan och klicka på uppladdningsknappen för att bränna koden på ESP32-mikrokontrollern.

    Ladda upp

Så nu när du laddar upp koden kan ett fel inträffa. Detta är det vanligaste felet som kan uppstå om du använder en ny version av Arduino IDE och Arduino JSON. Följande är de fel som du kan se på skärmen.

I filen ingår från C:  Users  Pro  Documents  Arduino  bibliotek  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, från C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  bibliotek  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: fel: StaticJsonBuffer är en klass från ArduinoJson 5. Se arduinojson.org/upgrade för att lära dig hur du uppgraderar ditt program till ArduinoJson version 6 StaticJsonBuffer jsonBuffer; ^ I filen ingår från C:  Users  Pro  Documents  Arduino  bibliotek  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, från C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  bibliotek  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: fel: StaticJsonBuffer är en klass från ArduinoJson 5. Se arduinojson.org/upgrade för att lära dig hur du uppgraderar ditt program till ArduinoJson version 6 returnerar StaticJsonBuffer (). ParseObject (_data); ^ Flera bibliotek hittades för 'WiFi.h' Används: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  bibliotek  WiFi Används inte: C:  Program Files ( x86)  Arduino  bibliotek  WiFi Använda biblioteket WiFi i version 1.0 i mappen: C:  Användare  Pro  AppData  Lokalt  Arduino15  paket  esp32  hårdvara  esp32  1.0.2  bibliotek  WiFi Använda biblioteket IOXhop_FirebaseESP32-master i mapp: C:  Users  Pro  Documents  Arduino  bibliotek  IOXhop_FirebaseESP32-master (äldre) Använda biblioteket HTTPClient i version 1.2 i mapp: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  bibliotek  HTTPClient Använda biblioteket WiFiClientSecure vid version 1.0 i mappen: C:  Användare  Pro  AppData  Local  Arduino15  paket  esp32  hårdvara  esp32  1.0.2  bibliotek  WiFiClientSecure Använda biblioteket ArduinoJson på version 6.12.0 i mapp: C:  Users  Pro  Documents  Arduino  bibliotek  ArduinoJson utgångsstatus 1 Fel vid kompilering för ESP32 Dev-modul.

Det finns inget att oroa sig för eftersom vi kan eliminera dessa fel genom att följa några enkla steg. Dessa fel uppstår eftersom den nya versionen av Arduino JSON har en annan klass istället för StaticJsonBuffer. Detta är klassen av JSON 5. Så vi kan helt enkelt eliminera detta fel genom att nedgradera versionen av Arduino JSON av vår Arduino IDE. Gå helt enkelt till Skiss> Inkludera bibliotek> Hantera bibliotek. Söka efter Arduino JSON av Benoit Blanchon som du har installerat tidigare. Avinstallera den först och ställ sedan in versionen till 5.13.5. Nu när vi har ställt in en gammal version av Arduino JSON, installera den igen och kompilera koden igen. Den här gången kommer din kod att kompileras framgångsrikt.

För att ladda ner koden, klick här.

Steg 6: Förstå koden

Koden för detta projekt är väldigt enkel och väl kommenterad. Men ändå förklaras koden kort nedan.

1. I början ingår bibliotek så att ESP32-kortet kan anslutas till den lokala WiFi-anslutningen i hemmet eller på kontoret. Efter detta definieras en länk till ditt Firebase-projekt och autentiseringen av ditt Firebase-projekt. Sedan definieras namnet och lösenordet för din lokala wifi-anslutning så att ESP32 kan anslutas till Wifi. Vissa stift på ESP32 är definierade för att vara anslutna till relämodulerna. och äntligen förklaras en variabel som kommer att lagra tillfällig data som kommer från Firebase-molnet.

#include // include library to connect to the local Wifi connection #include // Include library to connect to Firebase databse #define FIREBASE_HOST 'coma-patient.firebaseio.com' // include the link of your firebase project #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10FE '// Inkludera autentisering av ditt firebase-projekt #define WIFI_SSID' abcd '// namnet på WiFi-anslutningen för ditt hem eller kontor #define WIFI_PASSWORD' abcd '// lösenord för WiFi-anslutningen till ditt hem eller kontor int r1 = 34; // stift för att ansluta relä 1 int r2 = 35; // stift för att ansluta relä 2 int temp; // variabe för att överföra data

2. ogiltig installation () är en funktion där vi initialiserar INPUT- eller OUTPUT-stiften. Denna funktion ställer också in baudhastigheten med Serial.begin () kommando. Baud Rate är mikrokontrollerns kommunikationshastighet. Vissa kodrader läggs till här för att ansluta ESP32 till den lokala wifi-anslutningen. Tavlan försöker ansluta till den lokala wifi-anslutningen och skriver ut 'anslutning'. i den seriella bildskärmen. Det skrivs ut 'Connected' när anslutningen upprättas. Så för att övervaka detta är det bättre att öppna den seriella bildskärmen och kontrollera dess staus där.

ogiltig installation () {Serial.begin (115200); // ställa in överföringshastighet // ansluta till wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('anslutande'); medan (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); fördröjning (500); } Serial.println (); Serial.print ('ansluten:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. ogiltig slinga () är en funktion som körs upprepade gånger i en slinga. I den här slingan skriver vi en kod som berättar för mikrokontrollerkortet vilka uppgifter som ska utföras och hur. Vi har hämtat data mot ljus och AC från databasen och lagras i de två tillfälliga variablerna. Därefter tillämpas fyra villkor för att byta de två apparaterna enligt det hämtade 0 eller 1 från databasen.

void loop () {// get value temp1 = Serial.println (Firebase.getFloat ('light')); // få värdet för switcching av ljus temp2 = Serial.println (Firebase.getFloat ('AC')); // få värden för att byta fläktfördröjning (1000); if (temp1 == 1 && temp2 == 1) {// Att tända ljus och fläkt digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// För att slå på fläkten och stänga av ljus digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Att stänga av fläkten och slå på light digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// För att stänga av fläkten och stänga av ljus digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}

Detta var del ett av “Hur man skapar smarta hemsystem med ESP32?”. Du kan lägga till fler relämoduler om du vill styra några fler hushållsapparater, det enda du behöver göra är att läsa data från eldstaden och lägga till några fler villkor för bytet. I nästa artikel kommer jag att förklara hur man utvecklar en Android-applikation och Firebase-databas. Jag kommer att förklara steg för steg-proceduren för att ansluta Android-appen till Firebase och skicka data till den.

För att gå till nästa handledning Klicka här