Taula de continguts:

Connector intel·ligent controlat per temperatura activat per WiFi: 4 passos
Connector intel·ligent controlat per temperatura activat per WiFi: 4 passos

Vídeo: Connector intel·ligent controlat per temperatura activat per WiFi: 4 passos

Vídeo: Connector intel·ligent controlat per temperatura activat per WiFi: 4 passos
Vídeo: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, De novembre
Anonim
Connector intel·ligent controlat per temperatura activat per WiFi
Connector intel·ligent controlat per temperatura activat per WiFi

En aquest conjunt d’instruccions, veurem com construir una sonda de temperatura habilitada per WiFi mitjançant l’ús d’un senzill ESP8266 per a la càrrega pesada i d’un sensor de temperatura / humitat DHT11. També farem servir la placa de circuits que he creat i que també està a la venda ara a la botiga tindie del canal si voleu comprar-la.

Comencem amb la llista de materials que necessiteu:

Mòdul WiFi ESP8266

amzn.to/2pkGPoa

Sensor DHT11

amzn.to/2phwfhO

Endoll intel·ligent TP-Link

amzn.to/2GElQUz

També podeu recollir tot el mòdul a la botiga de tindie del canal:

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

Consulteu també JLCPCB per a la fabricació de PCB. Són els que jo feia per fer el PCB:

Enviament gratuït a la primera comanda i prototipatge de PCB de 2 dòlars a

Pas 1: afegir el codi a ESP8266

Ara haurem de fer flaixar el següent codi a l’ESP8266. Aquest codi es pot trobar al següent dipòsit de github:

Al codi següent només haureu de configurar les seccions de definició més importants:

Servidor MQTT:

Usuari MQTT:

Contrasenya MQTT:

MQTT_sensor_topic:

-WiFi

Dit: el dit de la xarxa wifi a la qual us connecteu

Contrasenya: la contrasenya WiFi.

Un cop ho hàgiu emplenat al codi següent, podeu compilar i comprovar si hi ha errors i, si hi ha 0 errors, podeu fer-lo passar a l'ESP8266.

/ * * Nom del fitxer: TempHumSensor.ino * * Aplicació: termòstat HomeAssistant Space Heater * * Descripció: aquest codi és per al dispositiu compatible arduino * compatible amb WiFi ESP8266. Això transmetrà la informació de temperatura * del dispositiu DHT11 al frontal HASS per processar-la. * * Autor: M. Sperry - https://www.youtube.com/misperry * Data: 03 / * Revisió: 1.0 * * * /

#incloure

#include #include #include #include #include

#define CON_TIME_OUT 20 // Temps d'espera sense connexió a wifi

#define MQTT_TIME_OUT 10 // Temps d'espera de connexió al servidor MQTT

#define DHTPIN 0 // Pin que està connectat al sensor DHT

#define DHTTYPE DHT11 // El tipus de sensor és el DHT11, el podeu canviar a DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Introduïu els vostres adders o el vostre servidor MQTT. Utilitzo la meva adreça DuckDNS (yourname.duckdns.org) en aquest camp

#define mqtt_user "" // introduïu el vostre nom d'usuari MQTT #define mqtt_password "" // introduïu la vostra contrasenya #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // Introduïu el tema del vostre MQTT

// Wifi: SSID i contrasenya

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

// DHT SEtup

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

Client PubSubClient (wifiClient);

// funció anomenada per publicar la temperatura i la humitat

void publishData (float p_temperature) {// crea un objecte JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: les dades s’han de convertir en una cadena; es produeix un problema en utilitzar floats … // convertir a fahrenheit p_temperature = (p_temperature * 1.8) + 32; // convertir a fahrenheit root ["temperature"] = (String) p_temperature; root.prettyPrintTo (sèrie); Serial.println ("");

dades de caràcters [200];

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

// funció cridada quan va arribar un missatge MQTT

nul·la devolució de trucada (char * p_topic, byte * p_payload, unsigned int p_length) {}

void reconnect () {

// Bucleu fins que ens tornem a connectar mentre (! Client.connected ()) {Serial.print ("INFO: Intent de connexió MQTT …"); // Intenteu connectar-vos si (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connectat"); } else {Serial.print ("ERROR: ha fallat, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: torneu-ho a provar en 5 segons"); // Espereu 5 segons abans de tornar a provar el retard (5000); }}}

configuració nul·la (nul·la) {

Serial.begin (9600);

// Comencem connectant-nos a una xarxa WiFi

Serial.println (); Serial.println (); Serial.print ("Connexió a"); Serial.println (ssid);

WiFi.begin (ssid, contrasenya);

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

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

Serial.println ("");

Serial.println ("WiFi connectat"); Serial.println ("adreça IP:"); Serial.println (WiFi.localIP ()); // inicieu la connexió MQTT client.setServer (mqtt_server, 1883); client.setCallback (devolució de trucada);

// Inicialitzar el sensor DHT

dht.begin (); Serial.println ("Dades del sensor unificat DHT11");

// Imprimeix els detalls del sensor de temperatura

sensor_t sensor; dht.temperature (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Temperatura"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Verificació del controlador"); Serial.println (sensor.version); Serial.print ("Identificador únic:"); Serial.println (sensor.sensor_id); Serial.print ("Valor màxim:"); Serial.print (sensor.max_value); Serial.println ("* C"); Serial.print ("Valor mínim:"); Serial.print (sensor.min_value); Serial.println ("* C"); Serial.print ("Resolució"); Serial.print (sensor.resolution); Serial.println ("* C"); Serial.println ("------------------------------------"); // Imprimiu els detalls del sensor d’humitat. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Humitat"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Verificació del controlador"); Serial.println (sensor.version); Serial.print ("Identificador únic:"); Serial.println (sensor.sensor_id); Serial.print ("Valor màxim:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Valor mínim:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolució"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");

// Estableix el retard entre les lectures del sensor en funció dels detalls del sensor

delayMS = sensor.min_delay / 1000; }

bucle buit (buit) {

temperatura del flotador;

if (! client.connected ())

{reconnect (); }

delay (delayMS);

// Obteniu un esdeveniment de temperatura i imprimiu-ne el valor.

sensors_event_t esdeveniment; dht.temperature (). getEvent (& event); if (isnan (event.temperature)) {Serial.println ("Error en llegir la temperatura!"); temperatura = 0,00; } else {temperature = event.temperature; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println ("* C"); } // publica a MQTT publishData (temperatura); }

Pas 2: Configuració del connector intel·ligent TP-LINK

Configuració del connector intel·ligent TP-LINK
Configuració del connector intel·ligent TP-LINK

Haureu d’establir el vostre endoll intel·ligent TP-LINK o qualsevol endoll intel·ligent per a aquest material, tal com recomana el fabricant.

Assegureu-vos de prendre nota de l’adreça MAC del dispositiu. Si el vostre dispositiu és com el meu dispositiu TP-LINK, no podeu obtenir cap adreça IP estàtica. Per tant, haureu de configurar l’encaminador per a la reserva DHCP. Això prendrà l'adreça MAC del dispositiu i, quan aquest dispositiu sol·liciti una adreça, l'encaminador li donarà la mateixa adreça cada vegada.

Aquí hi ha un enllaç a com configurar-ho amb Linksys

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

Pas 3: configuració de l'Assistent per a la llar

Ara heu de configurar l'Assistent per a la llar. Per a això, haureu d'afegir les següents configuracions al fitxer configuration.yaml que es troba a l'estructura de carpetes /home/homeassistant/.homeassistant del dispositiu al qual l'heu instal·lat.

Un cop hàgiu acabat d'afegir-lo a la configuració de l'assistent de casa, haureu de reiniciar el programari de l'assistent de casa perquè els canvis afectin.

També utilitzaré el connector intel·ligent TP-LINK per al dispositiu de commutació i la definició es troba a continuació al fitxer de configuració. L'adreça IP que s'utilitza per al dispositiu és la que heu configurat per a la reserva DHCP al pas anterior.

Aquesta configuració també es pot trobar a la següent reposició de github:

mqtt: switch: - plataforma: tplink nom: Dormitori escalfador: 192.168.2.11

sensor 1:

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

automatització:

- àlies: _Temp Bedroom Temp Activador alt: - plataforma: numeric_state entity_id: sensor. Bedroom_Temp above: 73

acció:

servei: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- àlies: _Temp Bedroom Temp Low

trigger: - plataforma: numeric_state entity_id: sensor. Bedroom_Temp a continuació: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Pas 4: passos finals

Image
Image
Passos finals
Passos finals
Passos finals
Passos finals

Ara, amb la configuració de l’assistent domèstic i el codi Arduino configurat, estareu a punt per activar tot el sistema. Per tant, col·loqueu el connector de l’escalfador / ventilador / refrigerador a l’endoll intel·ligent i endolleu l’endoll intel·ligent. Un cop estigui a punt, haureu d’endollar un petit carregador USB i, a continuació, la sonda de temperatura habilitada per a WiFi. Un cop tot estigui connectat, hauríeu de poder mirar al tauler de l’assistent de casa i veure com s’informa de la nova temperatura.

Moltes gràcies per tota la vostra ajuda i suport. assegureu-vos de deixar un m'agrada i vingueu a visitar el canal a https://www.youbue.com/misperry i veureu tot el que tenim per a vosaltres. Assegureu-vos que us subscriviu i compartiu amb els vostres amics per ajudar el canal.

Recomanat: