Tabla de contenido:

Enchufe inteligente con control de temperatura habilitado para WiFi: 4 pasos
Enchufe inteligente con control de temperatura habilitado para WiFi: 4 pasos

Video: Enchufe inteligente con control de temperatura habilitado para WiFi: 4 pasos

Video: Enchufe inteligente con control de temperatura habilitado para WiFi: 4 pasos
Video: Enchufe inteligente TAPO P110🔌 Guía de instalación paso a paso 2024, Mes de julio
Anonim
Enchufe inteligente con control de temperatura habilitado para WiFi
Enchufe inteligente con control de temperatura habilitado para WiFi

En este conjunto de instrucciones, veremos cómo construir una sonda de temperatura habilitada para WiFi usando un simple ESP8266 para el trabajo pesado y un sensor de temperatura / humedad DHT11. También usaremos la placa de circuito que he creado y que también está a la venta ahora en la tienda tindie del canal si desea comprarla.

Comencemos con la lista de materiales que necesitará:

Módulo WiFi ESP8266

amzn.to/2pkGPoa

Sensor DHT11

amzn.to/2phwfhO

Enchufe inteligente TP-Link

amzn.to/2GElQUz

También puede recoger el módulo completo en la tienda tindie para el canal:

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

Consulte también JLCPCB para la estructuración de PCB. Ellos son quienes solía hacer el PCB:

Envío gratis en el primer pedido y prototipos de PCB de $ 2 en

Paso 1: Agregar el código a ESP8266

Ahora necesitaremos flashear el siguiente código en el ESP8266. Este código se puede encontrar en el siguiente repositorio de github:

En el siguiente código, solo tendrá que configurar las primeras secciones de definición:

Servidor MQTT:

Usuario MQTT:

Contraseña MQTT:

MQTT_sensor_topic:

-Wifi

Dijo: el dicho de la red wifi a la que se está conectando

Contraseña: la contraseña de WiFi.

Una vez que haya completado esto en el código a continuación, puede compilar y verificar si hay errores y, si hay 0 errores, puede actualizarlo en el ESP8266.

/ * * Nombre de archivo: TempHumSensor.ino * * Aplicación: Termostato calentador de espacio HomeAssistant * * Descripción: Este código es para el dispositivo compatible con arduino * habilitado para WiFi ESP8266. Esto transmitirá la información de temperatura * del dispositivo DHT11 a la interfaz HASS para su procesamiento. * * Autor: M. Sperry - https://www.youtube.com/misperry * Fecha: 03 / * Revisión: 1.0 * * * /

#incluir

#incluir #incluir #incluir #incluir #incluir

#define CON_TIME_OUT 20 // Tiempo de espera sin conexión a wifi

#define MQTT_TIME_OUT 10 // Tiempo de espera sin conexión al servidor MQTT

#define DHTPIN 0 // Pin que está conectado al sensor DHT

#define DHTTYPE DHT11 // El tipo de sensor es DHT11, puede cambiarlo a DHT22 (AM2302), DHT21 (AM2301)

#define mqtt_server "" // Ingrese los sumadores o IP de su servidor MQTT. Utilizo mi dirección DuckDNS (yourname.duckdns.org) en este campo

#define mqtt_user "" // ingrese su nombre de usuario MQTT #define mqtt_password "" // ingrese su contraseña #define MQTT_SENSOR_TOPIC "ha / bedroom_temp" // Ingrese el tema para su MQTT

// Wifi: SSID y contraseña

const char * ssid = ""; const char * contraseña = "";

// Configuración de DHT

DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;

WiFiClient wifiClient;

Cliente PubSubClient (wifiClient);

// función llamada para publicar la temperatura y la humedad

void publishData (float p_temperature) {// crear un objeto JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // INFO: los datos deben convertirse en una cadena; ocurre un problema al usar flotadores… // convertir a Fahrenheit p_temperature = (p_temperature * 1.8) + 32; // convertir a raíz fahrenheit ["temperatura"] = (String) p_temperature; root.prettyPrintTo (Serial); Serial.println ("");

datos de char [200];

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

// función llamada cuando llega un mensaje MQTT

devolución de llamada vacía (char * p_topic, byte * p_payload, unsigned int p_length) {}

void reconect () {

// Repetir hasta que nos volvamos a conectar while (! Client.connected ()) {Serial.print ("INFO: Intentando conexión MQTT…"); // Intente conectarse if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: conectado"); } else {Serial.print ("ERROR: falló, rc ="); Serial.print (client.state ()); Serial.println ("DEBUG: inténtelo de nuevo en 5 segundos"); // Espere 5 segundos antes de volver a intentarlo (5000); }}}

configuración nula (nula) {

Serial.begin (9600);

// Empezamos por conectarnos a una red WiFi

Serial.println (); Serial.println (); Serial.print ("Conectando a"); Serial.println (ssid);

WiFi.begin (ssid, contraseña);

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

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

Serial.println ("");

Serial.println ("WiFi conectado"); Serial.println ("dirección IP:"); Serial.println (WiFi.localIP ()); // inicia la conexión MQTT client.setServer (mqtt_server, 1883); client.setCallback (devolución de llamada);

// Inicializar el sensor DHT

dht.begin (); Serial.println ("Datos del sensor unificado DHT11");

// Imprimir detalles 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 ("Versión del controlador:"); Serial.println (sensor.version); Serial.print ("ID único:"); Serial.println (sensor.sensor_id); Serial.print ("Valor máximo:"); Serial.print (sensor.max_value); Serial.println ("* C"); Serial.print ("Valor mínimo:"); Serial.print (sensor.min_value); Serial.println ("* C"); Serial.print ("Resolución:"); Serial.print (sensor.resolution); Serial.println ("* C"); Serial.println ("------------------------------------"); // Imprimir detalles del sensor de humedad. dht.humidity (). getSensor (& sensor); Serial.println ("------------------------------------"); Serial.println ("Humedad"); Serial.print ("Sensor:"); Serial.println (sensor.name); Serial.print ("Versión del controlador:"); Serial.println (sensor.version); Serial.print ("ID único:"); Serial.println (sensor.sensor_id); Serial.print ("Valor máximo:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Valor mínimo:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Resolución:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");

// Establecer la demora entre las lecturas del sensor según los detalles del sensor

delayMS = sensor.min_delay / 1000; }

bucle vacío (vacío) {

temperatura de flotación;

si (! client.connected ())

{reconectar (); }

retraso (delayMS);

// Obtiene el evento de temperatura e imprime su valor.

evento sensor_evento_t; dht.temperature (). getEvent (& evento); if (isnan (event.temperature)) {Serial.println ("¡Error al leer la temperatura!"); temperatura = 0,00; } else {temperatura = evento.temperatura; Serial.print ("Temperatura:"); Serial.print (temperatura); Serial.println ("* C"); } // publicar en MQTT publishData (temperatura); }

Paso 2: Configuración de su enchufe inteligente TP-LINK

Configuración de su enchufe inteligente TP-LINK
Configuración de su enchufe inteligente TP-LINK

Deberá configurar su enchufe inteligente TP-LINK, o cualquier enchufe inteligente para ese material, de la forma que recomienda el fabricante.

Asegúrese de tomar nota de la dirección MAC del dispositivo. Si su dispositivo es como mi dispositivo TP-LINK, no puede establecer una dirección IP estática. Por lo tanto, deberá configurar su enrutador para reserva DHCP. Esto tomará la dirección MAC de su dispositivo y cuando ese dispositivo solicite una dirección, el enrutador le dará la misma dirección cada vez.

Aquí hay un enlace a cómo configurar esto con Linksys

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

Paso 3: Configurar Home Assistant

Ahora para configurar Home Assistant. Para ello, deberá agregar las siguientes configuraciones al archivo configuration.yaml que se encuentra en la estructura de carpetas /home/homeassistant/.homeassistant en el dispositivo en el que lo instaló.

Una vez que haya terminado de agregar esto a la configuración de su asistente doméstico, deberá reiniciar el software de su asistente doméstico para que los cambios surtan efecto.

También usaré el enchufe inteligente TP-LINK para el dispositivo de conmutación y la definición se encuentra a continuación en el archivo de configuración. La dirección IP que se utiliza para el dispositivo es la que configuró para la reserva DHCP en el paso anterior.

Esta configuración también se puede encontrar en el siguiente repositorio de github:

mqtt: switch: - platform: tplink name: Bedroom Heater host: 192.168.2.11

sensor 1:

plataforma: mqtt state_topic: 'ha / bedroom_temp' nombre: Bedroom Temp unit_of_measurement: '° F' value_template: '{{value_json.temperature}}'

automatización:

- alias: _Temp Bedroom Temp High trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp arriba: 73

acción:

service: homeassistant.turn_off entity_id: switch. Bedroom_Heater

- alias: _Temp Bedroom Temp Low

disparador: - plataforma: numeric_state entity_id: sensor. Bedroom_Temp a continuación: 73 acción: servicio: homeassistant.turn_on entity_id: switch. Bedroom_Heater

Paso 4: Pasos finales

Image
Image
Pasos finales
Pasos finales
Pasos finales
Pasos finales

Ahora, con la configuración de su asistente doméstico y su código Arduino configurado, estará listo para activar todo el sistema. Por lo tanto, coloque el enchufe de su calentador / ventilador / enfriador en el enchufe inteligente y enchufe el enchufe inteligente. Una vez que esté listo, deberá enchufar un pequeño cargador USB y luego la sonda de temperatura habilitada para WiFi. Una vez que todo esté en línea, debería poder mirar en el tablero de su asistente doméstico y ver la nueva temperatura que se informa.

Muchas gracias por toda su ayuda y apoyo. asegúrese de dejar un me gusta y visite el canal en https://www.youbue.com/misperry y vea todo lo que tenemos para usted. Asegúrate de suscribirte y compartir con tus amigos para ayudar al canal.

Recomendado: