Cuprins:

Conectare inteligentă controlată de temperatură activată WiFi: 4 pași
Conectare inteligentă controlată de temperatură activată WiFi: 4 pași

Video: Conectare inteligentă controlată de temperatură activată WiFi: 4 pași

Video: Conectare inteligentă controlată de temperatură activată WiFi: 4 pași
Video: Conectare la Internet Centrala Ariston Genus One (Wi-Fi) 2024, Iulie
Anonim
Conectare inteligentă WiFi controlată de temperatură activată
Conectare inteligentă WiFi controlată de temperatură activată

În acest set de instrucțiuni ne vom uita la modul de construire a unei sonde de temperatură cu WiFi, folosind un ESP8266 simplu pentru ridicare grea și un senzor de temperatură / umiditate DHT11. De asemenea, vom folosi placa de circuite pe care am creat-o și este, de asemenea, în vânzare acum în magazinul tindie al canalului, dacă doriți să cumpărați.

Să începem cu lista de materiale de care veți avea nevoie:

Modul WiFi ESP8266

amzn.to/2pkGPoa

Senzor DHT11

amzn.to/2phwfhO

Conector inteligent TP-Link

amzn.to/2GElQUz

De asemenea, puteți ridica întregul modul la magazinul tindie pentru canal:

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

De asemenea, verificați JLCPCB pentru PCB Fabrication. Ei sunt cei care obișnuiam să fac PCB:

Livrare gratuită la prima comandă și prototiparea PCB de 2 USD pe

Pasul 1: Adăugarea codului la ESP8266

Acum va trebui să intermitem următorul cod pe ESP8266. Acest cod poate fi găsit la următorul depozit github:

În codul de mai jos va trebui să configurați doar câteva secțiuni de definiție:

Server MQTT:

Utilizator MQTT:

Parolă MQTT:

MQTT_sensor_topic:

-Wifi

A spus: a spus despre rețeaua wifi la care vă conectați

Parolă: parola WiFi.

Odată ce ați completat acest cod în codul de mai jos, puteți compila și verifica erori și dacă există 0 erori, îl puteți bloca pe ESP8266.

/ * * Nume fișier: TempHumSensor.ino * * Aplicație: termostat HomeAssistant Space Heater * * Descriere: Acest cod este pentru dispozitivul compatibil ESP8266 WiFi activat arduino *. Aceasta va retransmite informațiile de temperatură * ale dispozitivului DHT11 către frontendul HASS pentru procesare. * * Autor: M. Sperry - https://www.youtube.com/misperry * Data: 03 / * Revizuire: 1.0 * * * /

#include

#include #include #include #include #include

#define CON_TIME_OUT 20 // Timeout pentru nicio conexiune la wifi

#define MQTT_TIME_OUT 10 // Timeout pentru nicio conexiune la serverul MQTT

#define DHTPIN 0 // Pin care este conectat la senzorul DHT

#define DHTTYPE DHT11 // Tipul de senzor este DHT11, îl puteți schimba în DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Introduceți serverul de adrese MQTT sau adresa IP. Îmi folosesc adresa de adăugare DuckDNS (yourname.duckdns.org) în acest câmp

#define mqtt_user "" // introduceți numele dvs. de utilizator MQTT #define mqtt_password "" // introduceți parola #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // Introduceți subiectul pentru MQTT

// Wifi: SSID și parolă

const char * ssid = ""; const char * password = "";

// DHT SEtup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

Clientul PubSubClient (wifiClient);

// funcție numită pentru a publica temperatura și umiditatea

void publishData (float p_temperature) {// creați un obiect JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: datele trebuie convertite într-un șir; apare o problemă când se utilizează flotante … // convertiți în fahrenheit p_temperature = (p_temperature * 1.8) + 32; // convertire la fahrenheit root ["temperature"] = (String) p_temperature; root.prettyPrintTo (Serial); Serial.println ("");

date char [200];

root.printTo (date, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, date, adevărat); }

// funcție apelată la sosirea unui mesaj MQTT

callback nul (char * p_topic, octet * p_payload, nesemnat int p_length) {}

void reconnect () {

// Buclați până când suntem reconectați în timp ce (! Client.connected ()) {Serial.print ("INFO: Încercarea conexiunii MQTT …"); // Încercați să vă conectați dacă (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: conectat"); } else {Serial.print ("EROARE: eșuat, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: încercați din nou peste 5 secunde"); // Așteptați 5 secunde înainte de a reîncerca întârzierea (5000); }}}

configurare nulă (nulă) {

Serial.begin (9600);

// Începem prin conectarea la o rețea WiFi

Serial.println (); Serial.println (); Serial.print („Conectarea la”); Serial.println (ssid);

WiFi.begin (ssid, parolă);

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

întârziere (800); Serial.print ("."); }

Serial.println ("");

Serial.println ("WiFi conectat"); Serial.println ("adresa IP:"); Serial.println (WiFi.localIP ()); // inițiați conexiunea MQTT client.setServer (mqtt_server, 1883); client.setCallback (apel invers);

// Inițializați senzorul DHT

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

// Imprimați detaliile senzorului de temperatură

senzor_t senzor; dht.temperature (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("Temperatură"); Serial.print ("Senzor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (senzor.versiune); Serial.print ("ID unic:"); Serial.println (sensor.sensor_id); Serial.print („Valoare maximă”); Serial.print (sensor.max_value); Serial.println ("* C"); Serial.print ("Valoare min."); Serial.print (sensor.min_value); Serial.println ("* C"); Serial.print ("Rezoluție:"); Serial.print (senzor.rezoluție); Serial.println ("* C"); Serial.println ("------------------------------------"); // Imprimați detaliile senzorului de umiditate. dht.humidity (). getSensor (& senzor); Serial.println ("------------------------------------"); Serial.println ("Umiditate"); Serial.print ("Senzor:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (senzor.versiune); Serial.print ("ID unic:"); Serial.println (sensor.sensor_id); Serial.print („Valoare maximă”); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Valoare min."); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Rezoluție:"); Serial.print (senzor.rezoluție); Serial.println ("%"); Serial.println ("------------------------------------");

// Setați întârzierea între citirile senzorului pe baza detaliilor senzorului

delayMS = sensor.min_delay / 1000; }

bucla void (nul) {

temperatura plutitorului;

if (! client.connected ())

{reconnect (); }

întârziere (delayMS);

// Obțineți un eveniment de temperatură și imprimați valoarea acestuia.

senzori_eveniment_t eveniment; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Eroare la citirea temperaturii!"); temperatura = 0,00; } else {temperature = event.temperature; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println ("* C"); } // publica pe MQTT publishData (temperatura); }

Pasul 2: Configurarea mufei inteligente TP-LINK

Configurarea mufei inteligente TP-LINK
Configurarea mufei inteligente TP-LINK

Va trebui să vă setați fișa inteligentă TP-LINK sau orice fișă inteligentă pentru acea materie, așa cum recomandă producătorul.

Asigurați-vă că luați notă de adresa MAC de pe dispozitiv. Dacă dispozitivul dvs. este ca dispozitivul meu TP-LINK, nu puteți stoca o adresă IP statică. Astfel, va trebui să vă configurați routerul pentru rezervarea DHCP. Aceasta va lua adresa MAC a dispozitivului dvs. și atunci când dispozitivul solicită o adresă, routerul îi va oferi aceeași adresă de fiecare dată.

Iată un link către cum să configurați acest lucru cu Linksys

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

Pasul 3: Configurarea Home Assistant

Acum, pentru a configura Home Assistant. Pentru aceasta, va trebui să adăugați următoarele configurații la fișierul configuration.yaml care se află în structura de foldere /home/homeassistant/.homeassistant de pe dispozitivul pe care l-ați instalat.

După ce ați terminat de adăugat acest lucru în configurația asistentului de acasă, va trebui să reporniți software-ul asistentului de acasă pentru ca modificările să aibă efect.

De asemenea, voi folosi mufa inteligentă TP-LINK pentru dispozitivul de comutare și definiția este mai jos în fișierul de configurare. Adresa IP utilizată pentru dispozitiv este cea pe care ați configurat-o pentru rezervarea DHCP în pasul anterior.

Această configurație poate fi găsită și la următoarea repo github:

mqtt: switch: - platformă: tplink nume: Dormitorul încălzitorului dormitorului: 192.168.2.11

senzor 1:

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

automatizare:

- alias: _Temp Bedroom Temp Declanșator ridicat: - platformă: numeric_state entity_id: sensor. Bedroom_Temp mai sus: 73

acțiune:

service: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp Bedroom Temp Low

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

Pasul 4: pașii finali

Image
Image
Pașii finali
Pașii finali
Pașii finali
Pașii finali

Acum, cu configurarea asistentului de acasă și cu codul Arduino configurat, veți fi gata să activați întregul sistem. Astfel, puneți mufa încălzitorului / ventilatorului / răcitorului în mufa inteligentă și conectați mufa inteligentă. Odată ce este gata, va trebui să conectați un mic încărcător USB și apoi sonda de temperatură activată WiFi. Odată ce totul este online, ar trebui să vă puteți uita în tabloul de bord al asistentului de acasă și să vedeți cum se raportează noua temperatură.

Vă mulțumesc foarte mult pentru tot ajutorul și sprijinul acordat. asigurați-vă că lăsați un like și veniți să vizitați canalul de la https://www.youbue.com/misperry și să vedeți ce avem acolo pentru dvs. Asigurați-vă că vă abonați și distribuiți prietenilor dvs. pentru a ajuta canalul.

Recomandat: