domingo, 17 de noviembre de 2019

ESP8266 con MQTT

MQTT (Message Queue Telemetry Transport)  que en español es transporte por telemetria de mensajes haciendo cola.
Es un protocolo de transporte de mensajería de publicación / suscripción de Cliente  Servidor.
Este protocolo es el perfecto para usarse en internet de las "cosas"  IoT , por ser ligero, simple,  abierto, y es más rápido que otras API basadas en solicitud-respuesta como HTTP.
Un solo Microcontrolador como el ESP8266  se puede conectar fácilmente a Internet

En IoT solo  necesitamos transmitir principalmente el estado de una "cosa" a otra "cosa".
 Fue desarrollado originalmente por IBM y ahora es un estándar abierto.
Debido a su sobrecarga de paquetes mínima, MQTT sobresale cuando se transfieren datos a través de la red en comparación con protocolos como HTTP

Protocolo  MQTT


Se compone de un Broker,  que organiza la comunicación entre un servidor  y varios clientes donde los clientes pueden ser:
Teléfono inteligente, 
Sensor de proximidad,
Sensor de temperatura y humedad,
 Mensajería de Internet de las cosas,
 etc.
 y todos se comunican con el servidor que se conoce como Broker.

En este protocolo cada cliente debe conectarse a cualquier dirección del intermediario con un  tópico que se suscribirá en MQTT,. puede haber varios tópicos  y los clientes también pueden suscribirse a varios temas.

El agente es responsable de distribuir mensajes a los clientes interesados ​​(clientes suscritos) con un tópico.
Por ejemplo, si el sensor de temperatura publica los datos de temperatura (mensaje) sobre el tópico  "TEMP", los clientes interesados ​​que se hayan suscrito al tópico  "TEMP" obtendrán los datos de temperatura publicados.

Un dispositivo se conecta a el  BROKER MQTT y publica el mensaje ON en el tópico control y todos los elementos que se encuentren conectados a el BROKER con el mismo tópico recibirán el mensaje ON.

ESP8266 con IFTTT y ThingSpeak

Reaccione a la actividad del canal con un mensaje de texto de IFTTT

 IFTTT es un servicio web que le permite crear applets que actúan en respuesta a una acción de activación. Este ejemplo muestra cómo usar la aplicación React para activar una solicitud HTTP a IFTTT en ThingHTTP . El applet IFTTT  envía un mensaje de texto.

Un canal  registra los valores de temperatura del hogar. En este ejemplo, recibe una notificación de texto cuando la temperatura sube mas de  28 grados

Crear un applet IFTTT
Puede configurar el servicio de webhooks de IFTTT para utilizar solicitudes web para desencadenar una acción. La acción entrante es una solicitud HTTP al servidor web y la acción saliente es un mensaje de texto.

Cree una cuenta IFTTT o inicie sesión en su cuenta existente.
Crear un applet. Seleccione Mis applets y luego haga clic en el botón Nuevo applet .
Seleccione la acción de entrada. Haga clic en la palabra este .


Seleccione el servicio de webhooks. Ingrese Webhooks en el campo de búsqueda. Seleccione la tarjeta de webhooks .
Completa los campos de activación. Después de seleccionar Webhooks como activador, haga clic en Recibir una tarjeta de solicitud web para continuar. Introduzca un nombre de evento. Este ejemplo se usa pasode25  nombre del evento. Haga clic en Crear disparador .


Seleccione la acción resultante. Haga clic en la palabra que . La palabra desencadenante  ahora el icono de Webhooks. Ingrese SMS en la barra de búsqueda y seleccione el cuadro de SMS.
                                 


Seleccione Enviarme un SMS y luego ingrese la información del mensaje de texto. Puede pasar datos sobre el evento que activó su mensaje utilizando ingredientes. Por ejemplo, incluir {{Event Name}}agrega el nombre del evento a su mensaje de texto. Haga clic en Crear acción para finalizar el nuevo applet.


Recupere la información de activación de su Webhooks. Seleccione Mis applets > Servicios y busque Webhooks. Seleccione Webhooks y luego haga clic en el botón Documentación . Usted ve su clave y el formato para enviar una solicitud. Ingrese el nombre del evento. El nombre del evento para este ejemplo es pasode25
https://maker.ifttt.com/trigger/ pasode25 / con / key / XXXXXXXXXXXXXXXXXXXXXX

https://maker.ifttt.com/trigger/pasode25/with/key/XXXXXXXXXXXXXXXXXXXXXX
Puede probar el servicio utilizando el botón de prueba o pegando la URL en su navegador. El desencadenador de eventos IFTTT no siempre es instantáneo. Ahora cree un ThingHTTP para completar la solicitud de activación.

Crear un ThingHTTP
La aplicación ThingHTTP le permite activar solicitudes HTTP predefinidas con una clave API y una solicitud GET desde la web o desde un dispositivo. Este ejemplo muestra cómo usar ThingHTTP para activar Webhooks en IFTTT.

Elija Aplicaciones > ThingHTTP , y seleccione New ThingHTTP .
Editar la configuración de ThingHTTP.
Elija un nombre .
Ingrese la URL de la documentación de Webhooks. La URL de este ejemplo tiene el formulario https://maker.ifttt.com/triigger/pasode25/with/key/xxxxxxxxxxxxxxxxxxxxxx.
Por Método , ingrese GET .
Guarde el ThingHTTP. Ahora cree un React para activar este ThingHTTP en función de los datos de su canal.
Crea una Reacción a tus Datos
La aplicación React puede evaluar los datos de tu canal ThingSpeak y desencadenar otros eventos. Cree una instancia de la aplicación React que se active cuando la casa está demasiado fría. Elija Aplicaciones > Reaccionar , y luego haga clic en Nueva reacción .

Elija un nombre .
Seleccione On Inserción de datos para Frecuencia de prueba .
Elija su canal de temperatura para la condición .
Seleccione el campo apropiado , en este caso el Campo 1.
Establecer el requisito es menor que .
Ajuste el nivel de temperatura, en este caso 25 .
Seleccione ThingHTTP como Acción y elija el nombre del ThingHTTP que definió anteriormente.
En Opciones , elija Ejecutar acción cada vez que se cumpla la condición .


Desencadenar su mensaje
Una vez que la temperatura en el canal alcanza el punto establecido para su Reacción, recibirá un mensaje de texto en su dispositivo.


sábado, 16 de noviembre de 2019

Controla tu interruptor inteligente con tu voz

El comando de voz actualmente tiene una alta tendencia en la industria de IoT, ya que se estima que el 50% de todas las búsquedas web en los próximos años se realizarán con un dispositivo de comando de voz (VCD).
Con  3 servicios en la nube  Google Assistant, IFTTT y WebHooks. controla tu dispositivo esp8266


Google Assistant
El asistente de Google es un servicio de comando de voz basado en inteligencia artificial. Usando la voz, podemos interactuar con el asistente de Google y puede buscar en Internet, programar eventos, configurar alarmas, controlar dispositivos, etc.
Este servicio está disponible en teléfonos inteligentes desde android 6 y dispositivos de Google Home.
Podemos controlar dispositivos domésticos inteligentes, como luces, interruptores, ventiladores y termostatos con nuestro Asistente de Google.



IFTTT
'Si esto, entonces eso'. Podemos crear nuestros propios applets y conectarlos con los servicios disponibles. Crearemos un disparador y luego lo conectaremos a una acción para realizar nuestra tarea específica. En nuestro caso, el disparador será "Asistente de Google" y la Acción será "WebHooks".

WebHook
Un WebHook es  una simple notificación de eventos a través de HTTP

Hablas tu comando
Los servicios de voz de Google lo transcriben y lo envían a IFTTT
IFTTT toma el comando y le dice a Google Assistant  "sí, puedo hacer eso"
IFTTT lo traduce nuevamente en función de un applet que hemos  definido
La acción en su applet le indica a IFTTT que le diga a WebHooks que realice una solicitud HTTP
WebHooks realiza la solicitud a una dirección que apunta a su dispositivo
Y por ultimo tu dispositivo ejecuta la acción.

El interruptor de panel RF de 433 MHz en la pared es una excelente manera de controlar dispositivos de forma remota. Al presionar el interruptor, envía una señal de 433 MHz. Los usuarios deben decodificar esa señal con un receptor de 433 MHz. El interruptor se puede colocar fácilmente en una pared con un grifo adhesivo, sin hacer agujeros en la pared. Además, es inalámbrico, por lo que no hay necesidad de cablear y, posteriormente, ocultar cualquier cable. Este proyecto utiliza dos interruptores de panel de pared. Alternativamente, se podría usar un interruptor de panel con dos botones, mientras que también hay otra versión con tres interruptores, en caso de que uno desee usar tres lámparas.

versión comercial control RF

sábado, 2 de febrero de 2019

ESP8266 con ThingSpeak


ThingSpeak es una plataforma gratuita que sirve  como una base de datos, como mySQL, para almacenar datos leídos de sus dispositivos de Internet de las cosas (IoT), con estos datos  realiza cualquier acción que se necesite cuando los datos  cumplan con una condición.

Ejemplos.
Activar una sirena cuando un sensor de barrera  detecta un cruce
Cuando el detector de humedad alcance un valor critico activar el riego.
Activar una Luz cuando un sensor de proximidad  detecte presencia 



La plataforma ThingSpeak, puede ejecutar acciones basadas en los datos. También proporciona unas APIs:

ThingTweet

Es una API  para que el ESP8266 publique mensajes en Twitter. Puede hacer que un dispositivo le envíe un tweet cuando la temperatura de su invernadero descienda o cuando las baterías de un dispositivo se estén agotando, trabajando en conjunto con React

React

Trabaja con ThingHTTP y ThingTweet para realizar acciones cuando los datos del canal cumplen una determinada condición. Por ejemplo, puede hacer que una aplicación móvil informe su latitud y longitud a un canal ThingSpeak. Cuando su posición esté a cierta distancia de su casa, haga que ThingHTTP encienda las luces de su sala de estar.

ThingHTTP

Recupera datos almacenados en ThingSpeak con solicitud HTTP GET.
ThingHTTP permite la comunicación entre dispositivos, sitios web y servicios web sin tener que implementar el protocolo en el nivel del dispositivo. Especifica acciones en ThingHTTP, que desencadena usando otras aplicaciones ThingSpeak como TweetControl , TimeControl y React .

TweetControl

Permite controlar tu ESP8266 mediante un Tweet. ThingSpeak, hace esto escuchando el hashtag que asignas como activador. Cuando se recibe, ThingSpeak envía su comando al dispositivo utilizando ThingHTTP.

Ejemplo de configuración


Asociar cuenta de Twitter con cuenta de ThingSpeak

Si ha iniciado sesión en una cuenta de Twitter, ThingTweet asocia automáticamente la cuenta de Twitter disponible a su cuenta de usuario de ThingSpeak. Sal de Twitter para asociar una cuenta diferente.

Inicia sesión en ThingSpeak.
Seleccione Aplicaciones > ThingTweet .
Haga clic en Vincular cuenta de Twitter .
Estás redirigido a Twitter. Cuando se le pide que autorice a ThingTweet para usar su cuenta:
Ingrese su nombre de usuario y contraseña de Twitter.
Haga clic en Autorizar aplicación .
Después de confirmar la cuenta de Twitter, haga clic en el enlace Volver a ThingTweet para volver a la página de la aplicación ThingTweet.
Tenga en cuenta que su cuenta de Twitter ahora está vinculada a ThingSpeak
La aplicación genera una clave de API ThingTweet para que la uses.





viernes, 18 de enero de 2019

IFTTT con esp8266

IFTTT con esp8266


IFTTT, es un servicio en línea gratuito para establecer condiciones entre las aplicaciones y otros dispositivos.

Esta formado por un  disparador que se activa cada vez que el servicio Maker o cualquier otro servicio recibe una aviso (disparo)  para ejecutar una tarea con otro servicio.

 Para obtener información sobre la activación de eventos, vaya a la configuración del servicio Maker y luego a la URL (web) que aparece en la lista o toque su nombre de usuario (móvil).
To trigger an Event
Hacer un a POST or GET con:
https://maker.ifttt.com/trigger/{event}/with/key/{token}
Puedes crear applets favoritos para recibir:
 Notificaciones en tu celular,
Facebook Messenger.
 Correo electrónico,
 Llamadas por voip,
  Mensajes sms 
Enviar un Tweet
etc


este es el tweet de respuesta.


También podemos recibir notificación el Facebook Messenger.




Puedes crear tus nuevos applets.
 IFTTT te brinda posibilidades ilimitadas.
¿Lo que necesitarás?
Descarga la aplicación IFTTT e instala esta entu teléfono. Registra una cuenta e inicia sesión. O puedes ir directamente a ifttt.com para registrarse e iniciar sesión.desde la PC. o tu celular y el servicio:

Webhooks

Este es para Integrar otros servicios de IFTTT con sus proyectos de bricolaje. Puedes crear applets que funcionen con cualquier dispositivo o aplicación que pueda realizar o recibir una solicitud web.

1 esp8266


1 sensor de cualquier tipo que envíe un código compatible con :
SC5262 / SC5272
HX2262 / HX2272
PT2262 / PT2272
EV1527 / RT1527 / FP1527 / HS1527



1 Receptor de radio 433 mhz

 Decodificador protocolo EV1527


1 Pic12F629 Que funciona como decodificador  con el pic tenemos las opciones de:
A. Programar hasta 20 comandos o que es lo mismo 20 sensores
B. Botón para armar y desarmar
C. Tener una salida local que active un relevador
D. Solo usamos un pin del ESP8266   (GPIO2) y dejamos GPIO0 )





Programa del esp8266  LUA


--Configuración wifi
------------------------
wifi.setmode(wifi.STATION)
wifi.sta.config("SSIDD","Password")
print(wifi.sta.getip())
tmr.delay(3000)



--Configuración de Pines

--gpio2  conectado al sensor

gpio.mode(2, gpio.INPUT)

-- conectar a IFTTT
print("enviando data a IFTTT ")
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end)
conn:connect(80,'maker.ifttt.com')

conn:on("connection", function(conn, payload)
print("Connected, sending event")
        conn:send("GET /trigger/alarma1/with/key/tutoken?value1="..t1.." HTTP/1.1\r\n")
        conn:send("Host: maker.ifttt.com\r\n")
        conn:send("Accept: */*\r\n")
        conn:send("User-Agent: Mozilla/4.0 (compatible; esp8266 Lua; Windows NT 5.)\r\n")
        conn:send("\r\n")
       
        -- flash LED GPIO5 0.5 seg para indicar que esta enviando
        gpio.write(1, gpio.HIGH)
             tmr.alarm(1, 500, 0, function()
                gpio.write(1, gpio.LOW)
             end)
    end)

conn:on("sent",function(conn)
        print("Closing connection")
        conn:close()
    end)

conn:on("disconnection", function(conn)
        print("Got disconnection...")
    end)

end

-- send data every X ms to thing speak
tmr.alarm(0, 50000, 1, function() sendData() end )


Iot Seguridad y control en el Hogar

Seguridad y Control en el Hogar o la Oficina Iot Programación, Control y Ahorro Energético El concepto de internet de las cosas f...