Obsah:

WiFi povolená inteligentná zásuvka s regulovanou teplotou: 4 kroky
WiFi povolená inteligentná zásuvka s regulovanou teplotou: 4 kroky

Video: WiFi povolená inteligentná zásuvka s regulovanou teplotou: 4 kroky

Video: WiFi povolená inteligentná zásuvka s regulovanou teplotou: 4 kroky
Video: КАМЕРА ДИНОЗАВР | ДУМАЛ ОНИ ВЫМЕРЛИ | Tuya Smart 2024, Júl
Anonim
WiFi povolená inteligentná zásuvka s regulovanou teplotou
WiFi povolená inteligentná zásuvka s regulovanou teplotou

V tejto inštrukčnej súprave sa pozrieme na to, ako zostrojiť teplotnú sondu s podporou WiFi pomocou jednoduchého ESP8266 na zdvíhanie ťažkých bremien a snímača teploty/vlhkosti DHT11. Tiež budeme používať dosku s obvodmi, ktorú som vytvoril a ktorá je teraz v predaji v obchode Tindie kanála, ak by ste chceli kúpiť.

Začnime s kusovníkom, ktorý budete potrebovať:

WiFi modul ESP8266

amzn.to/2pkGPoa

Snímač DHT11

amzn.to/2phwfhO

Inteligentná zásuvka TP-Link

amzn.to/2GElQUz

Celý modul si môžete vyzdvihnúť aj v obchode s hračkami pre kanál:

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

Tiež si pozrite JLCPCB na výrobu PCB. Oni sú tí, ktorých som použil na výrobu DPS:

Doprava zdarma pri prvej objednávke a prototypovanie DPS 2 doláre na

Krok 1: Pridanie kódu do ESP8266

Teraz budeme musieť na ESP8266 flashovať nasledujúci kód. Tento kód nájdete v nasledujúcom úložisku github:

V nižšie uvedenom kóde budete musieť nastaviť iba niekoľko najdôležitejších sekcií definícií:

Server MQTT:

Užívateľ MQTT:

Heslo MQTT:

MQTT_sensor_topic:

-Wi -Fi

Povedané: uvedené o sieti Wi -Fi, ku ktorej sa pripájate

Heslo: heslo WiFi.

Akonáhle to vyplníte v nižšie uvedenom kóde, potom môžete skompilovať a skontrolovať chyby a ak 0 chýb, môžete to flashnúť na ESP8266.

/ * * Názov súboru: TempHumSensor.ino * * Aplikácia: Termostatický ohrievač priestoru HomeAssistant * * Popis: Tento kód je pre zariadenie kompatibilné s Arduino * kompatibilným s ESP8266 WiFi. Toto odošle informácie o teplote * zariadenia DHT11 do frontendu HASS na spracovanie. * * Autor: M. Sperry - https://www.youtube.com/misperry * Dátum: 03/ * Revízia: 1,0 * * */

#zahrnúť

#include #include #include #include #include

#define CON_TIME_OUT 20 // Časový limit bez pripojenia k wifi

#define MQTT_TIME_OUT 10 // Časový limit bez pripojenia k serveru MQTT

#define DHTPIN 0 // Kolík, ktorý je pripojený k senzoru DHT

#define DHTTYPE DHT11 // Typ snímača je DHT11, môžete ho zmeniť na DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Zadajte prídavky servera MQTT alebo IP. V tomto poli používam svoju doplnkovú adresu DuckDNS (yourname.duckdns.org)

#define mqtt_user "" // zadajte svoje užívateľské meno MQTT #define mqtt_password "" // // zadajte heslo #define MQTT_SENSOR_TOPIC "ha/bedroom_temp" // Zadajte tému pre svoj MQTT

// Wifi: SSID a heslo

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

// Nastavenie DHT

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

Klient PubSubClient (wifiClient);

// funkcia volaná na publikovanie teploty a vlhkosti

void publishData (float p_temperature) {// vytvorenie objektu JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: údaje je potrebné previesť na reťazec; problém nastáva pri použití plavákov … // previesť na stupne Fahrenheita p_temperature = (p_temperature * 1,8) + 32; // previesť na fahrenheit root ["teplota"] = (Reťazec) p_temperature; root.prettyPrintTo (sériové); Serial.println ("");

údaje o znakoch [200];

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

// funkcia volaná po doručení správy MQTT

void callback (char* p_topic, byte* p_payload, unsigned int p_length) {}

zrušiť opätovné pripojenie () {

// Slučka, kým sa znova nepripojíme, kým (! Client.connected ()) {Serial.print ("INFO: Pokus o pripojenie MQTT …"); // Pokus o pripojenie 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: skúste to znova o 5 sekúnd"); // Pred oneskorením opakovania počkajte 5 sekúnd (5 000); }}}

void setup (void) {

Serial.begin (9600);

// Začneme pripojením k sieti WiFi

Serial.println (); Serial.println (); Serial.print („Pripojenie k“); Serial.println (ssid);

WiFi.begin (ssid, heslo);

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

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

Serial.println ("");

Serial.println ("WiFi pripojené"); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); // inicializácia pripojenia MQTT client.setServer (mqtt_server, 1883); client.setCallback (spätné volanie);

// Inicializácia snímača DHT

dht.begin (); Serial.println („zjednotené údaje senzora DHT11“);

// Vytlačte detaily snímača teploty

senzor_t senzor; dht.temperature (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("teplota"); Serial.print ("Senzor:"); Serial.println (meno.senzora); Serial.print ("Verzia ovládača:"); Serial.println (verzia senzora); Serial.print ("Jedinečné ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maximálna hodnota:"); Serial.print (sensor.max_value); Serial.println (" *C"); Serial.print („Minimálna hodnota:“); Serial.print (sensor.min_value); Serial.println (" *C"); Serial.print ("Rozlíšenie:"); Serial.print (senzor.rozlíšenie); Serial.println (" *C"); Serial.println ("------------------------------------"); // Vytlačte podrobnosti o senzore vlhkosti. dht.humidity (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("Vlhkosť"); Serial.print ("Senzor:"); Serial.println (meno.senzora); Serial.print ("Verzia ovládača:"); Serial.println (verzia senzora); Serial.print ("Jedinečné ID:"); Serial.println (sensor.sensor_id); Serial.print ("Maximálna hodnota:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print („Minimálna hodnota:“); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Rozlíšenie:"); Serial.print (senzor.rozlíšenie); Serial.println ("%"); Serial.println ("------------------------------------");

// Nastavte oneskorenie medzi hodnotami senzora na základe podrobností senzora

delayMS = sensor.min_delay / 1000; }

prázdna slučka (prázdna) {

plávajúca teplota;

if (! client.connected ())

{reconnect (); }

oneskorenie (delayMS);

// Získajte teplotnú udalosť a vytlačte jej hodnotu.

sensor_event_t udalosť; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Chyba pri čítaní teploty!"); teplota = 0,00; } else {teplota = udalost.teplota; Serial.print ("Teplota:"); Sériový tlač (teplota); Serial.println (" *C"); } // publikovať na MQTT publishData (teplota); }

Krok 2: Nastavenie inteligentnej zásuvky TP-LINK

Nastavenie inteligentnej zásuvky TP-LINK
Nastavenie inteligentnej zásuvky TP-LINK

Budete musieť nastaviť svoju inteligentnú zástrčku TP-LINK alebo akúkoľvek inteligentnú zástrčku pre príslušný materiál tak, ako to odporúča výrobca.

Nezabudnite si zapísať MAC adresu zariadenia. Ak je vaše zariadenie ako moje zariadenie TP-LINK, nemôžete zadať statickú adresu IP. Preto budete musieť nakonfigurovať smerovač na rezerváciu DHCP. Bude to trvať MAC adresa vášho zariadenia a keď toto zariadenie požiada o adresu, router mu vždy poskytne rovnakú adresu.

Tu je odkaz na to, ako to nastaviť pomocou Linksys

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

Krok 3: Nastavenie domáceho asistenta

Teraz nastavte domáceho asistenta. Na to budete potrebovať pridať nasledujúce konfigurácie do súboru configuration.yaml, ktorý sa nachádza v štruktúre priečinkov /home/homeassistant/.homeassistant v zariadení, na ktoré ste ho nainštalovali.

Po dokončení pridávania tejto položky do konfigurácie vášho domáceho asistenta budete musieť reštartovať softvér domáceho asistenta, aby sa zmeny prejavili.

Tiež budem používať inteligentný konektor TP-LINK pre spínacie zariadenie a definícia je uvedená nižšie v konfiguračnom súbore. IP adresa, ktorá sa používa pre zariadenie, je tá, ktorú ste nastavili pre rezerváciu DHCP v predchádzajúcom kroku.

Túto konfiguráciu nájdete aj v nasledujúcom repo serveri github:

mqtt: prepínač: - platforma: názov tplink: Hostiteľ ohrievača spálne: 192.168.2.11

snímač 1:

platforma: mqtt state_topic: 'ha/bedroom_temp' názov: Teplota v spálni unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'

automatizácia:

- alias: _Temp Spálňa Teplota Vysoká spúšť: - platforma: numeric_state entity_id: senzor. Bedroom_Temp vyššie: 73

akcia:

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

- alias: _Temp Spálňa Teplota Nízka

spúšťač: - platforma: numeric_state entity_id: senzor. Ledroom_Temp nižšie: 73 akcia: služba: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Krok 4: Posledné kroky

Image
Image
Záverečné kroky
Záverečné kroky
Záverečné kroky
Záverečné kroky

Teraz, keď máte konfiguráciu domáceho asistenta a nastavený kód Arduino, budete pripravení aktivovať celý systém. Zasuňte teda zástrčku ohrievača/ventilátora/chladiča do inteligentnej zástrčky a zapojte inteligentnú zástrčku. Akonáhle je pripravený, budete musieť zapojiť malú USB nabíjačku a potom teplotnú sondu s WiFi. Hneď ako bude všetko online, mali by ste sa pozrieť na palubnú dosku svojho domáceho asistenta a pozrieť sa na hlásenú novú teplotu.

Ďakujem veľmi pekne za všetku vašu pomoc a podporu. Nezabudnite zanechať lajk a navštívte kanál na adrese https://www.youbue.com/misperry a zistite, čo všetko pre vás máme. Nezabudnite sa prihlásiť na odber kanála a zdieľať ho so svojimi priateľmi.

Odporúča: