Inicio en IoT

Buenos días:

Actualmente tengo un kit de iniciación con un Mega 2560 con el que he realizado varios montajes. Quisiera introducirme en el IoT de las cosas y realizar un proyecto en el que pueda hacer al menos lo siguiente:

• Control de temperatura independiente de varias habitaciones.
• Visualizar temperatura, humedad, velocidad del aire exterior y poder utilizar estos parámetros para realizar programas.
• Encendido y apagado individual de los radiadores de calefacción.
• Termostato ambiente para gestión de temperaturas y arranque o parada de calefacción.
• Gestionar el funcionamiento de placas solares para la generación de agua caliente sanitaria.
• Visualizar todos los parámetros en una pantalla situada en el salón, con gráficos y menús, cronotermostato, etc..
• Poder acceder a través de teléfono móvil (tengo wifi en casa) y poder encender-apagar-modificar la calefacción, visualizar temperaturas, etc.
• Control de persianas y toldos.
• Control de luces.

No se si será posible hacer todo lo que me propongo.
¿Es posible hacer todo con un solo microprocesador?
¿Teniendo en cuente que tengo un Mega 2560, que me recomiendan para conexión a mi router wifi y que placas y componentes he de añadir para realizar este proyecto?

Gracias y un saludo

Javier

  1. Si claro que es posible. A mi no me gusta conectar tantas cosas a un solo micro pero gustos son gustos.
    Prefiero el concepto distribuido, donde los sensores existe algo cercano al lugar que se mide, en eso no difiere de tu enfoque pero yo prefiero transmitir desde ahi y uso WIFI, uso nRF24L01, etc para conseguirlo.

  2. Necesitas una placa W5100, W5500 o bien un ENC28J60.

O bien interconectarlo con un ESP8266 y darle capacidad WIFI al sistema independizándote de donde te conectas y si estas o no cerca del router.

Mi idea en un principio es conectar varias entadas analógicas (sondas de temperatura) y varias salidas digitales para activar desactivar radiadores independientemente y en función de la temperatura de la habitación, y todas cableadas hasta la placa del micro, aunque tenga que tirar cables. La placa del micro conectado mediante wifi al router y así poder conectarme mediante alguna aplicación en el teléfono móvil desde cualquier lugar.

También instalar una pantalla táctil en casa para modificar temperaturas, controlar encendido y apagado de caldera, visualizar un cronotermostato. etc.

Echaré un vistazo a las características de las placas que me recomiendas para ir poco a poco formando el "puzle" y buscando información y tutoriales por internet.

Para las pantallas táctiles ¿hay algún software específico para diseñar botones de comandos que interactúen con el Mega2560?

Bueno puedes usar algo muy cómodo que se llama Blynk con tu Arduino y una placa Ethernet por ejemplo o un ESP8266 de algun tipo que se conecte a WIFI.

Blynk maneja la interfaz con Android y tu escribes en Arduino como te comunicas con los dispositivos, sensores etc.

Hola,
En mi caso tengo un Arduino mega+esp8266 que hace las funciones de termostato+alarma+control de persianas (programable). Todo esto con una pantalla táctil TFT.

En una habitación tengo un Arduino nodemcu V3 que manda cada cierto tiempo, por wifi la temperatura de la habitación al Arduino principal.
También tengo otro Arduino nodemcu V3 en el exterior, también, manda por wifi mediciones de temperatura exterior+lectura de lluvia al Arduino principal mediante wifi.

Debajo del botón sal aparece la temperatura de la habitación, con ese botón elijo si tener como referencia la temperatura salón/hab. A la derecha porcentaje lluvia y temperatura exterior.

Estas dos mediciones se leen desde la pantalla del Arduino principal.

Si quieres te puedo pasar todo lo que tengo hecho, cableado más programas.

Adjunto foto de sensor exterior, con sensor de lluvia.
El de la habitación es más pequeño

Hola a todos:

Verdaderamente alucinante y apasionante, es justo lo que iba buscando.
Si me pasas la información que tienes te lo agradecería enormemente pues me facilitaría mucho el empezar.
Estoy deseando adquirir el material y empezar a cacharrear.

Un saludo y gracias por vuestra atención

jbarlop:
Si me pasas la información que tienes te lo agradecería enormemente pues me facilitaría mucho el empezar.

No te recomiendo eso porque se te presentaran multiples problemas a la vez. Enfocate en un solo modulo a la vez. Siempre primero haces funcionar el modulo solo y pruebas cambiar de pines, alterar su funcionsmiento etc. Guarda los codigos y toma foto al hardware.

jbarlop:
Estoy deseando adquirir el material y empezar a cacharrear.

Tampoco te recomiento comprar todo de golpe. Es logico empesar con Arduino por la cantidad de documentacion, pero luego es mas barato NodeMCU (ESP8266) porque ya tiene incorporado el WiFi y porque le sueldas los pines, esos conectores simples de Arduino dan falsos contactos en proyectos permanentes.

Hola,
Estoy deacuerdo con Kike_GL, hay que empezar poco a poco y con modulos sencillos.
Aun asi, por si sigues interesado, adjunto los programas:

tempExt.ino -> nodemcu V3 exterior, manda mediciones de temperatura y lluvia por http al principal.
tempHab.ino -> nodemcu V3 habitación, manda mediciones de temperatura por http al principal.
termostatoV31.ino -> arduino MEGA principal.

Si finalmente te decantas por adaptar los programas que te paso, te ire ayudando "en lo que pueda".
Para empezar, ve bajandote las librerias necesarias.
Si te parece, te puedo pasar un listado del hardware necesario.

Adjunto tambien esquema de conexion del arduino MEGA:

Un saludo

tempExt.ino (8.13 KB)

tempHab2.7.ino (7.2 KB)

termostatoV31.ino (67.7 KB)

Hola:

Yo también estoy de acuerdo con Kike_CL las cosas hay que hacerlas poco a poco para ir asimilando. De momento estoy leyendo información sobre la programación de arduino: estructura, variables, tipos de datos, etc, y si, la idea es ir haciendo pequeños montajes para ir entendiendo mejor la lógica de programación para llegar finalmente (al menos esa es mi intención) a crearme yo mis propios programas.

En cuanto a la compra de material es mas que nada por ahorro de portes.

Gracias mnogales por la información que permite hacerme una idea global del proyecto. Si me vendría bien el listado del material para ir pidiendo.

Una pregunta más: ¿hay algún software para arduino similar al SCADA o a la programación mediante diagrama de funciones (FBD) como en los autómatas?.

Un saludo

El hardware:

2 Arduino nodemcu V3
1 Arduino Mega
1 Pantalla TFT táctil

1 reloj: RTC DS3231
1 Sensor presion: BMP180
1 Sensor Temperatura/Humedad: DHT22
1 Sensor de presencia: HC-SR501
1 Modulo Wifi esp01+Adaptador esp01: El esp01 funciona a 3,3V, MEga a 5V, con este adaptador no tienes que adaptar voltaje
1 Fuente alimentacion MB-102
1 fuente alimentacion arduino 9V
1 Conjunto de Reles

Un saludo

Muchas gracias.

Me pongo "manos a la obra".

Un saludo

mnogales muchas gracias por el aporte, es muy gratificante leer este tipo de proyectos y las ayudas, ya que para los principiantes nos he muuuy dificil comenzar, a pesar de haber hecho muchos cursos de arduino etc etc, plasmar ideas y concretarlas. lo mas importante es entender la logica de un proyecto base y despues adaptarlo a cada necesidad. saludos

Cómo te he comentado por mensaje, he rehecho entero el proyecto.
He puesto Arduino due+esp32.
Además de poner una pantalla mejor y más grande he cambiado la forma en que se comunica el esp32 y Arduino due, ahora se comunican por serial, trabajando los dos independientemente.

Si hay alguien interesado puedo compartirlo...

Yo estoy haciendo algo parecido, para la pantalla te recomiendo Nextion, tiene software propio para programar la parte grafica y botones y solo tienes que preocuparte de mandarle las funciones via serial.
Uso 2 nodeMCU, uno para blynk, subir un log a un excel, obtener hora de internet y previsión del tiempo y otro que hace de servidor web ya que me daba errores con la libreria de blynk, en la web puedo hacer lo mismo que en la pantalla

Hola nuevamente a todos:
Después de un tiempo de estudio (estoy haciendo un curso de programación de Arduino), hoy me he puesto a ver los programas que me envió mnogales, para ir retomando el tema, y los archivos de tempExterior y tempHab me compilan sin errores, sin embargo el archivo termostatoV31 me salen varios errores:

En la linea 10 : #include  <SFE_BMP180.h> sale el error : SFE_BMP180.h: No such file or directory.

He instalado la librería de Adafruit_BMP085 que he encontrado en GitHub y sustituyendo en el código por #include Adafruit_BMP085 pero claro en la linea 87 SFE_BMP180 bmp180; me vuelve a dar el mismo error de fichero no encontrado.
Lo mismo me ocurre con la linea 13: #include "ESP8266.h", no encuentra el fichero.

¿que cambios hay que hacer o qué librerías hay que instalar para corregir los errores?.

Los tres archivos de código separados que me enviaste, ¿hay que "juntarlos" de alguna manera para instalarlos en el Arduino Mega, o instalar alguno en el ESP8266?

La placa que tengo de wifi es la NodeMcu V3 y la he conseguido conectar a wifi de casa sin problemas.

Un saludo

Hola,
Me alegro que intentes adaptarlo a tu proyecto.
En cuanto a la libreria para obtener la presion, utilizo SFE_BMP180-master.zip

Si quieres te puedo ayudar a que te compile, sin embargo, el proyecto lo he rehecho entero. Tenia algunas cosas que no me gustaban mucho. La nueva apariencia es:

El termostato principal, ahora son dos arduinos, arduino DUE que se encarga de lo principal y un arduino esp32 que se encarga de las comunicaciones WIFI, ambos arduinos se comunican por serial.

En la habitacion, y en el exterior tambien he puesto arduino Esp32, los que tenia (nodemcuV3), se quedaron cortos de memoria.

Esta mejora, ademas de haber puesto una pantalla de 5" realiza muchas mas acciones:
-Detecta cual es la ip publica, si la ip publica cambia manda un correo (gmail) y whatsapp para saber siempre como conectarme desde fuera.
-Programacion de hora encendido/apagado desde internet.
-Desde las sondas exteriores (esp32), se puede poner a que ip/puerto mandar las mediciones.
-He protegido la URL principal con un formulario con usuario y contraseña. La apariencia de la web es sencilla:

Si quieres te paso todos los programas. Los whatsapps lo estoy probando, pero he comprobado que no siempre se envian, lo tengo en estudio.

Me he guiado por este enlace para mandar whatsapp.

La parte de la lluvia ha dejado de funcionar, tengo que ver por que, tambien, tambien tengo pensado poner una sonda en la cocina que mande mediciones de humo, si sobrepasa un valor saltara la alarma, esto ultimo no está todavia desarrollado.

Hola:
Con la libreria SFE_BMP180-master.zip ya no me da error en esta parte, pero sigue el error en:

#include "ESP8266.h"...... error ESP8266.h: No such file or directory

¿Que es lo que me falta?

A mi en principio también se me hace un poco pequeña la pantalla de 3" con el tiempo yo creo que también la cambiaré, pero poco a poco yo estoy empezando. Ya sería un logro ver funcionar los que me pasaste.
Si me pasas los nuevos programas los iré añadiendo a medida que vaya aprendiendo.
Un saludo

Los programas tempExterior y tempHab los puedes ir subiendo a las dos sondas NodeMCU V3, de esta forma, podras conectarte a la web y ver la apariencia que tiene, recuerda conectar los sensores de temperatura DHT22.

Para el termostato principal, para el error:

#include  <SFE_BMP180.h> sale el error : SFE_BMP180.h: No such file or directory.

Creo que puse la libreria:
ITEADLIB_Arduino_WeeESP8266-master.zip

El programa que te pase, tiene varias cosas a mejorar, lo primero:

  • Se utiliza softserial con una tarjeta MEGA, lo suyo seria utilizar los puertos serie que ya tra de por si la tarjeta MEGA, este cambio no es nada dificil.
  • La comunicacion entre MEGA y ESP se realiza con comandos AT, previo a esto, tuve que bajar la velocidad del esp8266 con el comando "AT+UART_DEF=9600,8,1,0,0 ", tendria que recordar como hacer esta parte

Por todo esto, te recomiendo que utilices una nueva version que hice, para la pantalla que tienes de 3", utilizando una tarjeta MEGA y nodemcu, ambas se comunican por serial. Esta solucion te quitara de muchos problemas.
Si no quieres tener que unir los dos arduinos, puedes utilizar la placa robotdyn que une una tarjeta MEGA y esp8266. Con esta tarjeta he hecho pruebas y tambien funciona muy bien.

Dime que solucion quieres e intentamos avanzar en esa linea.

Hola,
Mi recomentacion, para reutilizar todo lo que tienes ya comprado es, para el termostato principal utilizar la conbinacion MEGA+NodeMCU con comunicacion serial, para esto te puedo pasar ambos programas.