INHOUDSOPGAWE:
- Stap 1: Voeg die kode by ESP8266
- Stap 2: Stel u TP-LINK-slimprop op
- Stap 3: Die opstel van Home Assistant
- Stap 4: Laaste stappe
Video: WiFi -geaktiveerde temperatuurbeheerde slimprop: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
In hierdie instruksieset gaan ons kyk hoe u 'n WiFi -temperatuursonde kan bou met behulp van 'n eenvoudige ESP8266 vir swaar opheffing en 'n DHT11 temperatuur-/humiditeitsensor. Ons sal ook die printplaat wat ek gemaak het, gebruik en is nou ook te koop in die tindie -winkel van die kanaal as u wil koop.
Kom ons begin met die stuk materiaal wat u benodig:
ESP8266 WiFi -module
amzn.to/2pkGPoa
DHT11 sensor
amzn.to/2phwfhO
TP-Link Smart Plug
amzn.to/2GElQUz
U kan ook die hele module by die tindie -winkel vir die kanaal afhaal:
www.tindie.com/products/misperry/wifi-enab…
Kyk ook na JLCPCB vir PCB Fabriction. Dit is wie ek die PCB gemaak het:
Gratis aflewering op eerste bestelling en $ 2 PCB -prototipering op
Stap 1: Voeg die kode by ESP8266
Ons sal nou die volgende kode op die ESP8266 moet flits. Hierdie kode kan gevind word in die volgende github -bewaarplek:
In die onderstaande kode hoef u slegs die boonste paar definisie -afdelings op te stel:
MQTT -bediener:
MQTT -gebruiker:
MQTT wagwoord:
MQTT_sensor_topic:
-WiFi
Gesê: die gesê van die wifi -netwerk waarmee u verbinding maak
Wagwoord: die WiFi -wagwoord.
Sodra u die onderstaande kode ingevul het, kan u die foute saamstel en kyk of daar 0 foute is, kan u dit op die ESP8266 flits.
/ * * Lêernaam: TempHumSensor.ino * * Toepassing: HomeAssistant Ruimteverwarmer Termostaat * * Beskrywing: Hierdie kode is vir die ESP8266 WiFi -aangeskakel arduino * -versoenbare toestel. Dit sal die temperatuurinligting * van die DHT11 -toestel na die HASS -voorkant stuur vir verwerking. * * Skrywer: M. Sperry - https://www.youtube.com/misperry * Datum: 03/ * Hersiening: 1.0 * * */
#insluit
#include #include #include #include #include
#defineer CON_TIME_OUT 20 // Time -out van geen verbinding met wifi
#defineer MQTT_TIME_OUT 10 // Time -out van geen verbinding met MQTT -bediener nie
#define DHTPIN 0 // Speld wat aan die DHT -sensor gekoppel is
#define DHTTYPE DHT11 // Soort sensor is die DHT11, u kan dit verander na DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Voer u MQTT -bediener -adders of IP in. Ek gebruik my DuckDNS adddress (yourname.duckdns.org) in hierdie veld
#define mqtt_user "" // voer u MQTT -gebruikersnaam in #define mqtt_password "" // voer u wagwoord in #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Tik onderwerp vir u MQTT in
// Wifi: SSID en wagwoord
const char* ssid = ""; const char* wagwoord = "";
// DHT SEtup
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t vertragingMS;
WiFiClient wifiClient;
PubSubClient -kliënt (wifiClient);
// funksie genoem om die temperatuur en die humiditeit te publiseer
void publishData (float p_temperature) {// skep 'n JSON -voorwerp // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: die data moet in 'n string omgeskakel word; 'n probleem ontstaan wanneer floats gebruik word … // omskakel na fahrenheit p_temperature = (p_temperature * 1.8) + 32; // omskakel na fahrenheit root ["temperatuur"] = (string) p_temperatuur; root.prettyPrintTo (reeks); Serial.println ("");
char data [200];
root.printTo (data, root.measureLength () + 1); kliënt.publiseer (MQTT_SENSOR_TOPIC, data, waar); }
// funksie gebel toe 'n MQTT -boodskap opgedaag het
nietige terugbel (char* p_topic, byte* p_payload, ongetekende int p_length) {}
leemte herkoppel () {
// Herhaal totdat ons weer verbind is terwyl (! Client.connected ()) {Serial.print ("INFO: Poging tot MQTT -verbinding …"); // Probeer om aan te sluit as (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } anders {Serial.print ("ERROR: misluk, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: probeer weer oor 5 sekondes"); // Wag 5 sekondes voordat die vertraging weer probeer (5000); }}}
ongeldige opstelling (ongeldig) {
Serial.begin (9600);
// Ons begin deur aan te sluit op 'n WiFi -netwerk
Serial.println (); Serial.println (); Serial.print ("Koppel aan"); Serial.println (ssid);
WiFi.begin (ssid, wagwoord);
terwyl (WiFi.status ()! = WL_CONNECTED) {
vertraging (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("WiFi gekoppel"); Serial.println ("IP -adres:"); Serial.println (WiFi.localIP ()); // begin die MQTT -verbinding client.setServer (mqtt_server, 1883); client.setCallback (terugbel);
// Initialiseer DHT -sensor
dht.begin (); Serial.println ("DHT11 Unified Sensor Data");
// Druk besonderhede oor temp sensor af
sensor_t sensor; temperatuur (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("temperatuur"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.versie); Serial.print ("Unieke ID:"); Serial.println (sensor.sensor_id); Serial.print ("maksimum waarde:"); Reeks.afdruk (sensor.max_waarde); Serial.println (" *C"); Serial.print ("Min waarde:"); Reeks.afdruk (sensor.min_waarde); Serial.println (" *C"); Serial.print ("Resolusie:"); Serial.print (sensor.resolution); Serial.println (" *C"); Serial.println ("------------------------------------"); // Druk die besonderhede van die humiditeitssensor af. dht.vochtigheid (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Humiditeit"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.versie); Serial.print ("Unieke ID:"); Serial.println (sensor.sensor_id); Serial.print ("maksimum waarde:"); Reeks.afdruk (sensor.max_waarde); Serial.println ("%"); Serial.print ("Min waarde:"); Reeks.afdruk (sensor.min_waarde); Serial.println ("%"); Serial.print ("Resolusie:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");
// Stel vertraging in tussen sensorlesings gebaseer op sensorbesonderhede
vertragingMS = sensor.min_vertraging / 1000; }
leegte -lus (leegte) {
vlottemperatuur;
as (! client.connected ())
{herkoppel (); }
vertraging (delayMS);
// Kry temperatuurgebeurtenis en druk die waarde daarvan af.
sensors_event_t gebeurtenis; dht.temperatuur (). getEvent (& event); if (isnan (gebeurtenis.temperatuur)) {Serial.println ("Fout tydens die lees van temperatuur!"); temperatuur = 0,00; } anders {temperatuur = gebeurtenis.temperatuur; Serial.print ("Temperatuur:"); Reeks.afdruk (temperatuur); Serial.println (" *C"); } // publiseer aan MQTT publishData (temperatuur); }
Stap 2: Stel u TP-LINK-slimprop op
U moet u TP-LINK-slimprop of 'n slimstekker vir die materiaal instel, soos die vervaardiger aanbeveel.
Let op die MAC -adres op die toestel. As u toestel soos my TP-LINK-toestel lyk, kan u nie 'n statiese IP-adres kry nie. U moet u router dus instel vir DHCP -bespreking. Dit neem die MAC -adres van u toestel op, en as die toestel 'n adres versoek, gee die router elke keer dieselfde adres.
Hier is 'n skakel na hoe u dit met Linksys kan instel
www.linksys.com/us/support-article?article…
Stap 3: Die opstel van Home Assistant
Nou om die huisassistent op te stel. Hiervoor moet u die volgende konfigurasies byvoeg by die konfigurasie.yaml -lêer wat in die /home/homeassistant/.homeassistant -vouerstruktuur is op die toestel waarop u dit geïnstalleer het.
Nadat u dit by die konfigurasie van u huisassistent gevoeg het, moet u u tuisassistent -sagteware herlaai sodat die veranderinge van krag kan wees.
Ek sal ook die TP-LINK-slimprop vir die skakelaar gebruik, en die definisie is hieronder in die konfigurasielêer. Die IP -adres wat vir die toestel gebruik word, is die adres wat u in die vorige stap vir die DHCP -bespreking opgestel het.
Hierdie opset kan ook gevind word op die volgende github -repo:
mqtt: switch: - platform: tplink naam: Slaapkamer verwarmer gasheer: 192.168.2.11
sensor 1:
platform: mqtt state_topic: 'ha/bedroom_temp' naam: Slaapkamer temperatuur eenheid_van_meting: '° F' value_template: '{{value_json.temperature}}'
outomatisering:
- alias: _Temp Slaapkamer Temp Hoë sneller: - platform: numeriese_staat entiteit_id: sensor. Slaapkamer_Temp hierbo: 73
aksie:
diens: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- alias: _Temp Slaapkamer Temp Laag
sneller: - platform: numeric_state entity_id: sensor. Bedroom_Temp hieronder: 73 aksie: diens: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Stap 4: Laaste stappe
Met die konfigurasie van u huisassistent en u Arduino -kode, is u gereed om die hele stelsel te aktiveer. Plaas dus u verwarmer/waaier/koeler -prop in die slimprop en steek die slimprop in. Sodra dit gereed is, moet u 'n klein USB -laaier aansluit en dan die WiFi -geaktiveerde temperatuursonde. Sodra alles aanlyn is, moet u in die dashboard van u huisassistent kan kyk en die nuwe temperatuur kan sien.
Baie dankie vir al u hulp en ondersteuning. maak seker dat u 'n like gee en besoek die kanaal op https://www.youbue.com/misperry en kyk wat ons alles vir u het. Maak seker dat u inteken en met u vriende deel om die kanaal te help.
Aanbeveel:
DIY temperatuurbeheerde kamerkas met Peltier TEC -module: 4 stappe (met foto's)
DIY temperatuurbeheerde kamerkas met Peltier TEC -module: ek het 'n temperatuurbeheerde kamerkas saamgestel om klein elektroniese borde te toets. In hierdie tutoriaal het ek my projek gedeel, insluitend bronlêers en 'n skakel na Gerbers -lêers om die PCB te maak. Ek het slegs goedkoop materiaal gebruik wat algemeen beskikbaar is
Temperatuurbeheerde stelsel met L293D: 19 stappe (met foto's)
Temperatuurbeheerde stelsel Met L293D: Die temperatuurgevoelige beheerde stelsel is 'n toestel wat die temperatuur van 'n voorwerp oor 'n bepaalde gebied wat met die omgewing verband hou, beheer en onderhou. Hierdie tipe beheerde stelsels word hoofsaaklik gebruik in AC's (Air Conditioners), Refrig
Temperatuurbeheerde waaier!: 4 stappe
Temperatuurbeheerde waaier!: As u in 'n tropiese land soos Singapoer woon, is dit frustrerend om die hele dag te sweet, en u moet intussen fokus op u studie of werk in 'n bedompige omgewing. Om die lug te laat vloei en af te koel, het ek die idee van temperatuur gekry
Temperatuurbeheerde tupperware: 4 stappe
Temperatuurbeheerde tupperware: ons wou 'n afgekoelde houer hê om verskillende items te stoor. Vanweë sy veelsydigheid het ons besluit om 'n MSP432 te gebruik om die stelsel aan te dryf en te beheer. Ons het 'n transistor gebruik om PWM te gebruik om die waaier aan te dryf. As u 'n 3-draads PWM-waaier het
Temperatuurbeheerde entstof en insulienkoeler: 9 stappe (met foto's)
Temperatuurbeheerde entstof en insulienverkoeler: koel hou red lewens In die ontwikkelende wêreld is entstowwe die voorste verdediging teen gevaarlike siektes soos Ebola, griep, cholera, tuberkulose en Dengue om maar net 'n paar te noem. Vervoer van entstowwe en ander lewensreddende materiale soos