Hvordan kontrollere klimaanlegget ditt med smarttelefonen i stedet for fjernkontrollen?

I den moderne verden, hvis vi ser oss rundt, kan vi se at alt som inkluderer elektronikk er automatisert til en viss grad. De nyeste automatiseringsteknikkene er tatt i bruk av noen få mennesker i hjemmene sine. I denne moderne tiden bør folk velge de nyeste automatiseringsteknikkene for å gjøre livet enklere. Normalt snur vi hjemme , AV og still inn temperaturen manuelt i klimaanleggene våre. I dag kan en enkelt komponent som en relémodul brukes til å kontrollere forskjellige elektroniske parametere i et hus, for eksempel bytte av husholdningsapparater, overvåking av sikkerhetsalarmer, garasjeportautomatisering etc. I denne artikkelen skal vi utvikle en systemet som lar deg kontrollere klimaanlegget ditt ved å bruke en mobilapplikasjon i stedet for fjernkontrollen. Som en Android-mobil er den vanligste blant folket, så er en Android-applikasjon det beste alternativet for å kontrollere klimaanlegget vårt.



Klimaanleggskontroll

Hvordan konfigurere alle nødvendige eksterne enheter med ESP32?

For å lage et prosjekt, må man vite hva de grunnleggende komponentene man trenger for å fullføre det. Så en utmerket tilnærming før du starter arbeidet er å lage en komplett liste over alle komponentene for å spare tid og for å unngå sjansen for å bli sittende fast midt i prosjektet. En komplett liste over alle komponentene som er lett tilgjengelige i markedet er gitt nedenfor. Etter å ha ordnet maskinvarekomponentene vil vi designe vår egen Android-applikasjon for å kontrollere klimaanlegget vårt:



Trinn 1: Komponenter som brukes (maskinvare)

  • ESP32
  • MakerFocus I2C OLED-skjermmodul
  • Lysavhengig motstand
  • Trykknappbryter
  • IR-mottaker
  • 1K ohm motstand (x4)
  • BC 338 NPN-transistor
  • Jumperkabler
  • TSOP-mottaker
  • Brettbrett
  • Android-lader

Trinn 2: Komponenter som brukes (programvare)

Som vi skal lage en trådløs bryter , trenger vi en knapp for å slå den på og av. Vi vil bruke en mobiltelefon til å betjene denne knappen, så vi må utvikle en applikasjon for det. Det mest praktiske programmet er et android-program, og vi må installere disse to programvarene for å koble til det programmet. Begge er listet opp nedenfor:



  • Android Studio
  • JAVA JDK

Trinn 3: Installere Android Studio

Før installasjon Android Studio , installerer vi JAVA JDK først. For å installere dette, klikk på exe fil som du lastet ned fra lenken ovenfor, og klikk på neste til den er installert. Gå nå gjennom følgende trinn slik at ledeteksten din gjenkjenner java som en ekstern eller intern kommando.



  1. Åpen Kontrollpanel og klikk på System og sikkerhet .
  2. Klikk på System.

    System

  3. Klikk på Avansert systeminnstilling og klikk deretter på Miljøvariabler. Avanserte systeminnstillinger

    Avanserte systeminnstillinger

  4. I delen Systemvariabel, klikk på banen og klikk deretter på rediger. En ny Rediger miljøvariabel vises.

    Rediger bane



  5. Gå nå til C: Program Files Java på din PC. Åpne JDK-mappen, klikk på papirkurvmappen og kopier deretter banen til den mappen.

    Path Of Bin Folder

  6. Gå nå til boksen Rediger miljøvariabel og klikk på ny for å lage en ny variabel. Lim inn banen du kopierte i trinnet ovenfor i den nye variabelen, og lagre den.
  7. Nå for å bekrefte, hvis den er fullstendig installert, åpner du ledeteksten og skriver java –versjon.

    JAVA-versjon

Nå som du har installert Java JDK på datamaskinen din. La oss nå installere Android Studio på datamaskinen din. Det er veldig enkelt å installere denne programvaren. Du må åpne den nedlastede filen og klikke neste til programvaren er fullinstallert.

Trinn 4: Tilkobling til Firebase

Nå som vi har installert Android Studio, la oss starte det og lage et nytt prosjekt for å koble det til firebase. Følg trinnene nedenfor for å gjøre dette.

  1. Start Android Studio og lag et nytt prosjekt ved å klikke på Tom aktivitet .
  2. Gi navnet ditt prosjekt som datamaskinSwitc, plukke ut Kotlin som språk, og velg minimum API-nivå i henhold til mobiltelefonen din.
  3. Siden vi skal bruke internett til å kontrollere pinnene på bringebær-pi. Vi setter tillatelse i appen vår for å få tilgang til lokal wifi. For å gjøre dette, gå til app> manifesterer> AndroidManifest.xml og legg til følgende kommando.

    Internett-tillatelse

  4. Klikk nå n Verktøy. En rullegardinmeny vises der du velger Firebase.

    Firebase-tilkobling

  5. En stor meny vises på høyre side av skjermen som vil gi menyen til nesten alle tjenester som firebase tilbyr. Men akkurat nå er vårt hovedfokus på sanntidsdatabase. Så klikk på sanntidsdatabase. En lenke til “ Lagre og hente data ' vil dukke opp. Klikk på lenken.

    Firebase Assistant

  6. Koble til Koble til Firebase knapp. Det tar deg til standard nettleser. Først vil den be deg om å logge på Gmail-kontoen din. Klikk deretter på Legg til sanntidsdatabasen i appen din og godta endringene.
  7. Gå nå til Firebase-konsoll . Der vil du se et prosjekt som allerede er laget. Android-logoen på prosjektets ikon betyr at den allerede tilhører en android-applikasjon.
  8. Fra Utvikle menyen som vises på venstre side av skjermen, velger du Database. En knapp av Opprett database vises til høyre. Klikk på den knappen.
  9. Det vises en meny som ber om å stille inn modusen til databasen din. Klikk på testmodus og klikk deretter Muliggjøre .

    Testmodus

  10. Nå er et veldig viktig skritt å huske å endre Cloud Firestore til Sanntidsdatabase. For å gjøre det, klikk på knappen vist i bildet nedenfor og endre ønsket alternativ.

    Firebase i sanntid

  11. Klikk nå på Regler kategorien og endre konfigurasjonene til ekte . Når alt er gjort, klikker du publisere .

    Endre konfigurasjoner

  12. En ting du må gjøre annet enn å koble til firebase, er å oppdatere databaseversjonen. For å klikke på gå til dokumenter . Klikk nå på guider og velg Android-guider fra listen som vises på skjermen. Rull ned til en tabell vises. Se etter sanntidsdatabase i den tabellen og finn versjonen. i mitt tilfelle er det det 19.1.0.

    Versjon

  13. . Klikk på Gradle-skript, en meny på venstre side av skjermen. Velg deretter bygget. gradering (Modul: app). Nå i koden, søk etter versjonen av sanntidsdatabasen og erstatt den med den nye.

    Firebase-versjon

  14. Synkroniser nå prosjektet ved å klikke på synkroniseringsknappen som vises øverst på skjermen.

Trinn 5: Lag layout

Nå som Android-applikasjonen vår er koblet til firebasen, la oss lage et oppsett av appen vår som skal brukes av brukeren til å slå datamaskinen av eller på. For å lage et oppsett, gå til app> res> layout> activity_main.xml. hvor vi skal designe et oppsett. Kopier koden nedenfor der for å lage en tekstvisning.

 

Oppsettet til appen vår vil se slik ut:

Søknadsoppsett

Trinn 6: Komme i gang med ESP32

Hvis du ikke har jobbet med Arduino IDE før, ikke bekymre deg fordi trinn for trinn for å sette opp Arduino IDE vises nedenfor.

  1. Last ned den nyeste versjonen av Arduino IDE fra Arduino.
  2. Koble Arduino-kortet til PC-en og åpne Kontrollpanel. Klikk på Maskinvare og lyd. Nå åpen Enheter og skriver og finn porten som kortet ditt er koblet til. I mitt tilfelle er det COM14 men det er annerledes på forskjellige datamaskiner.

    Finne havn

  3. Klikk på Fil og deretter på Innstillinger. Kopier følgende lenke i Tilleggsstyrelederens URL. “ https://dl.espressif.com/dl/package_esp32_index.json '

    Preferanser

  4. For å bruke ESP32 med Arduino IDE, må vi importere spesielle biblioteker som lar oss brenne koden på ESP32 og bruke den. disse to bibliotekene er vedlagt i lenken nedenfor. For å inkludere biblioteket, gå til Skisse> Inkluder bibliotek> Legg til ZIP-bibliotek . En rute vises. Finn ZIP-mappen på datamaskinen din, og klikk OK for å inkludere mappene.

    Inkludert bibliotek

  5. Gå nå til Skisse> Inkluder bibliotek> Administrer biblioteker.

    Administrer bibliotekene

  6. En meny åpnes. Skriv inn i søkefeltet Arduino JSON. En liste vises. Installere Arduino JSON av Benoit Blanchon.

    Arduino JSON

  7. Klikk nå på Verktøy. En rullegardinmeny vises. Sett brettet til ESP Dev-modul.

    Sette styret

  8. Klikk på Verktøy-menyen igjen og sett porten du observerte i kontrollpanelet før.

    Innstilling av port

  9. Last nå opp koden som er vedlagt i lenken under, og klikk på opplastingsknappen for å brenne koden på ESP32-mikrokontrolleren.

    Laste opp

Så når du laster opp koden, kan det oppstå en feil. Dette er den vanligste feilen som kan oppstå hvis du bruker en ny versjon av Arduino IDE og Arduino JSON. Følgende er feilene du kan se på skjermen.

I filen inkludert fra C:  Users  Pro  Documents  Arduino  biblioteker  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, fra C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  biblioteker  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: feil: StaticJsonBuffer er en klasse fra ArduinoJson 5. Se arduinojson.org/upgrade for å lære hvordan du oppgraderer programmet ditt til ArduinoJson versjon 6 StaticJsonBuffer jsonBuffer; ^ I filen inkludert fra C:  Users  Pro  Documents  Arduino  biblioteker  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, fra C:  Users  Pro  Desktop  airconditioner  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  biblioteker  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: feil: StaticJsonBuffer er en klasse fra ArduinoJson 5. Se arduinojson.org/upgrade for å lære hvordan du oppgraderer programmet til ArduinoJson versjon 6 returnerer StaticJsonBuffer (). ParseObject (_data); ^ Flere biblioteker ble funnet for 'WiFi.h' Brukt: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  biblioteker  WiFi Ikke brukt: C:  Program Files ( x86)  Arduino  biblioteker  WiFi Bruker biblioteket WiFi i versjon 1.0 i mappen: C:  Brukere  Pro  AppData  Lokalt  Arduino15  pakker  esp32  maskinvare  esp32  1.0.2  biblioteker  WiFi Bruker biblioteket IOXhop_FirebaseESP32-master i mappe: C:  Brukere  Pro  Dokumenter  Arduino  biblioteker  IOXhop_FirebaseESP32-master (eldre) Bruke bibliotek HTTPClient i versjon 1.2 i mappe: C:  Brukere  Pro  AppData  Lokal  Arduino15  pakker  esp32  maskinvare  esp32  1.0.2  biblioteker  HTTPClient ved hjelp av bibliotek WiFiClientSecure i versjon 1.0 i mappe: C:  Users  Pro  AppData  Local  Arduino15  Packages  esp32  hardware  esp32  1.0.2  biblioteker  WiFiClientSecure Ved hjelp av bibliotek ArduinoJson på versjon 6.12.0 i mappe: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Feil under kompilering for ESP32 Dev-modul.

Det er ingenting å bekymre seg for, fordi vi kan eliminere disse feilene ved å følge noen enkle trinn. Disse feilene oppstår fordi den nye versjonen av Arduino JSON har en annen klasse i stedet for StaticJsonBuffer. Dette er faktisk klassen til JSON 5. Så vi kan ganske enkelt eliminere denne feilen ved å nedgradere versjonen av Arduino JSON av vår Arduino IDE. Bare gå til Skisse> Inkluder bibliotek> Administrer biblioteker. Søk etter Arduino JSON av Benoit Blanchon som du har installert før. Avinstaller den først, og sett deretter versjonen til 5.13.5. Nå som vi har satt en gammel versjon av Arduino JSON, installerer du den igjen og kompilerer koden på nytt. Denne gangen vil koden din kompileres.

Trinn 7: Forstå koden

Koden til dette prosjektet er veldig enkel og forklares kort nedenfor. Videre kan koden med nødvendige biblioteker også lastes ned fra Her.

1. I begynnelsen må vi inkludere to biblioteker som skal brukes til å koble koden vår til Firebase-databasen, og den andre som bruker IR-sensoren med mikrokontrolleren vår. Deretter vil vi legge til vert og autentisering av vår firebase fordi etter det vår ESP32 kunne finne vår database . Deretter vil vi oppgi SSID og passordet til vår lokale internettforbindelse. Deretter må vi lage et objekt slik at vi kan skyve og poppe data fra skyen vår. Deretter vil vi definere pinnen som sensoren vår skal kobles til, og vi vil også lage et objekt for å håndtere data som kommer fra IR-sensoren.

#include #include #include #define FIREBASE_HOST 'coma-patient.firebaseio.com' #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf' #define WIFI_SSID 'PRO' #define WIFdata int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); avkode_resultater;

2. ugyldig oppsett () , er sløyfen som går når aktiveringsknappen trykkes eller når mikrokontrolleren slås på. Her starter vi mottakeren av IR-sensoren vår og skriver koden for å koble mikrokontrolleren vår til den lokale internettforbindelsen.

ugyldig oppsett () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Start mottakeren // koble til wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('tilkobling'); mens (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); forsinkelse (500); } Serial.println (); Serial.print ('tilkoblet:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, true); }

3. ugyldig sløyfe () er en funksjon som går gjentatte ganger i en løkke. Her sjekker denne koden om verdiene kommer fra sensoren.

ugyldig sløyfe () {if (irrecv.decode (& resultater)) {Serial.println (results.value, HEX); dump (& resultater); irrecv.resume (); // Motta neste verdi} forsinkelse (500); }

Fire. ugyldig dump () er en funksjon som brukes til å først identifisere modellen på fjernkontrollen som sender signalet til sensoren. det dumper også decode_results-strukturen.

ugyldig dump (decode_results * results) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ('Ukjent koding:'); } annet hvis (results-> decode_type == NEC) {Serial.print ('Decoded NEC:'); } annet hvis (results-> decode_type == SONY) {Serial.print ('Decoded SONY:'); } annet hvis (results-> decode_type == RC5) {Serial.print ('Decoded RC5:'); } annet hvis (results-> decode_type == RC6) {Serial.print ('Decoded RC6:'); } til annet hvis (resultat-> dekode_type == PANASONIC) {Serial.print ('Dekodert PANASONIC - Adresse:'); Serial.print (resultater-> panasonicAddress, HEX); Serial.print ('Verdi:'); } annet hvis (results-> decode_type == JVC) {Serial.print ('Decoded JVC:'); } Serial.print (resultat-> verdi, 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); } annet {Serial.print (- (int) results-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (''); } Serial.println (''); }

Trinn 8: Klargjøre maskinvaren

Etter å ha brent koden i ESP32, må vi klargjøre maskinvaren og feste den på veggen eller et hvilket som helst annet passende sted nær klimaanlegget. Fest komponentene på brødplaten ved å følge diagrammet som er presentert øverst. Etter å ha satt sammen kretsen, må du slå på ESP-modulen ved hjelp av Android Charger. Det er bedre å designe kabinettet til maskinvaren hjemme eller bare sette maskinvaren i Raspberry Pi-saken.

Trinn 9: G iving siste finpuss

Etter montering av maskinvaren vil vi teste den. Koble Android-laderen til ESP32, og slå den på, og sørg for at telefonen har god signalstyrke fra din lokale Internett-tilkobling . Åpne applikasjonen din og trykk på knappen, så ser du at du nå kan kontrollere vekselstrømmen din med mobilapplikasjonen.

Det var alt i dag, jeg håper du hadde likt å lese denne artikkelen, og etter å ha laget din egen prototype for å kontrollere klimaanlegget ditt hjemme, ikke glem å dele din erfaring!