Obsah:
- Krok 1: Přidání kódu do ESP8266
- Krok 2: Nastavení inteligentní zásuvky TP-LINK
- Krok 3: Nastavení Home Assistant
- Krok 4: Poslední kroky
Video: WiFi povolená inteligentní zásuvka řízená teplotou: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
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
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
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:
WiFi povolená maticová lampa: 6 kroků (s obrázky)
WiFi povolená maticová lampa: Kdo nechce mít ohromující lampu, která dokáže zobrazovat animace a synchronizovat s jinými lampami v domě? Správně, nikdo. Proto jsem vytvořil vlastní RGB lampu. Lampa se skládá z 256 individuálně adresovatelných LED diod a všechny LED diody lze ovládat
Inteligentní budík: inteligentní budík vyrobený z Raspberry Pi: 10 kroků (s obrázky)
Chytrý budík: Chytrý budík vyrobený z Raspberry Pi: Chtěli jste někdy chytré hodiny? Pokud ano, toto je řešení pro vás! Vytvořil jsem inteligentní budík, toto jsou hodiny, u kterých můžete podle času na webu změnit čas budíku. Když se spustí alarm, ozve se zvuk (bzučák) a 2 kontrolky
WiFi řízená vánoční světelná dekorace okna: 4 kroky
WiFi řízená vánoční světelná dekorace oken: Ovládejte světelný pás LED z telefonu nebo počítače - spousta zábavných světelných vzorů s vánoční tématikou
Přeměňte jakákoli sluchátka na Bluetooth - povolená sluchátka: 4 kroky
Make Any Earphones Into Bluetooth - Enabled Earphones: Takže nedávno můj mobilní audio konektor přestal fungovat, a proto jsem nemohl poslouchat hudbu nebo sledovat youtube, což je pro teenagera, jako jsem já, docela velký problém. Tento projekt se zrodil spíše z nutnosti, než jen jako zábavný projekt, na kterém je třeba zapracovat. To není
Inteligentní zásuvka IoT Arduino a Cayenne: 5 kroků (s obrázky)
Inteligentní zásuvka IoT Arduino a Cayenne: Viděl jsem čínskou zásuvku, kterou můžete ovládat pomocí telefonu, ale já jsem výrobce a chci si jednu z nich vyrobit sám! To je možné pomocí CAYENNE Dashboard! Znáte Cayenne? Podívejte se na web Cayenne! Celková částka projektu je asi 60,00 $ PLATÍTE