Innholdsfortegnelse:

WiFi -aktivert temperaturkontrollert smartplugg: 4 trinn
WiFi -aktivert temperaturkontrollert smartplugg: 4 trinn

Video: WiFi -aktivert temperaturkontrollert smartplugg: 4 trinn

Video: WiFi -aktivert temperaturkontrollert smartplugg: 4 trinn
Video: 💡 Brilliant Smart Switch Review: Elevate Your Smart Home Automation! 🔌 2024, November
Anonim
WiFi -aktivert temperaturkontrollert smartplugg
WiFi -aktivert temperaturkontrollert smartplugg

I dette instruksjonssettet skal vi se på hvordan du bygger en WiFi -aktivert temperatursonde ved hjelp av en enkel ESP8266 for tunge løft og en DHT11 temperatur-/fuktighetssensor. Vi vil også bruke kretskortet som jeg har opprettet, og er også til salgs nå i kanalens tindie -butikk hvis du vil kjøpe.

La oss komme i gang med materialregningen du trenger:

ESP8266 WiFi -modul

amzn.to/2pkGPoa

DHT11 -sensor

amzn.to/2phwfhO

TP-Link Smart Plug

amzn.to/2GElQUz

Du kan også hente hele modulen i tindie -butikken for kanalen:

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

Sjekk også JLCPCB for PCB Fabriction. Det er de jeg pleide å lage PCB:

Gratis frakt på første ordre og $ 2 PCB -prototyper på

Trinn 1: Legge til koden i ESP8266

Vi må nå blinke følgende kode på ESP8266. Denne koden finnes på følgende github -depot:

I koden nedenfor trenger du bare å sette opp noen få definisjonsdeler:

MQTT -server:

MQTT -bruker:

MQTT -passord:

MQTT_sensor_topic:

-WiFi

Said: sagt om wifi -nettverket du kobler til

Passord: WiFi -passordet.

Når du har fylt ut denne koden, kan du kompilere og se etter feil, og hvis det er 0 feil, kan du blinke den på ESP8266.

/ * * Filnavn: TempHumSensor.ino * * Søknad: HomeAssistant Space Heater Thermostat * * Beskrivelse: Denne koden er for ESP8266 WiFi -aktivert arduino * -kompatibel enhet. Dette vil overføre temperaturinformasjonen * til DHT11 -enheten til HASS -frontenden for behandling. * * Forfatter: M. Sperry - https://www.youtube.com/misperry * Dato: 03/ * Revisjon: 1.0 * * */

#inkludere

#include #include #include #include #include

#define CON_TIME_OUT 20 // Tidsavbrudd for ingen tilkobling til wifi

#define MQTT_TIME_OUT 10 // Tidsavbrudd for ingen tilkobling til MQTT -server

#define DHTPIN 0 // Pin som er koblet til DHT -sensoren

#define DHTTYPE DHT11 // Sensortype er DHT11, du kan endre den til DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Angi tilleggene til MQTT -serveren eller IP -adressen din. Jeg bruker min DuckDNS adddress (dittnavn.duckdns.org) i dette feltet

#define mqtt_user "" // skriv inn MQTT -brukernavnet ditt #define mqtt_password "" // skriv inn passordet ditt #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Skriv inn emne for MQTT

// Wifi: SSID og passord

const char* ssid = ""; const char* passord = "";

// DHT SEtup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient -klient (wifiClient);

// funksjon kalt for å publisere temperaturen og fuktigheten

void publishData (float p_temperature) {// opprett et JSON -objekt // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: dataene må konverteres til en streng; et problem oppstår når du bruker flyter … // konverter til fahrenheit p_temperature = (p_temperature * 1.8) + 32; // konvertere til fahrenheit root ["temperatur"] = (streng) p_temperatur; root.prettyPrintTo (seriell); Serial.println ("");

røyedata [200];

root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, true); }

// funksjon ringte da en MQTT -melding kom

ugyldig tilbakeringing (char* p_topic, byte* p_payload, usignert int p_length) {}

ugyldig tilkobling () {

// Sløyfe til vi blir koblet til igjen mens (! Client.connected ()) {Serial.print ("INFO: Forsøk på MQTT -tilkobling …"); // Prøv å koble til hvis (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: tilkoblet"); } annet {Serial.print ("FEIL: mislyktes, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: prøv igjen om 5 sekunder"); // Vent 5 sekunder før forsøk på nytt (5000); }}}

ugyldig oppsett (void) {

Serial.begin (9600);

// Vi starter med å koble til et WiFi -nettverk

Serial.println (); Serial.println (); Serial.print ("Koble til"); Serial.println (ssid);

WiFi.begin (ssid, passord);

mens (WiFi.status ()! = WL_CONNECTED) {

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

Serial.println ("");

Serial.println ("WiFi tilkoblet"); Serial.println ("IP -adresse:"); Serial.println (WiFi.localIP ()); // init MQTT -tilkoblingen client.setServer (mqtt_server, 1883); client.setCallback (tilbakeringing);

// Initialiser DHT -sensor

dht.begin (); Serial.println ("DHT11 Unified Sensor Data");

// Skriv ut detaljer om temp. Sensor

sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatur"); Serial.print ("Sensor:"); Serial.println (sensor.navn); Serial.print ("Driver Ver:"); Serial.println (sensor.versjon); Serial.print ("Unik ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maks verdi:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print ("Min verdi:"); Serial.print (sensor.min_verdi); Serial.println (" *C"); Serial.print ("Oppløsning:"); Serial.print (sensor.resolution); Serial.println (" *C"); Serial.println ("------------------------------------"); // Skriv ut detaljer om fuktighetssensor. dht.fuktighet (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Fuktighet"); Serial.print ("Sensor:"); Serial.println (sensor.navn); Serial.print ("Driver Ver:"); Serial.println (sensor.versjon); Serial.print ("Unik ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maks verdi:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min verdi:"); Serial.print (sensor.min_verdi); Serial.println ("%"); Serial.print ("Oppløsning:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");

// Angi forsinkelse mellom sensoravlesninger basert på sensordetaljer

delayMS = sensor.min_delay / 1000; }

void loop (void) {

flyte temperatur;

hvis (! client.connected ())

{koble til på nytt (); }

forsinkelse (delayMS);

// Få temperaturhendelse og skriv ut verdien.

hendelser sensor_event_t; dht.temperature (). getEvent (& event); if (isnan (hendelse.temperatur)) {Serial.println ("Feil ved lesing av temperatur!"); temperatur = 0,00; } annet {temperatur = hendelse.temperatur; Serial.print ("Temperatur:"); Serial.print (temperatur); Serial.println (" *C"); } // publiser til MQTT publishData (temperatur); }

Trinn 2: Konfigurere din TP-LINK Smart Plug

Sette opp din TP-LINK Smart Plug
Sette opp din TP-LINK Smart Plug

Du må sette opp TP-LINK-smartpluggen din, eller hvilken som helst smartplugg for den materien, slik produsenten anbefaler.

Sørg for å notere MAC -adressen på enheten. Hvis enheten din er som min TP-LINK-enhet, kan du ikke st en statisk IP-adresse. Dermed må du konfigurere ruteren din for DHCP -reservasjon. Dette vil ta MAC -adressen til enheten din, og når enheten ber om en adresse, vil ruteren gi den samme adressen hver gang.

Her er en lenke til hvordan du konfigurerer dette med Linksys

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

Trinn 3: Konfigurere Home Assistant

Nå for å sette opp Home Assistant. For dette må du legge til følgende konfigurasjoner i filen configuration.yaml som ligger i /home/homeassistant/.homeassistant -mappestrukturen på enheten du installerte den på.

Når du er ferdig med å legge dette til i hjemmeassistentkonfigurasjonen, må du starte hjemmeassistentprogramvaren på nytt for at endringene skal påvirke.

Jeg kommer også til å bruke TP-LINK smart plug for å bytte enhet, og definisjonen er nedenfor i konfigurasjonsfilen. IP -adressen som brukes for enheten er den du konfigurerte for DHCP -reservasjonen i forrige trinn.

Denne konfigurasjonen finnes også på følgende github -repo:

mqtt: switch: - plattform: tplink navn: Bedroom Heater host: 192.168.2.11

sensor 1:

plattform: mqtt state_topic: 'ha/bedroom_temp' navn: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'

automasjon:

- alias: _Temp Soverom Temp Høy utløser: - plattform: numeric_state entity_id: sensor. Bedroom_Temp ovenfor: 73

handling:

service: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp Soverom Temp Lav

trigger: - plattform: numeric_state entity_id: sensor. Bedroom_Temp nedenfor: 73 handling: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Trinn 4: Siste trinn

Image
Image
Siste trinn
Siste trinn
Siste trinn
Siste trinn

Med konfigurasjonen av din hjemmeassistent og din Arduino -kode er du klar til å aktivere hele systemet. Plasser således varmeapparatet/viften/kjølerpluggen i smartpluggen og sett inn smartpluggen. Når den er klar, må du koble til en liten USB -lader og deretter den WiFi -aktiverte temperatursonden. Når alt er pålogget, bør du kunne se på dashbordet til hjemmeassistenten og se den nye temperaturen som rapporteres.

Tusen takk for all hjelp og støtte. Sørg for å legge igjen en like og kom til kanalen på https://www.youbue.com/misperry og se hva vi har for deg. Sørg for å abonnere og dele med vennene dine for å hjelpe kanalen.

Anbefalt: