Com fer un sistema domòtic intel·ligent mitjançant el mòdul ESP32?

En aquesta era moderna, el concepte de domòtica creix a gran velocitat. S’instal·len sistemes intel·ligents a gairebé tots els llocs. Smart Home Systems és un concepte en què tots els aparells elèctrics o dispositius es controlen mitjançant un sol comandament a distància. En aquests sistemes, la majoria de les vegades, el control remot és una aplicació mòbil. Com que el mòbil Android és el més habitual entre la gent, de manera que una aplicació Android és la millor opció per controlar tots aquests dispositius.



Domòtica

Per tant, en aquest projecte, connectarem alguns dels aparells elèctrics de la llar al mòdul Relay i el controlarem a través del microcontrolador ESP32. Farem una base de dades en temps real de Firebase i la connectarem des de l’aplicació per a Android. Aquesta aplicació per a Android enviarà les dades al núvol i després s’enviarà al microcontrolador per encendre o apagar l’aparell elèctric. La millor part és que podeu tenir un control total sobre la commutació dels aparells des de qualsevol part del món. Només necessiteu una connexió a Internet per fer funcionar l'aplicació d'Android.



Com controlar els electrodomèstics mitjançant WiFi?

Els sistemes domòtics que ja estan disponibles al mercat són molt costosos. Podem utilitzar una placa ESP32 per connectar diferents electrodomèstics i controlar-los mitjançant una aplicació per a Android. Això tindrà un cost molt baix i una manera eficient d’automatitzar la casa. Ara fem un pas endavant i comencem a recopilar informació per iniciar el projecte.



Pas 1: recollida dels components

El millor enfocament per iniciar qualsevol projecte és fer una llista de components i fer un breu estudi d’aquests components perquè ningú voldrà quedar-se enmig d’un projecte només per falta d’un component. A continuació es mostra una llista de components que utilitzarem en aquest projecte:



  • ESP32
  • Taula de pa
  • Connexió de cables

Pas 2: estudiar els components

Ara, ja que coneixem el resum d’aquest projecte, anem a fer un pas endavant i fem un breu estudi del funcionament dels components principals que utilitzarem.

ESP32 és una placa de microcontrolador de baix consum i baix cost que té un WiFi integrat i un mòdul Bluetooth de doble mode. Aquesta placa de microcontroladors és creada i desenvolupada per Sistemes Espressif . Aquesta placa té amplificadors de potència incorporats, amplificadors de recepció de baixa intensitat, filtres i interruptors d'antena. És alimentat per un cable de dades Android i pot proporcionar fins a 3,3 V a la sortida. ESP32 executa TCP / IP, convenció completa 802.11 b / g / n / e / I WLAN MAC i particularment Wi-Fi Direct. Això implica que ESP 32 pot adreçar-se a una gran part dels encaminadors WiFi que s’utilitzen en mode estació (client). De la mateixa manera, pot crear un punt d'accés amb 802.11 b / g / n / e / I complet. L’ESP32 no es basa simplement en el BLE Bluetooth 4.2 més recent, sinó que també reforça el gran Bluetooth. Implica fonamentalment que pot atendre telèfons / taules Bluetooth antics i nous. Si no teniu cap mòdul ESP32, també podeu utilitzar ESP8266 o una MCU Node. Aquestes plaques es poden utilitzar per realitzar la mateixa tasca si estan connectades a WiFi.

ESP32



Un mòdul de relé és un dispositiu de commutació. Funciona en dos modes, Normalment obert (NO) i Normalment Tancat (NC) . En mode NO, el circuit sempre està trencat tret que envieu un senyal ALTA al relé mitjançant Arduino. El mode NC empitjora al revés, el circuit sempre està complet tret que encengueu el mòdul de relé. Assegureu-vos de connectar el cable positiu del vostre aparell elèctric al mòdul de relé de la manera que es mostra a continuació.

Muntatge del circuit del mòdul de relé

Pas 3: diagrama de blocs

Diagrama de blocs

Al diagrama de blocs anterior es mostra el flux d’aquest projecte. Els relés estan connectats als aparells o aparells elèctrics de la llar. Una aplicació mòbil enviarà un Encès o bé DESACTIVAT a la base de dades. Aquest núvol està connectat a la placa de microcontroladors ESP32 mitjançant WiFi. Per encendre el dispositiu electrònic, enviarem un '1' a la base de dades i per apagar-lo enviarem un '0' a la base de dades. Aquesta ordre serà recuperada pel microcontrolador perquè també està connectat a la base de dades. Basant-se en aquest 0 o 1, el microcontrolador encendrà o apagarà el mòdul de relé, cosa que acabarà donant lloc al canvi dels aparells elèctrics.

Per tant, aquí, en aquest article, utilitzaré dos mòduls de relés per mostrar-vos tot el procediment. Però podeu augmentar el nombre de relés i afegir el mateix fragment de codi al vostre programa si voleu controlar un nombre més gran d’electrodomèstics.

Pas 4: Muntatge dels components

Ara que tenim una visió clara del que volem fer en aquest projecte, no perdem més temps i comencem a muntar els components.

  1. Agafeu una placa de configuració i fixeu-hi el microcontrolador ESP32. Ara agafeu els dos mòduls de relés i connecteu el Vcc i la terra dels mòduls al Vin i a la terra de la placa de microcontroladors ESP32 en paral·lel. Connecteu el fitxer en clavilla dels mòduls de relés al pin34 i pin35 de la placa ESP32. Veureu que els relés estan engegats.
  2. Connecteu els electrodomèstics al mòdul de relés. Assegureu-vos que les vostres connexions coincideixin amb les connexions que es mostren a la figura del pas 2.

Ara, mentre connectàvem la part de maquinari del nostre sistema. Desenvoluparem una aplicació per Android que estarà connectada a la base de dades de firebase. Farem la base de dades i l'aplicació d'Android a la part 2 d'aquest article.

Pas 5: Introducció a ESP32

Si no heu treballat abans amb Arduino IDE, no us preocupeu, perquè a continuació es mostra un pas a pas per configurar Arduino IDE.

  1. Descarregueu la versió més recent d'Arduino IDE des de Arduino.
  2. Connecteu la vostra placa Arduino al PC i obriu el Tauler de control. Fer clic a Maquinari i so. Ara obert Dispositius i impressora i cerqueu el port al qual està connectada la vostra placa. En el meu cas ho és COM14 però és diferent en diferents ordinadors.

    Buscant Port

  3. Feu clic a Fitxer i després a Preferències. Copieu el següent enllaç a URL del gestor de la junta addicional. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Preferències

  4. Ara, per utilitzar ESP32 amb Arduino IDE, hem d’importar biblioteques especials que ens permetin gravar codi a ESP32 i utilitzar-lo. aquestes dues biblioteques s'adjunten a l'enllaç que es mostra a continuació. Per incloure la biblioteca, aneu Esbós> Inclou biblioteca> Afegeix biblioteca ZIP . Apareixerà un quadre. Cerqueu la carpeta ZIP a l'ordinador i feu clic a D'acord per incloure-les.

    Inclou la biblioteca

  5. Ara vés Esbós> Inclou biblioteca> Gestiona les biblioteques.

    Gestiona les biblioteques

  6. S'obrirà un menú. A la barra de cerca, escriviu Arduino JSON. Apareixerà una llista. Instal·la Arduino JSON de Benoit Blanchon.

    Arduino JSON

  7. Ara feu clic a Eines. Apareixerà un menú desplegable. Estableix el tauler a Mòdul de desenvolupament ESP.

    Taula de configuració

  8. Torneu a fer clic al menú Eina i configureu el port que heu observat abans al tauler de control.

    Configuració del port

  9. Ara pengeu el codi que s’adjunta a l’enllaç següent i feu clic al botó de càrrega per gravar el codi al microcontrolador ESP32.

    Pujar

Així que ara, quan pengeu el codi, es pot produir un error. Aquest és l'error més comú que es pot produir si utilitzeu una nova versió de l'IDE Arduino i l'Arduino JSON. A continuació es detallen els errors que podeu veure a la pantalla.

Al fitxer inclòs des de C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, des de C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer és una classe d'ArduinoJson 5. Consulteu arduinojson.org/upgrade per aprendre a actualitzar el vostre programa a ArduinoJson. versió 6 StaticJsonBuffer jsonBuffer; ^ Al fitxer inclòs des de C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, des de C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer és una classe d'ArduinoJson 5. Consulteu arduinojson.org/upgrade per obtenir informació sobre com actualitzar el vostre programa a ArduinoJson versió 6 retorna StaticJsonBuffer (). ParseObject (_data); ^ S'han trobat diverses biblioteques per a 'WiFi.h' Usat: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi No s'utilitza: C:  Program Files ( x86)  Arduino  libraries  WiFi Usant biblioteca WiFi a la versió 1.0 de la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFi Utilitzant la biblioteca IOXhop_FirebaseESP32-master a la carpeta: C:  Users  Pro  Documents  Arduino  libraries  IOXhop_FirebaseESP32-master (heretat) Usant la biblioteca HTTPClient a la versió 1.2 a la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  HTTPClient Ús de la biblioteca WiFiClientSecure a la versió 1.0 de la carpeta: C:  Users  Pro  AppData  Local  Arduino15  packages  esp32  hardware  esp32  1.0.2  libraries  WiFiClientSecure Ús de la biblioteca ArduinoJson a versió 6.12.0 a la carpeta: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Error en compilar la placa ESP32 Dev Module.

No hi ha res de què preocupar-se perquè podem eliminar aquests errors seguint alguns senzills passos. Aquests errors es produeixen perquè la nova versió d'Arduino JSON té una altra classe en lloc de StaticJsonBuffer. Aquesta és la classe de JSON 5. Per tant, simplement podem eliminar aquest error degradant la versió d’Arduino JSON del nostre IDE Arduino. Simplement aneu a Esbós> Inclou biblioteca> Gestiona les biblioteques. Buscar Arduino JSON de Benoit Blanchon que heu instal·lat abans. Desinstal·leu-lo primer i definiu-ne la versió 5.13.5. Ara, ja que hem definit una versió antiga d'Arduino JSON, torneu-la a instal·lar i torneu a compilar el codi. Aquesta vegada, el vostre codi es compilarà correctament.

Per descarregar el codi, feu clic aquí.

Pas 6: entendre el codi

El codi d’aquest projecte és molt senzill i ben comentat. Però, tot i així, el codi s’explica breument a continuació.

1. Al principi, s'inclouen les biblioteques perquè la placa ESP32 es pugui connectar a la connexió WiFi local de la llar o l'oficina. Després d'això, es defineix un enllaç al vostre projecte de firebase i l'autenticació del vostre projecte de firebase. A continuació, es defineixen el nom i la contrasenya de la vostra connexió wifi local de manera que l’ESP32 es pugui connectar al Wifi. Alguns pins d'ESP32 estan definits per estar connectats als mòduls de relé. i finalment es declara una variable que emmagatzemarà algunes dades temporals que provindran del núvol de Firebase.

#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 'UrzlDZXMBNRhNdc5i73DRWPEKAN9 '// Inclou l'autenticació del projecte de firebase #define WIFI_SSID' abcd '// el nom de la connexió WiFi de casa o oficina #define WIFI_PASSWORD' abcd '// contrasenya de la connexió WiFi de casa o oficina int r1 = 34; // pin per connectar el relé 1 int r2 = 35; // pin per connectar el relé 2 int temp; // variabe per transportar dades

2. configuració nul·la () és una funció en què inicialitzem els pins INPUT o OUTPUT. Aquesta funció també estableix la velocitat de transmissió mitjançant l'ús de Serial.begin () comandament. Baud Rate és la velocitat de comunicació del microcontrolador. Aquí s’afegeixen algunes línies de codi per connectar l’ESP32 a la connexió wifi local. El tauler intentarà connectar-se a la connexió wifi local i imprimirà 'connexió'. al monitor sèrie. Imprimirà 'Connectat' quan s'estableixi la connexió. Per tant, per supervisar-ho, és millor obrir el monitor sèrie i comprovar-ne l'estat.

configuració nul·la () {Serial.begin (115200); // configuració de la velocitat de transmissió // connectar-se a wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('connectant'); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); retard (500); } Serial.println (); Serial.print ('connectat:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. bucle buit () és una funció que s'executa repetidament en un bucle. En aquest bucle, escrivim un codi que indica a la placa de microcontroladors quines tasques es realitzen i com. Hem recuperat les dades en contra lleuger i AC de la base de dades i emmagatzemades a les dues variables temporals. A continuació, s’apliquen quatre condicions per canviar els dos aparells segons el 0 o l’1 obtingut de la base de dades.

void loop () {// obtenir valor temp1 = Serial.println (Firebase.getFloat ('light')); // obtenir el valor per a la commutació de la llum temp2 = Serial.println (Firebase.getFloat ('AC')); // obtenir el valor per al canvi de Fan delay (1000); if (temp1 == 1 && temp2 == 1) {// Per encendre la llum i ventilar digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Per encendre el ventilador i apagar el llum digitalWrite (r1, BAIX); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Per apagar el ventilador i encendre la llum digitalWrite (r1, HIGH); digitalWrite (r2, BAIX); } if (temp1 == 0 && temp2 == 0) {// Per apagar el ventilador i apagar la llum digitalWrite (r1, BAIX); digitalWrite (r2, BAIX); }}

Aquesta va ser la primera part del 'Com fer que el sistema Smart Home utilitzi ESP32?'. Podeu afegir més mòduls de relés si voleu controlar alguns més electrodomèstics, l'únic que heu de fer és llegir les dades de la base de foc i afegir algunes condicions més per canviar. Al següent article, explicaré com desenvolupar una aplicació per a Android i una base de dades de Firebase. Us explicaré el procediment pas a pas per connectar l'aplicació d'Android a Firebase i enviar-hi dades.

Per anar al següent tutorial Clica aquí