Taula de continguts:
- Pas 1: afegir el codi a ESP8266
- Pas 2: Configuració del connector intel·ligent TP-LINK
- Pas 3: configuració de l'Assistent per a la llar
- Pas 4: passos finals
Vídeo: Connector intel·ligent controlat per temperatura activat per WiFi: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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:
Llum LED d'escriptori intel·ligent - Il·luminació intel·ligent amb Arduino - Espai de treball Neopixels: 10 passos (amb imatges)
Llum LED d'escriptori intel·ligent | Il·luminació intel·ligent amb Arduino | Espai de treball de Neopixels: ara passem molt de temps a casa estudiant i treballant virtualment, per què no fer que el nostre espai de treball sigui més gran amb un sistema d’il·luminació personalitzat i intel·ligent basat en els LEDs Arduino i Ws2812b. Aquí us mostro com construir el vostre Smart Llum LED d'escriptori que
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: 6 passos (amb imatges)
Converteix un telèfon intel·ligent no utilitzat en una pantalla intel·ligent: el tutorial de Deze es troba a Engels, per a la versió del clàssic espanyol. Teniu un telèfon intel·ligent (antic) sense utilitzar? Convertiu-lo en una pantalla intel·ligent amb Fulls de càlcul de Google i paper i llapis seguint aquest senzill tutorial pas a pas. Quan hagis acabat
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: 7 passos
Làmpada LED intel·ligent controlada per telèfon intel·ligent Bluetooth: sempre somio amb controlar els meus aparells d’il·luminació. Aleshores algú va fabricar una increïble llum LED de colors. Fa poc em vaig trobar amb una làmpada LED de Joseph Casha a Youtube. Inspirant-me en ell, vaig decidir afegir diverses funcions mantenint la comoditat
Rellotge despertador intel·ligent: un despertador intel·ligent fabricat amb Raspberry Pi: 10 passos (amb imatges)
Rellotge despertador intel·ligent: un rellotge despertador intel·ligent fet amb Raspberry Pi: Heu volgut mai un rellotge intel·ligent? Si és així, aquesta és la solució per a vosaltres. He creat Smart Alarm Clock (Rellotge despertador intel·ligent), aquest és un rellotge que permet canviar l’hora de l’alarma segons el lloc web. Quan l’alarma s’activi, hi haurà un so (brunzidor) i 2 llums
Cistella de compra intel·ligent controlada per telèfon intel·ligent: 7 passos
Cistella de compra intel·ligent controlada per telèfon intel·ligent: visitar centres comercials pot ser divertit. Però arrossegar el carretó de la compra mentre l’ompliu de coses és una cosa que és francament molest. El dolor d’empènyer-lo per aquells passadissos estrets i fer aquells girs bruscos! Per tant, aquí teniu (una mena d’oferta) que podeu