Sistema de automatización del hogar basado en Internet

La domótica es la nueva tendencia entre los hogares urbanos. El sistema domótico permite controlar los electrodomésticos mediante un mando a distancia. El control remoto puede ser un control remoto por infrarrojos, un control remoto por RF o incluso un teléfono celular. Un sistema de automatización del hogar basado en Internet puede ser la configuración más asequible porque dicho sistema se puede controlar desde cualquier lugar y en cualquier momento. Por ejemplo, la persona llega a casa y antes de salir de la oficina y subirse al coche puede encender el aire acondicionado de su salón para que cuando llegue a casa la habitación ya esté fría. Esta ventaja sólo se puede disfrutar en la domótica controlada a través de internet.
Este es un proyecto IOT para domótica basado en Particle Photon. Los electrodomésticos están conectados al Particle Photon a través de un circuito de relé. Algunos sensores, como el sensor de temperatura y humedad DHT-11 y el sensor LDR para detección de intensidad de luz, también están interconectados con Particle Photon. El Photon está conectado al servicio en la nube a través de una conexión Wi-Fi y los comandos para controlar los dispositivos se pasan a través de una página web que se transfiere a través del Servicio de Nube de Partículas.
Particle Photon es una placa IOT compatible con Arduino. Para escribir código de programa para cualquier Photon, el desarrollador debe crear una cuenta en el sitio web de Particle y registrar la placa Photon con su cuenta de usuario. Luego, el código del programa se puede escribir en el IDE web del sitio web de Particle y transferirse a una placa IOT registrada a través de Internet. Si el grupo seleccionado, aquí Photon, está encendido y conectado al servicio de nube de partículas, el código se escribe en la tarjeta seleccionada por aire a través de la conexión a Internet y la tarjeta comienza a funcionar de acuerdo con el código transferido.
Para controlar el tablero a través de internet se desarrolló una página web que utiliza Ajax y Jquery para enviar datos al tablero mediante el método HTTP POST. La página web identifica la placa mediante un ID de dispositivo y se conecta al servicio en la nube de Particle a través de un token de acceso.

Componentes necesarios –

Lado del receptor:
1. Partícula de fotones.
2. Sensor DHT11.
3. Sensor LDR.
4. Una conexión wifi en casa.
5. Relé de 12 V
6. Transistores BC547
7. Resistencia de 1K ohmios
LED de 8, 5mm
9. Enchufe de dos clavijas
10. Soporte de tres puntas
Lado del transmisor:
1. Página web (EngineersGarageIoT.html)

Diagrama de bloques -

Diagrama de blocos do sistema de automação residencial IoT baseado em partículas fótons

Fig. 1: Diagrama de bloques del sistema de automatización del hogar IoT basado en partículas de fotones

Conexiones de circuito –

Protótipo de sistema de automação residencial IoT baseado em partículas fótons

Fig. 2: Prototipo de sistema domótico IoT basado en partículas de fotones

El circuito de relé que opera la función de conmutación de los aparatos está conectado al Particle Photon. También hay dos sensores: el sensor de temperatura y humedad DHT-11 y el sensor LDR conectados a la placa para monitorear la temperatura, la humedad y la intensidad de la luz. El circuito se ensambla de la siguiente manera:

Fuente de alimentación – En el circuito, los módulos de partículas de fotones y sensores necesitan una CC regulada de 5 V, mientras que los relés necesitan una CC regulada de 12 V para su funcionamiento. La red eléctrica de CA se utiliza como fuente primaria de energía. La alimentación de red se reduce mediante un transformador y se rectifica mediante un puente rectificador completo. La salida rectificada se regula a 5 V y 12 V mediante circuitos integrados 7805 y 7812. El pin 1 de ambos circuitos integrados reguladores de voltaje está conectado al ánodo de la batería y el pin 2 de ambos circuitos integrados está conectado a tierra. Las respectivas salidas de voltaje se toman del pin 3 de los respectivos circuitos integrados reguladores de voltaje. También se conecta un LED junto con una resistencia pull-up de 10 K Ω entre la tierra común y el pin de salida para obtener una señal visual de la continuidad de la energía.
Relés: los relés de 12 V 2 A se utilizan para encender o apagar los aparatos de CA del proyecto. Los relés están conectados a los pines D0, D1, D2 y D3 del Particle Photon a través de circuitos de transistores BC547 conectados en una configuración de emisor común. El cable de fase de alimentación de CA se proporciona en el terminal COM de los relés. Cuando se recibe una lógica ALTA en los pines del microcontrolador interconectados, el punto COM cambia del punto NC al punto NO, donde un relé cortocircuita la fase con el cable neutro que conecta la fuente de alimentación del dispositivo. Los LED están conectados en paralelo al circuito de relé con resistencias pull-up en serie. Estos LED proporcionan una indicación visual del estado de encendido/apagado de los dispositivos.
Sensor de temperatura y humedad DHT-11: el sensor DHT-11 lee la temperatura y humedad ambiente y transmite los datos al microcontrolador como datos digitales. El pin de datos del sensor de temperatura y humedad DHT11 está conectado al pin A0 del Particle Photon, y el VCC y la tierra están conectados al VCC y la tierra comunes.
Sensor LDR: el LDR se utiliza para detectar la intensidad de la luz. El sensor está conectado al pin A1 del fotón de partículas. El sensor está conectado a un circuito divisor de potencial. El LDR proporciona un voltaje analógico que el ADC incorporado convierte en una lectura digital.

Cómo funciona el circuito –

Imagem mostrando o sistema de automação residencial IoT baseado em Particle Photon em ação
Fig. 3: Imagen que muestra el sistema de automatización del hogar IoT basado en fotones de partículas en acción
Una vez que el código del programa se transfiere a Particle Photon, comienza a funcionar en consecuencia. El Particle Photon debe estar conectado a cualquier punto de acceso a Internet a través de Wi-Fi. El código compatible con Arduino en el Photon inicialmente apaga todos los dispositivos, pasa una lógica BAJA en los pines que conectan los relés y comienza a recuperar datos de los sensores.
El sensor de temperatura y humedad DHT11 es un sensor digital con un termistor y un sensor de humedad capacitivo incorporados. Transmite una lectura de temperatura y humedad en tiempo real cada 2 segundos. El sensor funciona con una fuente de alimentación de 3,5 a 5,5 V y puede leer temperaturas entre 0° C y 50° C y humedad relativa entre 20% y 95%. El sensor DHT 11 envía datos en formato digital a un pin del controlador en el protocolo de un solo cable que debe implementarse en el lado del firmware. Primero, el pin de datos se configura para la entrada y se le envía una señal de inicio. La señal de inicio comprende un BAJO durante 18 milisegundos seguido de un ALTO durante 20 a 40 microsegundos seguido de un BAJO nuevamente durante 80 microsegundos y un ALTO durante 80 microsegundos.
Después de enviar la señal de inicio, el pin se configura para salida digital y se bloquean los datos de 40 bits que consisten en la lectura de temperatura y humedad. De los datos de 5 bytes, los primeros dos bytes son una parte entera y una parte decimal de la lectura de humedad relativa respectivamente, el tercer y cuarto bytes son una parte entera y una parte decimal de la lectura de temperatura, y el último byte es el de la suma de control. El protocolo de un solo cable se implementa en el firmware utilizando una biblioteca de código abierto disponible para Photon.
El sensor de infrarrojos genera un voltaje analógico en el pin del controlador interconectado. El voltaje analógico se lee y digitaliza utilizando el canal ADC incorporado. La función analogRead se utiliza para leer el voltaje analógico en el pin del controlador.
Los datos leídos del sensor se pasan a la Nube de Partículas a través de una conexión Wi-Fi y la placa espera la orden para encender los dispositivos en el aire. El usuario muestra datos del sensor en la página web y tiene botones para encender o apagar dispositivos en la misma página web. Cuando un usuario toca un botón para encender o apagar un dispositivo, el comando se transfiere a través de Internet a través del servicio de nube de Particle en forma de cadenas en serie. Las cadenas se reciben a través del método HTTP POST de Particle Photon. Al detectar el comando, la placa cambia la lógica digital en el pin respectivo a ALTA para encender el dispositivo o BAJA para apagar el dispositivo.
Consulte el código Photon para saber cómo el código compatible con Arduino detecta comandos en el aire, lee datos de sensores y los publica en la URL de registro de datos vinculada.

Guía de programación –

código de fotones
En primer lugar, se importa la biblioteca de sensores DHT. La biblioteca se agrega automáticamente mediante Particle Web IDE. Se define una constante para indicar el pin al que está conectado el sensor DHT 11 y se define una constante para indicar una variante del sensor DHT. Se declara que las variables contienen el valor de temperatura, humedad e intensidad de luz. Las variables que indican electrodomésticos se declaran y asignan a los pines del microcontrolador. Se declara un objeto de tipo DHT.
Se declara que una matriz de caracteres contiene los datos del sensor que se enviarán a la página web.
Se llama a la función de configuración en la que el pin conectado a los relés se declara como pin de salida utilizando la función pinMode. El sensor DHT se inicializa llamando al método Begin en el objeto DHT. Una variable getpos y una función setpos se exponen desde la nube y se recuperan mediante el método POST llamando a los métodos Particle.variable y Particle.function. La función de configuración se ejecuta solo una vez al comienzo del código.
La función de bucle se llama y se itera infinitamente. En la función de bucle, los datos del sensor DHT se obtienen utilizando los métodos getTempCelcius y getHumidity en el objeto DHT. Los datos del sensor LDR se obtienen llamando al método analogRead y se convierten a intensidad de luz usando fórmulas estándar. Los datos de diferentes sensores se almacenan en variables, se agrupan en cadenas adecuadas y se envían a la URL de registro de datos mediante el método de publicación en el objeto Particle.
Captura de tela da função Loop no código Photon para sistema de automação residencial baseado em IoT
Fig. 4: Captura de pantalla de la función Loop en código Photon para un sistema de automatización del hogar basado en IoT
Este es un archivo HTML que debe ejecutarse para enviar datos al servicio en la nube de Particle. El servicio en la nube se conecta automáticamente a Photon y Code on Photon funciona en función de los datos recibidos de la nube.
Código HTML
Para controlar los electrodomésticos a través de Internet, es necesario crear una página web. La página web tendrá el siguiente HTML y Javascript incrustados en línea. El tipo de documento se declara para configurar la página en la versión HTML 5 y se agrega el elemento principal. Dentro del elemento principal, el juego de caracteres está configurado en utf-8 y la página web está configurada para abarcar toda la ventana. Bootstrap para CSS y Javascript se incluye en la CDN mediante el elemento de enlace. Se declara el elemento del cuerpo y se declara un elemento divisor adicional para contener el contenido de la página web. La página web se estructura a través de otros elementos divisorios y se agregan algunos elementos de párrafo de encabezado y botones. Se incorpora Javascript en el que el ID del dispositivo y el token de acceso se declaran como variables y se crea una función switchLED para formatear la cadena de comando que se pasará al tablero de partículas. Se accede a los elementos de la página a través de la función getElementbyID de JavaScript. Los datos del sensor se obtienen mediante el método JSON.parse y se incrustan en elementos HTML mediante el método InnerHTML. El método $.Post se utiliza para recuperar datos de la nube mediante el método HTTP POST. Captura de tela da página da Web controlando o sistema de automação residencial baseado em IoT
Figura 5: Captura de pantalla de la página web que controla el sistema domótico basado en IoT
Este es un archivo HTML que debe ejecutarse para enviar datos al servicio en la nube de Particle. El servicio en la nube se conecta automáticamente a Photon y Code on Photon funciona en función de los datos recibidos de la nube. El código completo para la domótica basada en Internet se puede encontrar en la pestaña de código fuente.

Nota: El archivo HTML se puede descargar desde el archivo adjunto que se menciona a continuación.

Código fuente del proyecto

###

 //Programa para

 // Esta declaración #include fue agregada automáticamente por Particle IDE.

 #incluir



 //parámetros DHT

 #definir DHTPIN A0

 #definir DHTTYPE DHT11


 //variables

 temperatura interna;

 humedad interna;

 luz interna;

 movimiento int;

 ultravioleta interno;

 int luz_sensor_pin = A1;

 int uv = A3;

 int pos = 0;

 // Pines

 int Dispositivo0 = D0;

 int Dispositivo1 = D1;

 int Dispositivo2 = D2;

 int Dispositivo3 = D3;

 // sensor DHT

 DHT dht(DHTPIN, DHTTYPE);


 // publicarjson.ino - Ejemplo de publicación Spark

 último tiempo largo sin firmar = 0UL;

 char publicarString(64);


 configuración nula {

 Serie1.begin(9600);

 pinMode(Dispositivo0,SALIDA);

 pinMode(Dispositivo1,SALIDA);
 
pinMode(Dispositivo2,SALIDA);

 pinMode(Dispositivo3,SALIDA);

 Escritura digital (Dispositivo0, BAJO);

 Escritura digital (Dispositivo1, BAJO);

 Escritura digital (Dispositivo2, BAJO);

 Escritura digital (Dispositivo3, BAJO);

 dht.comenzar;

 Partícula.función("setpos", setPosition);

 Partícula.variable("getpos", &pos, INT);

 }


 bucle vacío {



 // Medición de temperatura

 temperatura = dht.getTempCelcius;



 // Medición de humedad

 humedad = dht.getHumidity;



 // Medición del nivel de luz

 float light_measurement = analogRead(light_sensor_pin);

 luz = (int)(medición_luz/4096*100);



 int uvValue=analogRead(uv);

 ultravioleta = (valoruv*100)/4023;

 sin firmar largo ahora = milis;

 Partícula.función("led",ledControl);

 // Cada 5 segundos publicamos tiempo de actividad

 si (ahora-últimahora>5000UL) {

 última hora = ahora;

 sprintf(publishString,"{"Temperatura": %u, "Humedad": %u, "Luz": %u}",temperatura,humedad,luz);

 Particle.publish("Tiempo de actividad",publishString);



 }



 }

 int setPosition(String posValue) {
 
pos = posValue.toInt;

 Serial1.printf("%u", pos);

 devolver 0;

 }

 int ledControl (comando de cadena) {

 estado intermedio =0;

 int pinNumber = (command.charAt(1)-'0') - 1;

 if(número de pin < 0 número de pin > 7) devuelve -1;

 if(command.substring(3,7) == "ALTO") estado = 1;

 else if(command.substring(3,6) == "BAJO") estado = 0;

 de lo contrario, devuelve -2;



 escritura digital (número de pin, estado);

 devolver 1;

 }
###

Diagramas de circuito

Diagrama-de-circuito-sistema-de-automatización-del-hogar-IoT-basado-en-fotones-partículas-

Vídeo del proyecto

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.