Hoe kunt u uw airconditioner bedienen met uw smartphone in plaats van met de afstandsbediening?

Als we in de moderne wereld rondkijken, kunnen we zien dat alles wat elektronica omvat tot op zekere hoogte is geautomatiseerd. De nieuwste automatiseringstechnieken worden door een paar mensen thuis overgenomen. In dit moderne tijdperk moeten mensen kiezen voor de nieuwste automatiseringstechnieken om hun leven gemakkelijker te maken. Normaal gesproken draaien we bij ons thuis AAN, UIT en stel de temperatuur handmatig in onze airconditioners in. Tegenwoordig kan een enkele component zoals een relaismodule worden gebruikt om verschillende elektronische parameters van een huis te besturen, bijvoorbeeld het schakelen van huishoudelijke apparaten, bewaking van beveiligingsalarmen, automatisering van garagedeuren, enz. In dit artikel gaan we een systeem waarmee u uw airconditioner kunt bedienen met behulp van een mobiele applicatie in plaats van de afstandsbediening. Omdat een Android-mobiel het meest voorkomt onder de mensen, is een Android-applicatie de beste optie om onze airconditioner te bedienen.

Hoe alle benodigde randapparatuur met ESP32 te installeren?

Om een ​​project te maken, moet men weten wat de basiscomponenten zijn die men nodig heeft om het te voltooien. Een uitstekende aanpak voordat u met de werkzaamheden begint, is dus om een ​​volledige lijst van alle componenten te maken om tijd te besparen en om te voorkomen dat u midden in het project vastloopt. Hieronder vindt u een volledige lijst van alle componenten die gemakkelijk op de markt verkrijgbaar zijn. Na het regelen van de hardwarecomponenten zullen we onze eigen Android-applicatie ontwerpen om onze airconditioner te besturen:

Stap 1: Gebruikte componenten (hardware)

Stap 2: Gebruikte componenten (software)

Omdat we een draadloze schakelaar gaan maken, hebben we een knop nodig om deze aan en uit te zetten. We willen een mobiele telefoon gebruiken om deze knop te bedienen, dus daarvoor zullen we een applicatie moeten ontwikkelen. De handigste applicatie is een Android-applicatie en we moeten deze twee software installeren om verbinding te maken met die applicatie. Beiden zijn hieronder opgesomd:

Stap 3: Android Studio installeren

Voordat we Android Studio installeren, zullen we eerst JAVA JDK installeren. Om dit te installeren, klikt u op het exe het dossier die u via de bovenstaande link hebt gedownload, en klik op Volgende totdat het met succes is geïnstalleerd. Doorloop nu de volgende stappen zodat uw opdrachtprompt java herkent als een externe of interne opdracht.

  1. Open Controlepaneel en klik op Systeem en veiligheid.
  2. Klik op Systeem.
  3. Klik op Geavanceerde systeeminstellingen en klik vervolgens op Omgevingsvariabelen.
  4. Klik in het gedeelte Systeemvariabele op het pad en klik vervolgens op bewerken. Een nieuw Bewerk omgevingsvariabelebox zal verschijnen.
  5. Ga nu naar C: \ Program Files \ Java op uw pc. Open de JDK-map, klik op de bin-map en kopieer het pad van die map.
  6. Ga nu naar het vak Wijzig omgevingsvariabele en klik op nieuw om een ​​nieuwe variabele te maken. Plak het pad dat u in de bovenstaande stap hebt gekopieerd in de nieuwe variabele en sla het op.
  7. Om te bevestigen of het volledig is geïnstalleerd, opent u de opdrachtprompt en typt u java –versie.

Nu u met succes Java JDK op uw computer hebt geïnstalleerd. Laten we nu Android Studio op uw computer installeren. Het installeren van deze software is heel eenvoudig. U moet het gedownloade bestand openen en op Volgende klikken totdat uw software volledig is geïnstalleerd.

Stap 4: Verbinding met Firebase

Nu we Android Studio hebben geïnstalleerd, kunnen we het starten en een nieuw project maken om het met de firebase te verbinden. Volg hiervoor de volgende stappen.

  1. Start Android Studio en maak een nieuw project door op het Lege activiteit.
  2. Noem uw project nu als computerSwitch,selecteer Kotlinals taal en selecteer het minimale API-niveau volgens uw mobiele telefoon.
  3. Omdat we internet gaan gebruiken om de pinnen van de framboos pi te bedienen. We zullen toestemming in onze app instellen om toegang te krijgen tot lokale wifi. Ga hiervoor naar app> manifesten> AndroidManifest.xml en voeg de volgende opdracht toe.
  4. Klik nu op n Hulpmiddelen.Er verschijnt een vervolgkeuzemenu waaruit u kunt selecteren Firebase.
  5. Aan de rechterkant van het scherm verschijnt een groot menu met het menu van bijna elke service die firebase biedt. Maar op dit moment ligt onze belangrijkste focus op Real-Time Database. Dus klik op Real-Time Database. Een link naar "Gegevens opslaan en ophalen" zal verschijnen. Klik op die link.
  6. Maak verbinding Maak verbinding met Firebaseknop. Het brengt u naar de standaardwebbrowser. Eerst wordt u gevraagd om in te loggen op uw Gmail-account. Klik dan op Voeg de Realtime Database toe aan uw appen accepteer de wijzigingen.
  7. Ga nu naar Firebase Console. Daar ziet u een reeds gemaakt project. Het Android-logo op het pictogram van dat project betekent dat het al bij een Android-applicatie hoort.
  8. Van de Ontwikkelen menu dat aan de linkerkant van het scherm verschijnt, selecteert u Database. Een knop van Maak een database verschijnt aan de rechterkant. Klik op die knop.
  9. Er verschijnt een menu waarin u wordt gevraagd de modus van uw database in te stellen. Klik op testmodusen klik vervolgens op Inschakelen.
  10. Een heel belangrijke stap om te onthouden is het wijzigen van de Cloud Firestore naar Realtime database.Klik hiervoor op de knop in de onderstaande afbeelding en verander de gewenste optie.
  11. Klik nu op het Reglement tabblad en verander de configuraties in Klopt. Als alles klaar is, klikt u op Publiceren.
  12. Een ding dat u moet doen, behalve het verbinden van de firebase, is de databaseversie bijwerken. Klik daarvoor op ga naar docs. Klik nu op gidsenen selecteer Android-gidsenuit de lijst die op het scherm verschijnt. Scroll naar beneden tot een tabel verschijnt. Zoek naar Real-Time Database in die tabel en zoek de versie ervan. in mijn geval is dat zo 19.1.0.
  13. . Klik op Gradle-scripts,een menu aan de linkerkant van het scherm. Selecteer vervolgens gebouwd. gradle (Module: app). Zoek nu in de code naar de versie van de Real-Time-database en vervang deze door de nieuwe.
  14. Synchroniseer nu het project door op de synchronisatieknop bovenaan het scherm te klikken.

Stap 5: Layout maken

Nu onze Android-applicatie is verbonden met de firebase, kunnen we een lay-out van onze app maken die door de gebruiker zal worden gebruikt om de computer aan of uit te zetten. Ga naar om een ​​lay-out te maken app> res> layout> activity_main.xml. waar we een lay-out zullen ontwerpen. Kopieer de onderstaande code om een ​​tekstweergave te maken.

        

De lay-out van onze app ziet er als volgt uit:

Stap 6: Aan de slag met ESP32

Als u nog niet eerder aan Arduino IDE hebt gewerkt, hoeft u zich geen zorgen te maken, want hieronder wordt stap voor stap weergegeven hoe u de Arduino IDE instelt.

  1. Download de nieuwste versie van Arduino IDE van Arduino.
  2. Verbind je Arduino-bord met de pc en open het Configuratiescherm. Klik op Hardware en geluid.Nu open Apparaten en printer en zoek de poort waarop je board is aangesloten. In mijn geval wel COM14maar het is anders op verschillende computers.
  3. Klik op Bestand en vervolgens op Voorkeuren. Kopieer de volgende link in het URL van aanvullende Board Manager. "https://dl.espressif.com/dl/package_esp32_index.json ”
  4. Om ESP32 met Arduino IDE te gebruiken, moeten we speciale bibliotheken importeren waarmee we code op ESP32 kunnen branden en gebruiken. deze twee bibliotheken zijn bijgevoegd in de onderstaande link. Ga naar om de bibliotheek op te nemen Schets> Bibliotheek opnemen> ZIP-bibliotheek toevoegen. Er verschijnt een vak. Zoek de ZIP-map op uw computer en klik op OK om de mappen op te nemen.
  5. Ga nu naar Schets> Bibliotheek opnemen> Bibliotheken beheren.
  6. Er wordt een menu geopend. Typ in de zoekbalk Arduino JSON.Er verschijnt een lijst. Installeren Arduino JSON door Benoit Blanchon.
  7. Klik nu op het Hulpmiddelen.Er verschijnt een vervolgkeuzemenu. Zet het bord op ESP-ontwikkelmodule.
  8. Klik opnieuw op het menu Tool en stel de poort in die u eerder in het configuratiescherm hebt waargenomen.
  9. Upload nu de code die is bijgevoegd in de onderstaande link en klik op de uploadknop om de code op de ESP32-microcontroller te branden.

Dus nu, wanneer u de code uploadt, kan er een fout optreden. Dit is de meest voorkomende fout die kan optreden als u een nieuwe versie van de Arduino IDE en de Arduino JSON gebruikt. Hieronder volgen de fouten die u mogelijk op het scherm ziet.

In bestand opgenomen uit C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, vanuit C: \ Users \ Pro \ Desktop \ airconditioner \ code \ code.ino: 2: C : \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: fout: StaticJsonBuffer is een klasse van ArduinoJson 5. Zie arduinojson.org/upgrade voor informatie over het upgraden van uw programma naar ArduinoJson versie 6 StaticJsonBuffer jsonBuffer; ^ In bestand opgenomen uit C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, vanuit C: \ Users \ Pro \ Desktop \ airconditioner \ code \ code.ino: 2: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: fout: StaticJsonBuffer is een klasse van ArduinoJson 5. Zie arduinojson.org/upgrade om te zien hoe u uw programma kunt upgraden naar ArduinoJson versie 6 retourneert StaticJsonBuffer() .parseObject (_data); ^ Er zijn meerdere bibliotheken gevonden voor "WiFi.h" Gebruikt: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ pakketten \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ WiFi Niet gebruikt: C: \ Program Files ( x86) \ Arduino \ bibliotheken \ WiFi Bibliotheek-WiFi gebruiken op versie 1.0 in map: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ pakketten \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ WiFi Bibliotheek gebruiken IOXhop_FirebaseESP32-master in map: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master (legacy) Met behulp van bibliotheek HTTPClient op versie 1.2 in map: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ HTTPClient Bibliotheek WiFiClientSecure gebruiken op versie 1.0 in map: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ pakketten \ esp32 \ hardware \ esp32 \ 1.0.2 \ bibliotheken \ WiFiClientSecure Bibliotheek ArduinoJson gebruiken op versie 6.12.0 in map: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ ArduinoJson exit status 1 Fout bij compileren voor board ESP32 Dev Module.

U hoeft zich nergens zorgen over te maken, want we kunnen deze fouten verhelpen door enkele eenvoudige stappen te volgen. Deze fouten ontstaan ​​omdat de nieuwe versie van Arduino JSON een andere klasse heeft in plaats van StaticJsonBuffer.Dit is eigenlijk de klasse van JSON 5. We kunnen deze fout dus eenvoudig elimineren door de versie van Arduino JSON van onze Arduino IDE te downgraden. Ga gewoon naar Schets> Bibliotheek opnemen> Bibliotheken beheren.Zoeken naarArduino JSON door Benoit Blanchondie je eerder hebt geïnstalleerd. Verwijder het eerst en stel vervolgens de versie in op 5.13.5. Nu we een oude versie van Arduino JSON hebben ingesteld, installeer je deze opnieuw en compileer je de code opnieuw. Deze keer zal uw code met succes worden gecompileerd.

Stap 7: de code begrijpen

De code van dit project is heel eenvoudig en wordt hieronder kort uitgelegd. Verder kan de code met de nodige bibliotheken ook vanaf Here worden gedownload.

1. In het begin moeten we twee bibliotheken toevoegen die zullen worden gebruikt om onze code te verbinden met de Firebase-database en de tweede om de IR-sensor te gebruiken met onze microcontroller. Dan zullen we de host en authenticatie van onze firebase toevoegen, want daarna onze ESP32 zou onze kunnen vinden database. Vervolgens zullen we de SSID en het wachtwoord van onze lokale internetverbinding verstrekken. Vervolgens moeten we een object maken zodat we gegevens uit onze cloud kunnen pushen en poppen. Vervolgens zullen we de pin definiëren waarop onze sensor zal worden aangesloten en we zullen ook een object maken om gegevens te verwerken die van de IR-sensor komen.

#inclusief #inclusief  #inclusief   #define FIREBASE_HOST "coma-patient.firebaseio.com" #define FIREBASE_AUTH "UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf" #define WIFI_SSID "PRO" #define WIFI_PASSWORD "abcdefgh" FirebaseData; int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); decode_results resultaten;

2. leegte setup (), is de lus die wordt uitgevoerd wanneer de inschakelknop wordt ingedrukt of wanneer de microcontroller wordt ingeschakeld. Hier zullen we de ontvanger van onze IR-sensor starten en de code schrijven om onze microcontroller met de lokale internetverbinding te verbinden.

leegte setup () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Start de ontvanger // maak verbinding met wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ("verbinden"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vertraging (500); } Serial.println (); Serial.print ("verbonden:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); Firebase.enableClassicRequest (firebaseData, true); }

3. leegte lus () is een functie die herhaaldelijk in een lus wordt uitgevoerd. Hier controleert deze code of de waarden van de sensor komen.

void loop () {if (irrecv.decode (& resultaten)) {Serial.println (results.value, HEX); dump (& resultaten); irrecv.resume (); // Ontvang de volgende waarde} vertraging (500); }

4. leegte dump ()is een functie die wordt gebruikt om eerst het model van de afstandsbediening te identificeren dat het signaal naar de sensor stuurt. het dumpt ook de structuur decode_results.

ongeldige dump (decode_results * resultaten) {int count = results-> rawlen; if (results-> decode_type == ONBEKEND) {Serial.print ("Onbekende codering:"); } 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:"); } naar anders if (results-> decode_type == PANASONIC) {Serial.print ("Decoded PANASONIC - Adres:"); Serial.print (resultaten-> panasonicAddress, HEX); Serial.print ("Waarde:"); } else if (results-> decode_type == JVC) {Serial.print ("Decoded JVC:"); } Serial.print (resultaten-> waarde, HEX); Serial.print ("("); Serial.print (resultaten-> bits, DEC); Serial.println ("bits)"); Serial.print ("Raw ("); Serial.print (count, DEC); Serial.print ("):"); voor (int i = 0; i  rawbuf [i] * USECPERTICK, DEC); } anders {Serial.print (- (int) resultaten-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (""); } Serial.println (""); }

Stap 8: De hardware voorbereiden

Nadat we de code in de ESP32 hebben gebrand, moeten we de hardware voorbereiden en deze aan de muur of een andere geschikte plaats in de buurt van de airconditioner bevestigen. Bevestig de componenten op het breadboard door het diagram bovenaan te volgen. Na het monteren van het circuit, start u de ESP-module op met behulp van de Android-oplader. Het is beter om de behuizing van de hardware thuis te ontwerpen of de hardware gewoon in de Raspberry Pi-behuizing te plaatsen.

Stap 9: Giving Final Touches

Na montage van de hardware gaan we deze testen. Sluit de Android-oplader aan op de ESP32 en zet hem aan en zorg ervoor dat je telefoon een goede signaalsterkte van je lokale internetverbinding heeft. Open uw applicatie en druk op de knop, u zult zien dat u nu uw AC kunt bedienen met uw mobiele applicatie.

Dat was alles voor vandaag, ik hoop dat je dit artikel met veel plezier zou hebben gelezen en vergeet na het maken van je eigen prototype voor het bedienen van je airconditioner thuis niet je ervaringen te delen!

Facebook Twitter Google Plus Pinterest