Obsah:

WiFi povolená inteligentní zásuvka řízená teplotou: 4 kroky
WiFi povolená inteligentní zásuvka řízená teplotou: 4 kroky

Video: WiFi povolená inteligentní zásuvka řízená teplotou: 4 kroky

Video: WiFi povolená inteligentní zásuvka řízená teplotou: 4 kroky
Video: KIA EV9 | první svezení s čistě bateriovým obrovským SUV | Electro Dad # 564 2024, Listopad
Anonim
WiFi povolená inteligentní zásuvka s řízenou teplotou
WiFi povolená inteligentní zásuvka s řízenou teplotou

V této sadě instrukcí se podíváme na to, jak vytvořit teplotní sondu s podporou WiFi pomocí jednoduchého ESP8266 pro zvedání těžkých břemen a snímače teploty/vlhkosti DHT11. Pokud budete chtít koupit, budeme také používat desku s obvody, kterou jsem vytvořil a která je nyní také v prodeji v obchodě s hračkami kanálu.

Začněme s kusovníkem, který budete potřebovat:

WiFi modul ESP8266

amzn.to/2pkGPoa

Senzor DHT11

amzn.to/2phwfhO

Inteligentní zásuvka TP-Link

amzn.to/2GElQUz

Můžete si také vyzvednout celý modul v obchodě s hračkami pro kanál:

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

Podívejte se také na JLCPCB pro výrobu PCB. Oni jsou ti, které jsem použil k výrobě DPS:

Doprava zdarma při první objednávce a prototypování PCB 2 $ na

Krok 1: Přidání kódu do ESP8266

Nyní budeme muset na ESP8266 blikat následující kód. Tento kód lze nalézt v následujícím úložišti github:

V níže uvedeném kódu budete muset nastavit pouze několik prvních částí definic:

Server MQTT:

Uživatel MQTT:

Heslo MQTT:

MQTT_sensor_topic:

-Wi -Fi

Uvedeno: řečeno o wifi síti, ke které se připojujete

Heslo: heslo WiFi.

Jakmile to vyplníte v níže uvedeném kódu, můžete jej zkompilovat a zkontrolovat chyby, a pokud 0 chyb, můžete jej přenést na ESP8266.

/ * * Název souboru: TempHumSensor.ino * * Aplikace: HomeAssistant Space Heater Thermostat * * Popis: Tento kód je pro zařízení kompatibilní s ESP8266 WiFi podporujícím arduino *. Tím se předají informace o teplotě * zařízení DHT11 do frontendu HASS ke zpracování. * * Autor: M. Sperry - https://www.youtube.com/misperry * Datum: 03/ * Revize: 1,0 * * */

#zahrnout

#include #include #include #include #include

#define CON_TIME_OUT 20 // Časový limit bez připojení k wifi

#define MQTT_TIME_OUT 10 // Časový limit bez připojení k serveru MQTT

#define DHTPIN 0 // Pin, který je připojen k senzoru DHT

#define DHTTYPE DHT11 // Typ senzoru je DHT11, můžete jej změnit na DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Zadejte doplňky serveru MQTT nebo IP. V tomto poli používám svou doplňkovou adresu DuckDNS (yourname.duckdns.org)

#define mqtt_user "" // zadejte své uživatelské jméno pro MQTT #define mqtt_password "" // // zadejte heslo #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Zadejte téma pro váš MQTT

// Wifi: SSID a heslo

const char* ssid = ""; const char* heslo = "";

// Nastavení DHT

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

Klient PubSubClient (wifiClient);

// volání funkce a publikování teploty a vlhkosti

void publishData (float p_temperature) {// vytvoření objektu JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: data musí být převedena na řetězec; problém nastává při použití plováků… // převod na stupně Fahrenheita p_temperature = (p_temperature * 1,8) + 32; // převést na fahrenheit root ["teplota"] = (řetězec) p_temperature; root.prettyPrintTo (sériové); Serial.println ("");

char data [200];

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

// funkce volána při příchodu zprávy MQTT

neplatné zpětné volání (char* p_topic, byte* p_payload, unsigned int p_length) {}

void reconnect () {

// Smyčka, dokud se znovu nepřipojíme while (! Client.connected ()) {Serial.print ("INFO: Pokus o připojení MQTT …"); // Pokus o připojení if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connected"); } else {Serial.print ("ERROR: failed, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: zkuste to znovu za 5 sekund"); // Počkejte 5 sekund, než se zpoždění opakuje (5 000); }}}

neplatné nastavení (neplatné) {

Serial.begin (9600);

// Začneme připojením k WiFi síti

Serial.println (); Serial.println (); Serial.print („Připojování k“); Serial.println (ssid);

WiFi.begin (ssid, heslo);

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

zpoždění (800); Serial.print ("."); }

Serial.println ("");

Serial.println („WiFi připojeno“); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); // inicializace připojení MQTT client.setServer (mqtt_server, 1883); client.setCallback (zpětné volání);

// Inicializace snímače DHT

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

// Tisk podrobností snímače teploty

senzor_t senzor; dht.temperature (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("teplota"); Serial.print ("Senzor:"); Serial.println (název senzoru); Serial.print ("Verze ovladače:"); Serial.println (verze senzoru); Serial.print ("Unikátní ID:"); Serial.println (sensor.sensor_id); Serial.print („Maximální hodnota:“); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print („Minimální hodnota:“); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Rozlišení:"); Sériový tisk (rozlišení senzoru); Serial.println (" *C"); Serial.println ("------------------------------------"); // Tisk podrobností senzoru vlhkosti. dht.humidity (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println („Vlhkost“); Serial.print ("Senzor:"); Serial.println (název senzoru); Serial.print ("Verze ovladače:"); Serial.println (verze senzoru); Serial.print ("Unikátní ID:"); Serial.println (sensor.sensor_id); Serial.print („Maximální hodnota:“); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print („Minimální hodnota:“); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Rozlišení:"); Sériový tisk (rozlišení senzoru); Serial.println ("%"); Serial.println ("------------------------------------");

// Nastavení zpoždění mezi hodnotami senzoru na základě podrobností senzoru

delayMS = sensor.min_delay / 1000; }

void loop (void) {

plovoucí teplota;

if (! client.connected ())

{znovu připojit (); }

zpoždění (delayMS);

// Získejte teplotní událost a vytiskněte její hodnotu.

sensor_event_t událost; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Chyba při čtení teploty!"); teplota = 0,00; } else {teplota = událost.teplota; Serial.print ("Teplota:"); Sériový tisk (teplota); Serial.println (" *C"); } // publikovat na MQTT publishData (teplota); }

Krok 2: Nastavení inteligentní zásuvky TP-LINK

Nastavení inteligentní zásuvky TP-LINK
Nastavení inteligentní zásuvky TP-LINK

Budete muset u svého chytrého konektoru TP-LINK nebo jakéhokoli jiného inteligentního konektoru pro tento materiál nastavit způsob, který doporučuje výrobce.

Nezapomeňte si poznamenat MAC adresu zařízení. Pokud je vaše zařízení stejné jako moje zařízení TP-LINK, nemůžete nastavit statickou IP adresu. Proto budete muset nakonfigurovat router pro rezervaci DHCP. To zabere MAC adresu vašeho zařízení a když toto zařízení požádá o adresu, router mu vždy přidělí stejnou adresu.

Zde je odkaz na to, jak to nastavit pomocí Linksys

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

Krok 3: Nastavení Home Assistant

Nyní nastavte Home Assistant. K tomu budete muset do souboru configuration.yaml, který je umístěn ve struktuře složek /home/homeassistant/.homeassistant na zařízení, do kterého jste jej nainstalovali, přidat následující konfigurace.

Po dokončení přidávání do konfigurace vašeho domácího asistenta budete muset restartovat software vašeho domácího asistenta, aby se změny projevily.

Také budu používat inteligentní zásuvku TP-LINK pro přepínací zařízení a definice je níže v konfiguračním souboru. IP adresa použitá pro zařízení je ta, kterou jste nastavili pro rezervaci DHCP v předchozím kroku.

Tuto konfiguraci lze také nalézt v následujícím repo githubu:

mqtt: přepínač: - platforma: název tplink: Host topení v ložnici: 192.168.2.11

senzor 1:

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

automatizace:

- alias: _Temp Ložnice Teplota Vysoká spoušť: - platforma: numeric_state entity_id: senzor. Bedroom_Temp výše: 73

akce:

služba: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp Bedroom Temp Low

trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp below: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Krok 4: Poslední kroky

Image
Image
Závěrečné kroky
Závěrečné kroky
Závěrečné kroky
Závěrečné kroky

Nyní s konfigurací vašeho domácího asistenta a nastavením kódu Arduino budete připraveni aktivovat celý systém. Umístěte tedy zástrčku topení/ventilátoru/chladiče do inteligentní zástrčky a zapojte do ní inteligentní zástrčku. Jakmile bude připraven, budete muset připojit malou USB nabíječku a poté teplotní sondu s povoleným WiFi. Jakmile bude vše online, měli byste se podívat na palubní desku svého domácího asistenta a podívat se na hlášení nové teploty.

Velice vám děkuji za veškerou vaši pomoc a podporu. Určitě zanechte lajk a navštivte kanál na adrese https://www.youbue.com/misperry a podívejte se, co vše pro vás máme. Přihlaste se k odběru a sdílejte se svými přáteli, abyste kanálu pomohli.

Doporučuje: