Autor Tema: Proyecto de Domótica. Encendiendo y apagando luces de casa desde el movil  (Leído 372 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jorge Bern

  • PIC10
  • *
  • Mensajes: 33
    • Mis Proyectos de Electrónica Aplicada
Introducción (un poco larga)

Buenas noches colegas
Hace tiempo que ando dando vueltas con algún proyecto en este tema y tengo claro que hay mucha info en la red, y gran variedad de aplicaciones que transforman cualquier cosa doméstica, hasta un inodoro en inteligente(?) y accesible desde la nube
Esto es porque que la llamada Domótica o IoT (Internet de las cosas) está muy de moda en estos dias y claramente se impondrá globalmente tarde o temprano.
Yo arranco aquí desde un desarrolo simple y básico, usando el hardware que tengo disponible en el cajón, que luego se puede ampliar y sofisticar como se quiera, 
y en este ya he efectuado algunas pruebas satisfactorias.

Los pasos a seguir en mi caso serán:

1) Armar un plaqueta con PIC que maneje unos relés para encender y apagar luces u otros dispositivos, en principio 4.
 Y además correrá un código que como veremos será una especie de servidor de pagina web en lenguaje HTML muy básico

2) El PIC manejará el encendido y apagado de los relés por medio de comandos (strings) seriales simples recibidos en su USART, por ejemplo "ONN1" (encender luz 1), "OFF3" (apagar luz 3), embebidos estos en lenguaje HTML, y también contestará el estado de los relés en lenguaje HTML para que el cliente remoto se entere del exito del comando enviado a través de la nube.

3) El PIC recibirá dichos comandos seriales desde una placa conversora ethernet _ serial, en mi caso una WIZ108SR, que como dije la ya tenía en algún cajón de mi humilde laboratorio y la aprovecho, pero con otros modelos similares de interfaces también podrá funcionar el proyecto.
Las carácteristicas de esta placa WIZ pueden verse aquí:

https://www.wiznet.io/product-item/wiz108sr/

Esta placa que uso porque tengo disponible tiene dos problemitas perfectamente salvables, tiene que ser alimentada con 3,3V y sus señales seriales serán de 3,3V siendo el PIC de 5V, y además su interface serial es norma RS422/RS485 3,3V mientras que en el PIC su USART es norma RS232 de 5V . Una circuiteria adaptadora muy simple que luego veremos salvará este problema.
Como veremos luego en detalle en su configuración, la WIZ108SR es muy versatil y puede configurarse en su lado ethernet TCP/IP como Servidor, Cliente o Mixta, y en su lado serial con distintas velocidades y formatos de datos que se adaptarán a la USART del PIC.
Como ya adelanté, este proyecto usará la modalidad Cliente-Servidor, donde el conjunto WIZ-PIC actuará como Servidor y la aplicación remota desde PC o teléfono movil que nos permitirá finalmente prender u apagar luces en casa, será el cliente.
A la WIZ en su lado TCP/IP le asignaremos un número IP fijo dentro de nuestra red hogareña (LAN), por ejemplo si el modem/router de casa tiene número de red 192.168.1.1, a la WIZ le pondremos por ejemplo 192.168.1.108

4) Abriendo puertos y configurando DNS dinámica en nuestro router
Nuestro router doméstico nos protege de ingresos no deseados a nuestra red doméstica. Pero en algunos casos es necesario que aplicaciones clientes externas alcancen algunos dispositivos en dentro de nuestra LAN con conexiones TCP/IP entrantes, como es el caso de cámaras de vigilancia, dispositivos IoT, servidores de página, etc.
Y como ya vamos viendo,  la placa WIZ y el PIC en este proyecto actuarán como un simple conjunto servidor de página con la función física Ppal. de manejar relés y en consecuencia dispositivos
Entonces para que la conexión entrante de nuestra App cliente remota alcance la WIZ y el PIC deberemos abrir los puertos correspondientes en nuestro router doméstico. Como los mensajes de comando y respuesta estarán embebidos en lenguaje HTML, el puerto a abrir será el 80, y esto también asegurará que los comandos viajen sin escollos en la WEB pues los mensajes HTML son los más comunes de paginas Web y todo enrutador o enlace en la red los dejará pasar.
Esta configuración que veremos luego en detalle en mi router Encore se llama Virtual Server, en otros LAN Routing, etc. dependiendo de marcas y modelos.
Por otro lado, normalmente nuestro router doméstico tendrá asignada una dirección TCP/IP pública dinámica (variable) del lado WAN en la WEB,  que es asignada por nuestro ISP (Internet Service Provider) dentro de un rango de direcciones públicas,  a no ser que algún usuario pudiente pueda pagar por un número de IP público fijo (no es mi caso ni mi interés)
Este problemita de tener un número de IP público variable que no nos permite acceder libremente como un nombre o dominio de Internet, desde la Web a nuestro router de casa, lo vienen a salvar los servidores de sistema dinámico de nombres de dominio ó servidores DDNS
Los servicios DDNS mas difundidos son DynDNS, NO-IP y otros, y la mayoría por suerte proveen uno o dos nombres de dominio gratuitos.
Entonces simplemente abrimos y registramos una cuenta con usuario y password en uno de estos servicios que vienen en nuestro auxilio, seleccionamos un nombre de dominio de nuestro gusto, por ejemplo "laslucesdemicasa.ddns.net", claramente con un dominio así cualquier jacker interesado podrá intuir para que sirve el sitio, pero para que quede claro en principio usaremos este , luego se puede elegir alguno no tan explícito.
Entonces una vez que tenemos esta cuenta activada en el DDNS, configuraremos sus datos en la parte WAN/DDNS de nuestro router doméstico, luego mostraré como es esto en mi ENCORE.

5) Enviando comandos desde nuestro cliente remoto.
Una vez logrados estos pasos con éxito, y con el código correspondiente corriendo en el PIC, simplemente escribiremos en cualquier navegador de PC en cualquier parte del mundo con acceso a Internet, nuestro nombre de dominio seguido del comando deseado, por ejemplo:
www.laslucesdemicasa.ddns.net/ONN1,  y la luz, reflector de patio trasero, u otro dispositivo manejado por el relé número 1 en la placa PIC (casi magicamente) se encenderá , y recibiremos a vuelta de mensaje la confirmación correspondiente de su encendido, y  si tenemos alguna cámara de vigilancia doméstica por allí lo verificaremos.
Luego con el comando www.laslucesdemicasa.ddns.net/OFF1 , dicha luz (nuevamente casi magicamente) se apagará, y recibiremos a vuelta de mensaje nuevamente la confirmación correspondiente.
Como pueden ver está será una manera muy simple y tambíén muy vulnerable de manejar dispositivos eléctricos en nuestra casa u otro sitio, pero que luego podremos complicar o proteger en distintas formas, paswords, comandos codificados, etc.

6) Por último desarrollaremos una App en Android para movil específica para este proyecto para ya no usar un navegador Web, utilizando para esto la plataforma para principiantes (yo soy uno de ellos) del MIT App Inventor, muy amigable y sencilla de usar.

Bueno, como introducción se ha hecho larga, luego en siguientes posteos veremos cada punto en detalle.

Espero sea un tema de vuestro interés, cualquier comentario o sugerencia como siempre bienvenido.

Saludos  :-/


« Última modificación: 16 de Julio de 2021, 03:22:34 por Jorge Bern »

"Voyager 1, llevando el microcontrolador activo que más se alejó de sus programadores"

Desconectado Jorge Bern

  • PIC10
  • *
  • Mensajes: 33
    • Mis Proyectos de Electrónica Aplicada
Re:Proyecto de Domótica. Encendiendo y apagando luces de casa desde el movil
« Respuesta #1 en: 20 de Julio de 2021, 12:03:57 »
Continuando con este tema, veremos ahora la configuración de la interface WIZNET que enlazará nuestra red doméstica LAN con el PIC
Para esto conectamos la WIZ a nuestra LAN y abrimos la Wiznet Configuration Tool que con Search realiza una busqueda automática por MAC address de las placas.

La primera solapa será la de Network donde como dijimos colocamos los parámetros correspondientes de la placa, como TCP Server en nuestra LAN:

 

* wiz1.jpg
(101.54 kB, 665x568 - visto 85 veces)


En la solapa Serial configuramos los parámetros de interface con la USART del PIC, lo típico 9600bps,n,8,1

 

* wiz2.jpg
(83.53 kB, 665x564 - visto 85 veces)


Y por último en la solapa Options configuramos el Inactivity Timer , que el tiempo que tardará el Server en desconectar el enlace TCP si no hay actividad de datos (desconexión por time out), y también podemos configurar una password si requerimos seguridad de ingreso

 

* wiz3.jpg
(93.58 kB, 665x566 - visto 86 veces)


Y esto sería todo por ahora en la configuración de la interface WIZNET

Continuara...

"Voyager 1, llevando el microcontrolador activo que más se alejó de sus programadores"

Desconectado Jorge Bern

  • PIC10
  • *
  • Mensajes: 33
    • Mis Proyectos de Electrónica Aplicada
Re:Proyecto de Domótica. Encendiendo y apagando luces de casa desde el movil
« Respuesta #2 en: 20 de Julio de 2021, 12:18:50 »
A continuación vemos la configuración de mi router doméstico que como ya dijimos deberá enrutar las conexiones TCP entrantes en pórtico 80 hacia la interface WIZNET cuyo IP lo hemos configurado en 192.168.1.108.
 Para otros routers de otros modelos, la configuración será similar.


 

* mo1.jpg
(139.68 kB, 765x581 - visto 84 veces)


Y luego también en nuestro router debemos habilitar el servicio DDNS con una cuenta previamente dada de alta en algún servidor de nuestra elección.
 Como ya dijimos el dominio elegido será "laslucesdemicasa" y el servidor será en este caso el DynDNS

 

* mo2.jpg
(101.06 kB, 768x447 - visto 84 veces)


Y con esto finalizamos las configuraciones básicas de enrutamiento de mensajes del proyecto.

Continuara...



"Voyager 1, llevando el microcontrolador activo que más se alejó de sus programadores"

Desconectado Jorge Bern

  • PIC10
  • *
  • Mensajes: 33
    • Mis Proyectos de Electrónica Aplicada
Re:Proyecto de Domótica. Encendiendo y apagando luces de casa desde el movil
« Respuesta #3 en: 04 de Agosto de 2021, 19:27:00 »
Buenas noches colegas.
En este momento estoy de viaje, así que en unos días continuaré con este proyecto
Saludos

"Voyager 1, llevando el microcontrolador activo que más se alejó de sus programadores"

Desconectado Jorge Bern

  • PIC10
  • *
  • Mensajes: 33
    • Mis Proyectos de Electrónica Aplicada
Re:Proyecto de Domótica. Encendiendo y apagando luces de casa desde el movil
« Respuesta #4 en: 08 de Septiembre de 2021, 11:44:08 »
Buenos días colegas.
Retomando este tema, prepare una placa prototipo muy básica para empezar a probar lo dicho anteriormente, aquí se las muestro

 

* pic1.jpg
(151.56 kB, 1200x1600 - visto 27 veces)


 

* pic2.jpg
(195.11 kB, 1200x1600 - visto 27 veces)


En esta se puede ver la interface WIZ (lado de abajo) con el cable de red que la vincula a mi router doméstico, luego la circuiterìa para adaptar nivel de entrada y salida serial de PIC que se ve con el programador PICKit3 conectado. El circuito adaptador serial tambièn provee salidas TX y RX para monitorear los datos con HiperTerminal por medio del adaptador Serial-USB que también se muestra.
Los tres reguladores de tensión que se ven proveen los 3,3 Voltios de la  placa WIZ, que consume casi 1/4 Amper, entonces estos bajan de 12 Voltios a 8 V, de 8 V a 5 V, y el ultimo de 5V a 3,3V y se calientan bastante.
Las salidas para manejar los reles y las luces serán 4 salidas del PIC, por ejemplo PA0-PA3  que aun no estan cableadas.

Continuamos en breve. Saludos   


"Voyager 1, llevando el microcontrolador activo que más se alejó de sus programadores"


 

anything