El kit Casa de Navidad tiene el Nano El microcontrolador solo tiene funciones limitadas, como encender la luz usando el botón al lado de la puerta.
En esta publicación de blog, el conjunto se transformará en una pequeña casa inteligente con función WiFi con aspecto navideño utilizando un mini microcontrolador D1.
Ferretería
Para la implementación necesita:
D1miniESP8266 (también son posibles otras versiones)
Kit de árbol de Navidad LED (también son posibles otras versiones)
Conecte el convertidor de nivel al D1mini utilizando los cables de silicona de la siguiente manera:

Figura 1: Cableado del D1mini
Para el lado derecho puedes utilizar una regleta de enchufes D1mini. Si dispone de las herramientas adecuadas, una conexión engarzada es, por supuesto, la opción profesional.
Después de ensamblar el kit de la Casa de Navidad según las instrucciones, abra el panel del techo en el costado de la caja de la batería.
Ahora conecte el relé y el DHT22 a las siguientes conexiones en el Nano-Escudos puestos.
|
DHT22 |
Escudo |
relevo |
Escudo |
|
+ |
V11 |
- |
G7 |
|
FUERA |
T11 |
+ |
(V 7) |
|
- |
G11 |
S |
T7 |
Los módulos del kit ya instalados permanecen en las conexiones descritas en las instrucciones.
La tira de LED WS2812 no se utiliza en este blog, sino que el árbol de Navidad LED se controla a través del relé. Esto también se puede utilizar ajustando la cantidad de LED.
Conecte el árbol de LED de la siguiente manera:
|
árbol |
relevo |
Escudo |
|
VCC |
|
v |
|
Tierra |
NO |
|
|
|
COM |
GRAMO |

Figura 2: Conexiones para fuente de alimentación de 5V
Nota:
Si suministra el relé y el árbol de Navidad al proyecto a través de una fuente de voltaje externa (por ejemplo, una batería en la parte posterior), los componentes adicionales pueden hacer que el regulador de baja caída se caliente significativamente si hay un alto requerimiento de corriente. Esto puede provocar potencialmente daños. Si el requisito actual es superior a 500 mA, utilice una fuente de voltaje independiente o un convertidor reductor.
Los relés y el sensor DHT22 ahora se pueden fijar en casa, por ejemplo, con cinta adhesiva de doble cara.
Continúe dejando abierta la parte trasera del techo para los siguientes pasos.
programas
desde el Nano no tiene una interfaz WLAN, se requiere el D1 mini. La única tarea de esta persona es poner a disposición el servidor web para el control. Luego la información se envía a la interfaz UART. Nano, que asume todo el control de los componentes.
Dado que los dos microcontroladores intercambian datos a través de la interfaz UART, la conexión debe separarse para flashear un microcontrolador.
Preparando el IDE de Arduino
Si es la primera vez que trabaja con microcontroladores, aún necesitará descargar el controlador adecuado para poder transferir el programa a la placa.
Puede descargar el archivo de instalación del controlador apropiado aquí descargar.
Para el D1 mini necesitas un paquete adicional. Para instalarlo, copie el siguiente enlace en el IDE de Arduino en: Archivo->Preferencias->URL del administrador de placas adicionales:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
e instale el paquete ESP32 en la administración de la placa Arduino IDE.
Además, se requieren bibliotecas para poder controlar la pantalla LCD, el módulo LED y el sensor DHT22:
Puedes instalar las bibliotecas usando la gestión de bibliotecas integrada en el IDE de Arduino o descargarlas como .zip usando el enlace de Github y dirigirte a
Bosquejar > incluir biblioteca > Agregar biblioteca .zip…
incorporar.
Código Nano
Descarga el siguiente programa Nano:
|
#include <Wire.h> |
El código completo puede aquí ser descargado.
Explicación:
Al principio, se integran las bibliotecas y se crean macros para los nombres de los pines de los módulos conectados.
A esto le sigue la inicialización de las variables globales y los objetos de las bibliotecas.
El siguiente método lee los valores del sensor y genera una cadena json a partir de ellos, que luego se envía al D1mini a través de la interfaz serie (UART) para que los valores climáticos se puedan mostrar en el sitio web. Dado que el LDR es sólo una resistencia y, por lo tanto, no está calibrado en fábrica, los valores límite reales pueden variar. Puede configurar esto en la función map(). (900 por debajo del límite 0%; 100 límite superior 100%)
La siguiente función readLine() forma una cadena a partir de los caracteres individuales recibidos a través de la interfaz UART. Los caracteres se suman aquí hasta que comienza una nueva línea (\n). La función es necesaria para una posterior evaluación de datos.
En setup() se llaman los métodos de inicio de las bibliotecas y se configura la IO del relé como salida.
El loop() comienza ejecutando el manejarSensores funcionar cada segundo. El retraso de tiempo se implementa aquí con una comparación usando la función millis(). Esto significa que el loop() no está bloqueado.
Luego se evalúa la cadena con la entrada del servidor web y luego el LED se configura en el color seleccionado, el texto se muestra en la pantalla y finalmente el relé se configura en el estado transmitido.
Servidor web:
Ahora sigue el código html que muestra el servidor web:
|
|
Básicamente, cada archivo html está en uno. cabeza y cuerpo dividido. La configuración tiene lugar en la cabeza. Esto también incluye el estilo de los elementos.
El cuerpo también contiene los elementos HTML individuales, como campos de entrada y botones. guión Parte que contiene métodos.
Cuando presiona un botón, se ejecuta un método asignado, que luego transmite la entrada al microcontrolador.
Sin embargo, las funciones y estructura HTML exactas no se discutirán más aquí.
código D1mini
Descarga el programa completo (descarga al final) en el D1mini:
|
#include <ESP8266WiFi.h> //Webserver html// |
El código completo puede aquí ser descargado.
Explicación:
Como en el código del Nano, Al principio se integran las bibliotecas y se inicializan los objetos y variables globales.
El código html también se carga aquí en la memoria. El archivo html completo se ha omitido aquí para mayor claridad.
Los siguientes métodos son las funciones de devolución de llamada del servidor web, con las que se leen las entradas y se muestran cuando se realiza un cambio.
La función readLine básicamente corresponde a la de Nanoprograma utilizado. La única diferencia es que aquí se utiliza la función yield(), que permite que las funciones se ejecuten en segundo plano. Esto significa que no hay problemas con el servidor web debido a procesos en segundo plano bloqueados.
Se inicia un punto de acceso en setup() para que pueda conectarse directamente al D1mini y no sea necesaria una conexión WiFi.
Luego se asignan los métodos de devolución de llamada y se inicia el servidor web.
El bucle() vuelve a estar estructurado de forma análoga al programa del Nano. Aquí la cadena recibida no se evalúa, sino que se envía directamente al servidor porque ya está en formato json.
Después de que ambos microcontroladores hayan sido actualizados, conecte el mini conjunto D1 al conector de clavija UART libre en el Nano-Escudo. Asegúrese de que esté conectado correctamente (puede utilizar el pin GND como referencia en el cableado anterior).
Después de cargar, conéctese a la red abierta "SmartHome". Si recibe una notificación de que la red no tiene acceso a Internet, habilítela Mantener la conexión para la red. Una vez conectado a la red, abra el navegador en el dispositivo conectado e ingrese la dirección 192.168.4.1. A continuación se mostrará la siguiente página donde podrá controlar la casa inteligente.

Figura 3: Captura de pantalla del servidor web
Conclusión:
Ahora que puedes controlar las partes individuales del proyecto a través de un servidor web, aún puedes configurar automatizaciones en el Nano prográmelo, por ejemplo, para utilizar el botón como control. Sin embargo, asegúrese de que no se utilicen bloques (mientras o retraso) en el bucle() para no interrumpir el procesamiento de los datos por parte del servidor web.
Con estas automatizaciones y posiblemente sensores o módulos adicionales, puedes implementar y ampliar tu propio pequeño proyecto de hogar inteligente.
Diviértete replicándolo :)
Para lectores con conocimientos avanzados, también merece la pena echar un vistazo al blog. hackear un árbol, en el que se reprograma el kit del árbol de Navidad y puedes programar tus propios patrones.






