Përmbajtje:

Prizë e zgjuar e kontrolluar nga temperatura me WiFi: 4 hapa
Prizë e zgjuar e kontrolluar nga temperatura me WiFi: 4 hapa

Video: Prizë e zgjuar e kontrolluar nga temperatura me WiFi: 4 hapa

Video: Prizë e zgjuar e kontrolluar nga temperatura me WiFi: 4 hapa
Video: Я ОДЕРЖИМЫЙ ДЕМОНАМИ 2024, Nëntor
Anonim
Prizë e zgjuar e kontrolluar nga temperatura me WiFi
Prizë e zgjuar e kontrolluar nga temperatura me WiFi

Në këtë grup udhëzimesh ne do të shikojmë se si të ndërtojmë një sondë të temperaturës të aktivizuar me WiFi duke përdorur një ESP8266 të thjeshtë për ngritjen e peshave të rënda dhe një sensor të temperaturës/lagështisë DHT11. Ne gjithashtu do të përdorim tabelën e qarkut që kam krijuar dhe është gjithashtu në shitje tani në dyqanin e tindie të kanalit nëse dëshironi të blini.

Le të fillojmë me faturën e materialeve që do t'ju nevojiten:

ESP8266 Moduli WiFi

amzn.to/2pkGPoa

Sensori DHT11

amzn.to/2phwfhO

Priza e zgjuar TP-Link

amzn.to/2GElQUz

Ju gjithashtu mund të merrni të gjithë modulin në dyqanin tindie për kanalin:

www.tindie.com/products/misperry/wifi-enab…

Gjithashtu shikoni JLCPCB për PCB Fabriction. Ata janë ata që kam përdorur për të bërë PCB:

Transporti Falas në Porosinë e Parë & Prototipimin e PCB $ 2 në

Hapi 1: Shtimi i Kodit në ESP8266

Tani do të na duhet të ndezim kodin e mëposhtëm në ESP8266. Ky kod mund të gjendet në depon e mëposhtme të github:

Në kodin më poshtë do t'ju duhet të vendosni vetëm disa seksionet kryesore të përcaktimit:

Serveri MQTT:

Përdoruesi MQTT:

Fjalëkalimi MQTT:

MQTT_sensor_topic:

-WiFi

Tha: e thënë për rrjetin wifi me të cilin po lidheni

Fjalëkalimi: fjalëkalimi WiFi.

Pasi ta keni plotësuar këtë në kodin e mëposhtëm, atëherë mund të përpiloni dhe kontrolloni për gabime dhe nëse 0 gabime mund ta ndezni atë në ESP8266.

/ * * Emri i skedarit: TempHumSensor.ino * * Aplikimi: Termostati i Ngrohësit të Hapësirës Home * * Përshkrimi: Ky kod është për pajisjen e pajtueshme arduino * të aktivizuar me WiFi ESP8266. Kjo do të transmetojë informacionin e temperaturës * të pajisjes DHT11 në frontin HASS për përpunim. * * Autori: M. Sperry - https://www.youtube.com/misperry * Data: 03/ * Rishikimi: 1.0 * * */

#përfshi

#përfshi #përfshi #përfshi #përfshi #përfshi

#përcakto CON_TIME_OUT 20 // Afati i kalimit të lidhjes me wifi

#përcakto MQTT_TIME_OUT 10 // Afati i kalimit të mungesës së lidhjes me serverin MQTT

#define DHTPIN 0 // Pin i cili është i lidhur me sensorin DHT

#define DHTTYPE DHT11 // Lloji i sensorit është DHT11, mund ta ndryshoni në DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Futni shtesat ose IP -në e serverit tuaj MQTT. Unë përdor adresën time DuckDNS (yourname.duckdns.org) në këtë fushë

#define mqtt_user "" // shkruani emrin tuaj të përdoruesit MQTT #define mqtt_password "" // shkruani fjalëkalimin tuaj #përcaktoni MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Futni temën për MQTT tuaj

// Wifi: SSID dhe fjalëkalim

const char* ssid = ""; const char* fjalëkalim = "";

// DHT SEtup

DHT_Uht i unifikuar (DHTPIN, DHTTYPE); uint32_t vonesëMS;

WiFiClient wifiClient;

Klienti PubSubClient (wifiClient);

// funksioni i thirrur për të publikuar temperaturën dhe lagështinë

publiko të dhëna të pavlefshme (notoni p_temperature) {// krijoni një objekt JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: të dhënat duhet të konvertohen në një varg; një problem shfaqet kur përdorni noton … // konvertohet në fahrenheit p_temperature = (p_temperatura * 1.8) + 32; // konvertohet në rrënjë fahrenheit ["temperatura"] = (Vargu) p_temperatura; root.prettyPrintTo (Serial); Serial.println ("");

të dhëna char [200];

root.printTo (të dhënat, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, të dhëna, të vërteta); }

// funksioni i thirrur kur mbërriti një mesazh MQTT

thirrje e pavlefshme (char* p_topic, byte* p_payload, int unsigned p_length) {}

rilidhje e pavlefshme () {

// Lakoni derisa të rilidhemi ndërsa (! Client.connected ()) {Serial.print ("INFO: Përpjekja për lidhje MQTT …"); // Përpjekja për t'u lidhur nëse (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: lidhur"); } else {Serial.print ("GABIM: dështoi, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: provo përsëri në 5 sekonda"); // Prisni 5 sekonda para se të provoni vonesën (5000); }}}

konfigurimi i pavlefshëm (i pavlefshëm) {

Serial.filloj (9600);

// Fillojmë duke u lidhur me një rrjet WiFi

Serial.println (); Serial.println (); Serial.print ("Lidhu me"); Serial.println (ssid);

WiFi.filloni (ssid, fjalëkalim);

ndërsa (WiFi.status ()! = WL_CONNECTED) {

vonesa (800); Serial.print ("."); }

Serial.println ("");

Serial.println ("WiFi i lidhur"); Serial.println ("Adresa IP:"); Serial.println (WiFi.localIP ()); // nis klientin e lidhjes MQTT.setServer (mqtt_server, 1883); client.setCallback (kthim në telefon);

// Filloni sensorin DHT

dht.filloj (); Serial.println ("Të dhënat e sensorit të unifikuar të DHT11");

// Shtypni detajet e sensorit të temperaturës

sensor_t sensor; dht.temperatura (). getSensor (& sensor); Serial.println ("----------------------------------------"); Serial.println ("Temperatura"); Serial.print ("Sensori:"); Serial.println (emri i sensorit); Serial.print ("Shoferi Ver:"); Serial.println (sensor.versioni); Serial.print ("ID Unike:"); Serial.println (sensor.sensor_id); Serial.print ("Vlera maksimale:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Vlera Min:"); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Rezoluta:"); Serial.print (sensor.rezoluta); Serial.println (" *C"); Serial.println ("----------------------------------------"); // Shtypni detajet e sensorit të lagështisë. dht. lagështia (). getSensor (& sensor); Serial.println ("----------------------------------------"); Serial.println ("Lagështia"); Serial.print ("Sensori:"); Serial.println (emri i sensorit); Serial.print ("Shoferi Ver:"); Serial.println (sensor.versioni); Serial.print ("ID Unike:"); Serial.println (sensor.sensor_id); Serial.print ("Vlera maksimale:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Vlera Min:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Rezoluta:"); Serial.print (sensor.rezoluta); Serial.println ("%"); Serial.println ("----------------------------------------");

// Vendosni vonesën midis leximeve të sensorit bazuar në detajet e sensorit

vonesaMS = sensor.min_delay / 1000; }

lak void (i pavlefshëm) {

temperatura e notimit;

nëse (! klienti.lidhur ())

{rilidheni (); }

vonesa (vonesaMSMS);

// Merrni ngjarjen e temperaturës dhe printoni vlerën e saj.

sensor_event_t event; dht.temperatura (). getEvent (& ngjarje); if (isnan (ngjarja.temperatura)) {Serial.println ("Gabim në leximin e temperaturës!"); temperatura = 0.00; } else {temperatura = ngjarja.temperatura; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println (" *C"); } // publikoni në MQTT publishedData (temperatura); }

Hapi 2: Konfigurimi i prizës suaj të zgjuar TP-LINK

Konfigurimi i prizës suaj të zgjuar TP-LINK
Konfigurimi i prizës suaj të zgjuar TP-LINK

Ju do të keni nevojë të vendosni prizën tuaj të mençur TP-LINK, ose ndonjë prizë të zgjuar për atë materie, ashtu siç rekomandon prodhuesi.

Sigurohuni që të mbani shënim adresën MAC në pajisje. Nëse pajisja juaj është si pajisja ime TP-LINK, nuk mund të vendosni një adresë IP statike. Kështu, do t'ju duhet të konfiguroni ruterin tuaj për Rezervimin DHCP. Kjo do të marrë adresën MAC të pajisjes tuaj dhe kur ajo pajisje kërkon një adresë, ruteri do t'i japë asaj të njëjtën adresë çdo herë.

Këtu keni një lidhje se si ta vendosni këtë me Linksys

www.linksys.com/us/support-article?article…

Hapi 3: Vendosja e Asistentit në Shtëpi

Tani për të konfiguruar "Asistentin në shtëpi". Për këtë do t'ju duhet të shtoni konfigurimet e mëposhtme në skedarin configuration.yaml që ndodhet në strukturën e dosjes /home/homeassistant/.homeassistant në pajisjen në të cilën e keni instaluar.

Pasi të keni përfunduar duke shtuar këtë në konfigurimin e asistentit tuaj në shtëpi, do t'ju duhet të rindizni programin tuaj të ndihmësit në shtëpi që ndryshimet të kenë ndikim.

Gjithashtu unë do të përdor prizën inteligjente TP-LINK për pajisjen ndërruese dhe përkufizimi është më poshtë në skedarin e konfigurimit. Adresa IP që përdoret për pajisjen është ajo që keni vendosur për rezervimin DHCP në hapin e mëparshëm.

Ky konfigurim mund të gjendet gjithashtu në repon e mëposhtme të github:

mqtt: switch: - platforma: emri tplink: Ngrohës i dhomës së gjumit host: 192.168.2.11

sensor 1:

platforma: mqtt state_topic: 'ha/bedroom_temp' emri: Njësia e temperaturës së dhomës së gjumit_ e_masës: '° F' template_ value: '{{value_json.temperature}}'

automatizimi:

- alias: _Temp Temperatura e dhomës së gjumit Shkas i lartë: - platforma: numerike_shteti_id_id: sensor. Dhoma_Tako më sipër: 73

veprimi:

shërbimi: homeassistant.turn_off unit_id: switch. Bedroom_Heater

- alias: _Temp Dhoma Gjumi Temp e Ulet

shkas: - platforma: numerike_shteti_iditeti_id: sensor. Bedroom_Temp poshtë: 73 veprim: shërbim: homeassistant.turn_on unit_id: switch. Bedroom_Heater

Hapi 4: Hapat e fundit

Image
Image
Hapat e fundit
Hapat e fundit
Hapat e fundit
Hapat e fundit

Tani me konfigurimin e ndihmësit tuaj në shtëpi dhe kodin tuaj Arduino të vendosur, do të jeni gati për të aktivizuar të gjithë sistemin. Kështu, vendoseni spinën tuaj të ngrohësit/ventilatorit/ftohësit në prizën inteligjente dhe futeni në prizën e zgjuar. Pasi të jetë gati, do t'ju duhet të lidhni një karikues të vogël USB dhe pastaj sondën e Temperaturës të aktivizuar me WiFi. Pasi të jetë gjithçka online, duhet të jeni në gjendje të shikoni në pultin e ndihmësit të shtëpisë tuaj dhe të shihni temperaturën e re që po raportohet.

Faleminderit shumë për të gjithë ndihmën dhe mbështetjen tuaj. sigurohuni që të lini një pëlqim dhe të vini të vizitoni kanalin në https://www.youbue.com/misperry dhe të shihni se çfarë kemi atje për ju. Sigurohuni që të regjistroheni dhe të ndani me miqtë tuaj për të ndihmuar kanalin.

Recommended: