Sisällysluettelo:

WiFi käytössä Lämpötilaohjattu älypistoke: 4 vaihetta
WiFi käytössä Lämpötilaohjattu älypistoke: 4 vaihetta

Video: WiFi käytössä Lämpötilaohjattu älypistoke: 4 vaihetta

Video: WiFi käytössä Lämpötilaohjattu älypistoke: 4 vaihetta
Video: Lämpötilaohjattu talouskellarin venttiilin logiikka 2024, Marraskuu
Anonim
WiFi käytössä Lämpötilaohjattu Smart Plug
WiFi käytössä Lämpötilaohjattu Smart Plug

Tässä ohjesarjassa tarkastelemme kuinka rakentaa WiFi -yhteensopiva lämpötila -anturi käyttämällä yksinkertaista ESP8266 -laitetta raskaaseen nostamiseen ja DHT11 -lämpötila-/kosteusanturia. Käytämme myös luomani piirilevyä, joka on myös myynnissä nyt kanavan tindie -myymälässä, jos haluat ostaa.

Aloitetaan tarvitsemasi materiaaliluettelon kanssa:

ESP8266 WiFi -moduuli

amzn.to/2pkGPoa

DHT11 -anturi

amzn.to/2phwfhO

TP-Link Smart Plug

amzn.to/2GElQUz

Voit myös noutaa koko moduulin kanavan tindie -myymälästä:

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

Katso myös JLCPCB PCB Fabriction. He ovat niitä, joita käytin piirilevyn valmistamiseen:

Ilmainen toimitus ensimmäisen tilauksen yhteydessä ja 2 dollarin PCB -prototyyppien luominen osoitteessa

Vaihe 1: Koodin lisääminen ESP8266: een

Meidän on nyt vilkuttava seuraava koodi ESP8266: een. Tämä koodi löytyy seuraavasta github -arkistosta:

Alla olevassa koodissa sinun on määritettävä vain muutama tärkein määrittelyosa:

MQTT -palvelin:

MQTT -käyttäjä:

MQTT -salasana:

MQTT_anturi_aihe:

-Wi -Fi

Sanoi: sanottu wifi -verkosta, johon muodostat yhteyden

Salasana: WiFi -salasana.

Kun olet täyttänyt tämän alla olevassa koodissa, voit kääntää ja tarkistaa virheet ja jos virheitä ei ole 0, voit vilkaista sen ESP8266: een.

/ * * Tiedostonimi: TempHumSensor.ino * * Sovellus: HomeAssistant Space Heater Thermostat * * Kuvaus: Tämä koodi koskee ESP8266 WiFi -yhteensopivaa arduino * -yhteensopivaa laitetta. Tämä välittää DHT11 -laitteen lämpötilatiedot * HASS -käyttöliittymään käsiteltäväksi. * * Tekijä: M. Sperry - https://www.youtube.com/misperry * Päivämäärä: 03/ * Versio: 1.0 * * */

#sisältää

#Sisällytä #Sisällytä #Sisällytä #Sisällytä #Sisällytä

#define CON_TIME_OUT 20 // Wi -Fi -yhteyden puuttumisen aikakatkaisu

#define MQTT_TIME_OUT 10 // Aikakatkaisu, kun yhteyttä MQTT -palvelimeen ei ole

#define DHTPIN 0 // DHT -anturiin liitetty nasta

#define DHTTYPE DHT11 // Anturin tyyppi on DHT11, voit muuttaa sen DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Anna MQTT -palvelimen lisäykset tai IP -osoite. Käytän DuckDNS -osoitetta (nimesi.duckdns.org) tällä alalla

#define mqtt_user "" // kirjoita MQTT -käyttäjätunnuksesi #define mqtt_password "" // syötä salasanasi #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Anna aihe MQTT: lle

// Wifi: SSID ja salasana

const char* ssid = ""; const char* salasana = "";

// DHT SEtup

DHT_Yhdistetty dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

PubSubClient -asiakas (wifiClient);

// toimintoa kutsutaan julkaisemaan lämpötila ja kosteus

void publisData (float p_temperature) {// luo JSON -objekti // asiakirja: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: tiedot on muunnettava merkkijonoksi; ongelma ilmenee käytettäessä kellukkeita… // muuntaa fahrenheitiksi p_temperature = (p_temperature * 1.8) + 32; // muuntaa fahrenheit -juureksi ["lämpötila"] = (String) p_temperature; root.prettyPrintTo (sarja); Serial.println ("");

char -tiedot [200];

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

// -toiminto kutsuttiin, kun MQTT -viesti saapui

mitätön takaisinsoitto (char* p_topic, tavu* p_payload, unsigned int p_length) {}

void reconnect () {

// Kierrä kunnes muodostamme yhteyden uudelleen (! Client.connected ()) {Serial.print ("INFO: Yritetään MQTT -yhteyttä…"); // Yritä muodostaa yhteys, jos (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("ERROR: failed, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: yritä uudelleen 5 sekunnin kuluttua"); // Odota 5 sekuntia ennen viiveen uudelleen yrittämistä (5000); }}}

void setup (void) {

Sarja.alku (9600);

// Aloitamme muodostamalla yhteyden WiFi -verkkoon

Sarja.println (); Sarja.println (); Serial.print ("Yhdistäminen"); Sarja.println (ssid);

WiFi.begin (ssid, salasana);

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

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

Serial.println ("");

Serial.println ("WiFi -yhteys"); Serial.println ("IP -osoite:"); Serial.println (WiFi.localIP ()); // aloita MQTT -yhteys client.setServer (mqtt_server, 1883); client.setCallback (takaisinsoitto);

// Alusta DHT -anturi

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

// Tulosta lämpötila -anturin tiedot

sensor_t anturi; dht. lämpötila (). getSensor (& anturi); Serial.println ("------------------------------------"); Serial.println ("Lämpötila"); Serial.print ("Sensor:"); Serial.println (anturin nimi); Serial.print ("Driver Ver:"); Serial.println (anturi.versio); Serial.print ("Ainutlaatuinen tunnus:"); Serial.println (sensor.sensor_id); Serial.print ("Suurin arvo:"); Serial.print (sensor.max_value); Sarja.println (" *C"); Serial.print ("Min. Arvo:"); Serial.print (sensor.min_value); Sarja.println (" *C"); Serial.print ("Resoluutio:"); Sarjajälki (anturin resoluutio); Sarja.println (" *C"); Serial.println ("------------------------------------"); // Tulosta kosteusanturin tiedot. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Kosteus"); Serial.print ("Sensor:"); Serial.println (anturin nimi); Serial.print ("Driver Ver:"); Serial.println (anturi.versio); Serial.print ("Ainutlaatuinen tunnus:"); Serial.println (sensor.sensor_id); Serial.print ("Suurin arvo:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Min. Arvo:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resoluutio:"); Sarjajälki (anturin resoluutio); Serial.println ("%"); Serial.println ("------------------------------------");

// Aseta viive anturin lukemien välillä anturin tietojen perusteella

delay MS = anturi.min_viive / 1000; }

void loop (void) {

kellukkeen lämpötila;

jos (! client.connected ())

{yhdistä uudelleen (); }

viive (delayMS);

// Hae lämpötilatapahtuma ja tulosta sen arvo.

sensor_event_t tapahtuma; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Virhe lämpötilan lukemisessa!"); lämpötila = 0,00; } else {lämpötila = tapahtuma.lämpötila; Serial.print ("Lämpötila:"); Sarjajälki (lämpötila); Sarja.println (" *C"); } // julkaista MQTT: lle publicData (lämpötila); }

Vaihe 2: Määritä TP-LINK Smart Plug

TP-LINK Smart Plugin asentaminen
TP-LINK Smart Plugin asentaminen

Sinun on määritettävä TP-LINK-älypistokkeesi tai mikä tahansa älypistoke kyseiselle materiaalille valmistajan suosittelemalla tavalla.

Muista huomioida laitteen MAC -osoite. Jos laitteesi on kuin TP-LINK-laitteeni, et voi tallentaa staattista IP-osoitetta. Sinun on siis määritettävä reitittimesi DHCP -varausta varten. Tämä ottaa laitteesi MAC -osoitteen ja kun laite pyytää osoitetta, reititin antaa sille aina saman osoitteen.

Tässä on linkki tämän määrittämiseen Linksysin kanssa

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

Vaihe 3: Home Assistantin käyttöönotto

Asenna nyt Home Assistant. Tätä varten sinun on lisättävä seuraavat kokoonpanot config.yaml -tiedostoon, joka sijaitsee /home/homeassistant/.homeassistant -kansiorakenteessa laitteessa, johon olet asentanut sen.

Kun olet lisännyt tämän kodin avustajan kokoonpanoon, sinun on käynnistettävä kotiapuohjelmisto uudelleen, jotta muutokset tulevat voimaan.

Käytän myös TP-LINK-älypistoketta kytkentälaitteeseen ja määritelmä on alla määritystiedostossa. Laitteessa käytetty IP -osoite on se, jonka olet määrittänyt DHCP -varaukselle edellisessä vaiheessa.

Tämä kokoonpano löytyy myös seuraavasta github -reposta:

mqtt: kytkin: - alusta: tplinkin nimi: Makuuhuoneen lämmittimen isäntä: 192.168.2.11

anturi 1:

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

automaatio:

- alias: _Temp Makuuhuoneen lämpötila Korkea liipaisin: - alusta: numeerinen_tilayksikkö_tunnistin: Makuuhuone_Temp yllä: 73

toiminta:

service: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp makuuhuoneen lämpötila matala

trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp alla: 73 toiminto: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Vaihe 4: Viimeiset vaiheet

Image
Image
Viimeiset vaiheet
Viimeiset vaiheet
Viimeiset vaiheet
Viimeiset vaiheet

Nyt kun kotiassistentin kokoonpano ja Arduino -koodi on määritetty, olet valmis aktivoimaan koko järjestelmän. Aseta lämmittimen/tuulettimen/jäähdyttimen pistoke älypistokkeeseen ja kytke älypistoke pistorasiaan. Kun se on valmis, sinun on kytkettävä pieni USB -laturi ja sitten WiFi -yhteensopiva lämpötila -anturi. Kun kaikki on online -tilassa, sinun pitäisi voida katsoa kotiassistentin kojelautaan ja nähdä raportoitava uusi lämpötila.

Kiitos paljon kaikesta avusta ja tuesta. muista jättää tykkäys ja tule käymään kanavalla osoitteessa https://www.youbue.com/misperry ja katsomaan mitä kaikkea meillä on sinulle. Varmista, että tilaat ja jaat ystäviesi kanssa auttaaksesi kanavaa.

Suositeltava: