Un paso más hacia el coche autónomo


Telefónica ha presentado esta semana en Talavera de la Reina(Toledo )  el primer caso de uso de 5G con un minibús eléctrico EZ10 de conducción autónoma, lo que supone el hito inicial del proyecto Ciudades Tecnológicas 5G .

En efecto gracias  a la cobertura 5G de una unidad móvil de Telefónica ,donde se ha desplegado una antena 5G de Ericsson  que usa  la banda 3,5 GHz,  se ha podido  demostrar  eel funcionamiento de     un vehículo eléctrico autónomo  sin conductor  de la compañía EasyMile en el que se ha instalado un terminal 5G de Ericsson

easymile

EasyMile EZ10  es un autobús eléctrico autónomo alimentadado  por una batería de 8 kWh Litio LiFePO4 en 48V de tensión  continua que le ofrece unas 14 horas de autonomia .

Este vehículo es bastante pequeño pues tiene unas medidas de 4mt de longitud por 2 metros de ancho  y unos 2.75mt de alto  con 2.8mt de distancia entre ejes pero aun asi tiene capacidad para hasta ocho personas y permite que otros siete pasajeros viajen de pie o puedan acomodar una silla de ruedas, con el objetivo de ayudar a recorrer el primer trayecto a de un viaje como por ejemplo de conexión entre la linea de metro y una terminal de aviación .

Este modelo EZ10  ya se ha desplegado en más de 100 ciudades y 29 países.

El  vehículo eléctrico de EasyMile cuenta con la tecnología más avanzada en conducción autónoma, integrando numerosos sensores :

  • LIDAR
  • GPS
  • Videocámaras
  • Sensores de poroximidad
  • etc

Todos estos , permiten analizar el entorno y crear un mapa tridimensional del mismo.

Este  vehículo autónomo, al estar permanentemente conectado, puede gestionarse remotamente gracias a la tecnología 5G permitiendo el acceso en tiempo real a sus datos de telemetría internos (sensores, localización extremadamente precisa, velocidad, rango de giro, etc)  de modo que se puede actuar sobre él en cualquier instante.Para que nos hagamos una idea del volumen de datos de la información recogida por los sensores puede llegar hasta 4TB de información diaria por lo que se requiere de un gran ancho de banda para transferir estos datos en tiempo real al borde de la red y de una latencia extremadamente baja. Todo ello de cara a procesar conjuntamente los datos recibidos por los vehículos de una determinada área y proceder a la toma de decisiones, aumentado de este modo la seguridad en entornos  donde cobiven  vehiculos y peatoness.

Con esta demostración, dislumbramos  lo que puede ser al futuro mostrando cómo las capacidades del 5G pueden beneficiar a la conducción autónoma, un ejemplo del gran abanico de nuevas posibilidades del 5G, permitiendo a Ericsson y Telefónica posicionarse como líderes en la transformación de España hacia 5G.

Estimaciones indican que en 2022 existirán unos 10 millones de vehículos autónomos, muchos de ellos recogiendo pasajeros 24 horas al día  asi que etste vehiculo es un buen puento de partdia

Lanzadera de EZ10

EasyMile es pues una empresa pionera en tecnología de vehículos autónomos y soluciones inteligentes de movilidad que desarrolla software para automatizar las plataformas de transporte sin necesidad de infraestructura dedicada .Fundada en junio de 2014, EasyMile SAS desarrolla y comercializa vehículos autónomos.

Fue formalmente una empresa conjunta formada por Ligier y Robosoft Technology PTE Ltd (Francia).

EZ10 se desarrolló con la ayuda del proyecto CityMobil2 cofinanciado por el Séptimo Programa Marco de la Unión Europea para investigación y desarrollo tecnológico

En enero de 2017, se anunció que Alstom había invertido € 14 millones en Easymile y las dos compañías habían firmado un acuerdo de asociación comercial.

En julio de 2017, Continental también anunció una inversión en EasyMile.
EasyMile es una de las empresas líderes que se especializa en tecnología de vehículos autónomos y tiene un alcance global con oficinas centrales en Toulouse (Francia) y oficinas regionales en Denver (EE. UU.), Berlín (Alemania), Melbourne (Australia) y Singapur.

Con más de 100 empleados altamente capacitados y apasionados con experiencia en robótica, visión artificial y dinámica de vehículos, EasyMile suministra soluciones de movilidad inteligente y tecnologías autónomas para vehículos sin conductor: desarrollo de software que permite la automatización de diversas plataformas de transporte, una poderosa gestión interna de flotas solución para vehículos autónomos, y suministro de soluciones de movilidad inteligentes para transportar pasajeros o logística en sitios privados, urbanos, suburbanos o rurales en diversos entornos.

La lanzadera sin conductor EZ10 ya se ha desplegado en 20 países de Asia-Pací fi co, Medio Oriente, América del Norte y Europa. Además de los fundadores, Alstom y Continental también son accionistas de EasyMile.

Por su parte, CarMedia Solutions es una startup española creada con la visión de que el coche conectado y autónomo revolucionará la movilidad y se convertirá en esta Quinta Pantalla.

Un resumen estas son algunas de las características del vehiculos:

  •  100% vehículo eléctrico driverless
  •  Viaja hasta 45 km/H
  •  LLeva hasta 15 pasajeros
  •  Rampa de acceso incorporada para pasajeros con movilidad reducida
  • Opera en rutas fijas o bajo demanda
  •  Supervisado por el software de gestión de flotas EASYMILE
  •  Opera en carreteras existentes sin necesidad de infraestructura adicional

El caso de uso en Talavera de la Reina se enmarca en el proyecto Ciudades Tecnológicas 5G, puesto en marcha por Telefónica el pasado mes de enero, para convertir Talavera de la Reina y Segovia en laboratorios vivos 5G donde realizar en paralelo tanto el despliegue tecnológico como los casos de uso que permitan poner en valor las capacidades del 5G.

Fuente https://www.telefonica.com/es/web/sala-de-prensa/-/telefonica-presenta-el-primer-caso-de-uso-5g-con-conduccion-autonoma-y-consumo-de-contenidos

Anuncios

Cómo visualizar datos de sensores en tiempo real desde su hub de IoT Azure


Vimos  en  un post anterior  cómo es  posible usar Power BI de Azure  para visualizar datos de los sensores en tiempo real desde Azure IoT, pues bien,  existe otra posibilidad para  visualizar datos de los sensores en tiempo real que el hub de IoT recibe , que es  ejecutando una aplicación web que está alojada en la nube de Azure .

Para  cumplir con nuestro propósito de ver los datos de telemetría de nuestro dispositivo de Iot conectado a la nube de Iot Azure Edge ,    veremos como crear una aplicación web en el portal de  Azure preparando su hub de IoT para acceso a datos mediante la adición de un grupo de consumidores. Hecho esto configuraremos una aplicación web para leer datos del sensor de su hub de IoT y subiremos  esta aplicación web  a la nube de Azure ,la cual  nos permitirá  ver desde un navegador los datos de telemetría enviados  desde su hub de IoT ¿le interesa el tema? pues si es así empezemos.

Antes de empezar   deberíamos   tener configurado  un dispositivo Iot de Azure como por ejemplo  algunos que hemos visto como puede ser una Raspberry Pi 3  , un ESP8266  o incluso un dispositivo simulado.  Como hemos comentado en otros  posts todos esos  dispositivos de Azure IoT  hub  deben implementar una aplicación de ejemplo la cual  enviará  datos que  los sensores recogen del mundo físico ( humedad , temperatura, presencia, etc  ) a su hub de IoT.

Asimismo  teniendo dispositivos IoT enviando mensajes  de telemetría a la nube de Azure Iot Edge, para lograr persistencia en la nube de Azure  necesitamos una cuenta de Azure storage  así como  una aplicación Azure  para poder almacenar los mensajes de hub de IoT en el almacenamiento blob  como hemos visto en otros posts

Crear una aplicación web

  1. En el portal de Azure, haga clic en Crear un recurso > Web y móvilAplicación Web > Aplicación web
  2. Escriba un nombre único para la aplicacion  y anotar pues nos sera util para acceder a esta
  3. Verificar la suscripción  que para este ejmeplo pude ser “Evaluacion gratuita” si no dispone de otro recurso de este tipo
  4. Especifique un grupo de recursos  pinchando en Usar existente y  pinchando en el disponible
  5. Finalmente  seleccione Anclar al  panel y a continuación, haga clic en Crear.hestiaweb.PNG
  6. Este proceso puede tardar varios minutos dada la complejidad de  su realización ( localizar una máquina virtual disponible , obtener permisos , crear la instancia web ,etc)
  7. En este momento  , copie vaya nuevamente al servidor web –>introducción y copie el valor del campo URL ( sera del tipo   https://xxxx.azurewebsites.net/)    de modo que como debería estar  corriendo  su web se obtendrá una respuesta  parecida  la siguiente si copiamos dicha url en un navegador:azureweb.PNG

 

Añadir un grupo de consumidores a su hub de IoT

Los grupos de consumidores son utilizados por las aplicaciones para extraer datos desde Azure IoT, por ello necesitamos crear un grupo de consumidores para ser utilizado por un servicio de Azure para  leer los  datos de su centro de IoT.

Para agregar un grupo de consumidores a su hub de IoT, siga estos pasos:

  1. En el portal de Azure, abra su hub de IoT.
  2. En el panel izquierdo  casi en la parte más inferior en el apartado Mensajería , seleccione Puntos de conexión y  haga clic en este.
  3. Seleccione en el panel central  events  , introduzca un nombre en grupos de consumidores en el panel derecho y haga clic en Guardar.stream.PNG

Configurar la aplicación web para leer datos de su centro de IoT

  1. Abra en Azure la aplicación web que ha aprovisionado.
  2. Haga clic en el marco izquierdo casi  al final en CONFIGURACION->Configuración de la aplicación, y luego en configuración de la aplicación, agregue los siguientes pares clave/valor:
    Clave Valor
    Azure.IoT.IoTHub.ConnectionString Obtenidos desde el explorador de iothub  en  Azure IOT HUB >xx – Explorador de dispositivos–>OD del Dispositivo xxx –>cadena de conexion clave principal
    Azure.IoT.IoTHub.ConsumerGroup El nombre del grupo de consumidores que se agrega a su hub de IoT cumplimentado en el  apartado anterior

    hestiaweb_configuracion.PNG

  3. Haga clic en configuración de la aplicación, debajo de configuración General, activar la opción de  Web  Sockets  ( esta desactivado por defecto ) y a continuación, haga clic en Guardar.

Subir una aplicación web

En GitHub, Microsoft ha puesto a nuestra disposición muchas aplicaciones web de ejemplo para desplegar en Azure . Nos interesa  el código en node.js  de una aplicación  web completa que puede mostrar los  datos de telemetría  en tiempo real desde su hub de IoT .

Todo lo que se  necesita hacer es configurar la aplicación web para trabajar con un repositorio Git, descargar la aplicación web de GitHub y luego subir a Azure de la aplicación web al host.

El repositorio web-apps-node-iot-hub-data-visualization contiene el código en node para desplegar una aplicación web en la nube de Azure, que puede leer los datos de temperatura y humedad del IoT hub y mostrar los datos en tiempo real en un gráfico de líneas en una página web.

Los navegadores compatibles son

Navegador La menor versión
Internet Explorer 10
Borde 14
Firefox 50
Cromo 49
Safari 10
Ópera 43
iOS Safari 9.3
mini Opera TODAS
Navegador de Android 4.3
Chrome para Android 56

Los pasos  a seguir para desplegar esta aplicación son los siguientes:

  1. En la aplicación web, haga clic en IMPLEMENTACION ->Opciones de implementación > Elegir origen > Repositorio de Git Local y haga clic en Aceptar.Configure your web app deployment to use the local Git repository
  2. Tenga en cuenta que para modificar o eliminar  el origen de implementación  que acaba de crear is fuera el caso , primero necesitara desconectar este origen   por lo si lo hace tendrá  que volver a  ir a  IMPLEMENTACION ->Opciones de implementación   y volver a empezar con el proceso
  3. Haga clic en Credenciales de implementación, crear un nombre de usuario y contraseña para conectarse con el repositorio de Git en Azure y a continuación, haga clic en Guardar.
  4. Haga clic en Introducción y anote el valor de Git clone url (a la izquierda justo debajo de Git/nombre de usuario de implementación).Get the Git clone URL of your web app
  5. Abra una ventana de terminal en el equipo local o un comando.
  6. Descargar la aplicación web de GitHub y subirlo a Azure de la aplicación web al host. Para ello, ejecute los siguientes comandos:

giti clone.PNG

  • cd web-apps-node-iot-hub-data-visualization
  • git remote add webapp uri  (uri es la url del repositorio Git obtenida  en la página de Resumen de la aplicación web que se obtiene al pulsar Introducción).
  • git push webapp master:master  (se pedirán las credenciales  de Git que introdujo en en el apartado anterior en  la página de Overview , tenga en cuenta la Git clone url .)gitmanager
  • En resumen  estos son todos los comandos desde el interfaz  delñinea de comandos (cmd)    lanzados asi como la salida de esta:
C:\Users\Carlos>git clone https://github.com/Azure-Samples/web-apps-node-iot-hub-data-visualization.git
Cloning into ‘web-apps-node-iot-hub-data-visualization’…
remote: Counting objects: 35, done.
remote: Total 35 (delta 0), reused 0 (delta 0), pack-reused 35
Unpacking objects: 100% (35/35), done.
C:\Users\Carlos>cd web-apps-node-iot-hub-data-visualization
C:\Users\Carlos\web-apps-node-iot-hub-data-visualization>git remote add webapp https://[email protected]:443/Webestia.git
C:\Users\Carlos\web-apps-node-iot-hub-data-visualization>git push webapp master:master
Counting objects: 35, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (30/30), done.
Writing objects: 100% (35/35), 77.64 KiB | 3.23 MiB/s, done.
Total 35 (delta 6), reused 0 (delta 0)
remote: Updating branch ‘master’.
remote: Updating submodules.
remote: Preparing deployment for commit id ‘4b9c09be9b’.
remote: Generating deployment script.
remote: Generating deployment script for node.js Web Site
remote: Generated deployment script files
remote: Running deployment command…
remote: Handling node.js deployment.
remote: KuduSync.NET from: ‘D:\home\site\repository’ to: ‘D:\home\site\wwwroot’
remote: Deleting file: ‘hostingstart.html’
remote: Copying file: ‘.eslintignore’
remote: Copying file: ‘.eslintrc’
remote: Copying file: ‘.gitignore’
remote: Copying file: ‘.travis.yml’
remote: Copying file: ‘LICENSE’
remote: Copying file: ‘package.json’
remote: Copying file: ‘README.md’
remote: Copying file: ‘server.js’
remote: Copying file: ‘IoThub\iot-hub.js’
remote: Copying file: ‘public\index.html’
remote: Copying file: ‘public\javascripts\Chart.min.js’
remote: Copying file: ‘public\javascripts\index.js’
remote: Copying file: ‘public\javascripts\jquery-2.1.4.min.js’
remote: Copying file: ‘public\stylesheets\style.css’
remote: Using start-up script server.js from package.json.
remote: Generated web.config.
remote: The package.json file does not specify node.js engine version constraints.
remote: The node.js application will run with the default node.js version 6.9.1.
remote: Selected npm version 3.10.8
remote: ….
remote: npm WARN deprecated [email protected]: This package is no longer supported. It’s now a built-in Node module. If you’ve depended on crypto, you should switch to the one that’s built-in.
remote: …………………………………………..
remote: [email protected] D:\home\site\wwwroot
remote: +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | +– [email protected]
remote: | | | | `– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | `– [email protected]
remote: +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | `– negot[email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | +– [email protected]
remote: | | | +– [email protected]
remote: | | | `– [email protected]
remote: | | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | +– [email protected]
remote: | | `– [email protected]
remote: | +– [email protected]
remote: | `– [email protected]
remote: +– [email protected]
remote: `– [email protected]
remote: +– [email protected]
remote: `– [email protected]
remote:
remote: Finished successfully.
remote: Running post deployment command(s)…
remote: Deployment successful.
To https://webestia.scm.azurewebsites.net:443/Webestia.git
* [new branch] master -> master
C:\Users\Carlos\web-apps-node-iot-hub-data-visualization>
  • Ahora  ya puede abrir la aplicación web para ver los datos de temperatura y humedad en tiempo real desde su hub de IoT. En este momento  ,  vaya nuevamente al servidor web –>introducción y copie el valor del campo URL ( sera del tipo   https://xxxx.azurewebsites.net/)    de modo que como debería estar  corriendo  su web se obtendrá una respuesta  parecida  la siguiente si copiamos dicha url en un navegador:

 

En la página de su aplicación web, haga clic en la URL para abrir la aplicación web.

Get the URL of your web app

Debería ver los datos de temperatura y humedad en tiempo real desde su hub de IoT.

Web app page showing real-time temperature and humidity

Metodo alternativo sin usar los servicios web de Azure

Se necesita tener el  servidor node.js instalado.

  • Necesitara  dos  valores: valor1 y valor2:
    • El valor1 para  Azure.IoT.IoTHub.ConnectionString  se  obtiene  desde el explorador de iothub  en  Azure IOT HUB >CONFIGURACION -Directivas  de acceso compartido  –>cadena de conexión clave principal
    • El valor2 para  Azure.IoT.IoTHub.ConsumerGroup  se obtiene de del nombre del grupo de consumidores que se agrega a su hub de IoT cumplimentado en el  apartado anterior
  • Vaya al interfaz de comandos  , situase en el directorio donde descargo el ejemplo  y ejecute los siguintes comandos:
    • set Azure.IoT.IoTHub.ConnectionString=  valor1
    • set Azure.IoT.IoTHub.ConsumerGroup= valor 2
    • npm install
    • npm start​nodejsiothub
  • En este momento  ,simplemente acceda al fichero html y ejecútelos  de modo que como debería estar  corriendo el servidor node,js  se obtendrá  respuesta en un navegador similar a la anterior

 

 

.

 

Fuente :  https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-live-data-visualization-in-web-apps

Como desactivar temporalmente un terminal conectado por wifi


En efecto si es cliente de  Movistar de fibra o  cobre gracias a la  aplicación Movistar Smart WiFi,  disponible en Google Play  (versiones 4.4 y 7.0) y App Store(entre las versiones 7 y 10.3.1)       se puede  desactivar temporalmente cualquier equipo o terminal que esté conectado a la red wifi de su hogar si cuenta con algunos de los siguientes routers :
  • Router Smart WiFi Fibra (HGU Askey RTF3505VW).
  • Router Smart WiFi Fibra (HGU Askey RTF3507VW HPNA).
  • Router Smart WiFi Fibra (HGU Mitrastar GPT2541GNAC).
  • Router Smart WiFi Cobre (XDSL Mitrastar DSL2401HNT1C).
  • Router Smart WiFi Cobre (XDSL Askey RTV9015VW).
  • Router Smart WiFi Cobre (XDSL Light Plus Mitrastar DSL2401HNAT1C

Por el momento, las funcionalidades de la aplicación Movistar Smart WiFi están disponibles solo para el Router Smart WiFi Fibra y el Router Smart WiFi Cobre, pero en caso de ser cliente de  Movistar y no posea un router compatible, se  puede cambiar el actual  por otro  compatible    (es decir alguno  de los anteriores)

Esta app  ademas también permite  otras funcionalidades mas , como por ejemplo;.

  • Cambiar el nombre y la clave de su WiFi.
  • Activar un WiFi exclusivo para sus invitados, sin compartir tu clave.
  • Organizar la conexión de sus hijos o eliminar a intrusos conectados.
  • Bloquear y desbloquear la conexión a WiFi de cualquier dispositivo
  • Optimizar la velocidad de tu conexión con un solo click
Los  pasos para  desconectar o  conectar un equipo o terminal a  su red  en realidad son muy sencillos:

1-Descargue la app

Compruebe que el sistema operativo de su terminal sea compatible con la aplicación  Smart  Wifi, que para Android son las versiones 4.4 y 7.0 y para IOS entre las versiones 7 y 10.3.1.

En función  de que el terminal sea Android o IOs descargue  e instale la aplicación Movistar Smart  Wifi  desde Google Play o desde  la App Store

App Movistar Base Google Play  App Movistar Base App Store

2- Asocie la aplicación Movistar Smart WiFi con el Router Smart WiFi

Asegúrese de que su terminal se encuentra conectado al WiFi del router desde el cual intentamos activar o desactivar el acceso .

Ahora solo tiene que buscar la clave de acceso al router  , la cual  es diferente de la clave de Wifi.

Para Routers Smart WiFi Fibra (es decir el HGU) la clave de 8 dígitos  aparece en el sticker pegado en la parte inferior del router. Para Routers Smart WiFi Cobre (ADSL/VDSL)la clave que viene por defecto en el manual del router“admin” ,pero si la ha cambiado y no la recuerda basta pinchar con un alfiler el agujerito de reset para que vuelva a tomar la pwd por defecto

 Screenshot_2018-04-03-16-19-37-458_com.movistar.base[1]

Ejecute la aplicación  e introduzca    la contraseña del router y empezara la app a recolectar datos de router

Screenshot_2018-04-03-16-21-29-474_com.movistar.base[1]

Una vez concluido el proceso de inicializacion primera , nos dará la bienvenida a la la app:

Screenshot_2018-04-03-16-21-43-317_com.movistar.base[1]

Lo primero que nos sugiere es cambiar la clave de la WIFI , paso que podemos saltar o inlcluso retomar en otra ocasion:

Screenshot_2018-04-03-16-21-55-322_com.movistar.base[1].png

 

Ahora puede pulsar “Sigamos adelante”

3-Bloqueo de un dispositivo:

Una vez ya dentro de la aplicación  Smart WiFi   vera el mapa de dispositivos coenctado a su red  ( también puede  pulsar  la pestaña inferior “Dispositivos” para verlo en forma de lista)

 

Screenshot_2018-04-03-16-22-11-127_com.movistar.base[1].png

Observe que aparecen los equipos  clasificados por tecnologia y tipologia

Si deseamos bloquear un terminal móvil pinche en el icono del movil

Screenshot_2018-04-03-16-22-40-527_com.movistar.base[1]

Seleccione ahora  de la lista presentada el dispositivo que quiere bloquear y presione el botón “Bloquear Dispositivo”

 

Screenshot_2018-04-03-22-18-20-902_com.movistar.base[1]

Al pulsar el botón de bloquear dispositivo se informara en verde de que se ha realizado la operación correctamente:

Screenshot_2018-04-03-22-18-31-962_com.movistar.base[1]

Como es obvio enseguida el terminal  sera desconectado apareciendo en la lista de dispositivos bloqueados.
Screenshot_2018-04-03-22-36-35-199_com.movistar.base[1].png

Puede bloquear y desbloquear cualquier  dispositivo en cualquier momento. Cuando un dispositivo esté bloqueado, no podrá acceder a la WiFi hasta que sea desbloqueado.

Para desbloquearlo ir nuevamente al dispositivo sobre el , pulsar el botón de desbloqueo y enseguida tendrá acceso nuevamente a la red

 

Screenshot_2018-04-03-22-36-39-613_com.movistar.base[1]

4- Otras funcionalidades interesantes

Ademas de desactivar una coenxion , se pueden hacer cosas muy interesantes como desactivar el wifi de inviatdos , compartir la clave o hace un dianostico:

Activar o desactivar el WiFi de invitados

En la app Smart WiFi  pinche el ícono “+” en la pantalla de inicio. Seleccione WiFi Invitados y elijae una clave que no le importe compartir. Una vez habilitada la red de invitados, permanecerá activa hasta que decida desactivarla. Los dispositivos que accedan a esta red, solo accederán a internet, pero no tendrán acceso a su red interna 

Compartir la clave de mi WiFi

En la app  Smart WiFi  pinche el ícono de router “M” (Mi Red). En la sección “Gestiona tu red” elija la red que quiere compartir. Toque la contraseña para copiar el texto o utilize el ícono “compartir” para enviarla por Whatsapp, Correo Electrónico, SMS, Bluetooth, etc.).

Diagnóstico de la conectividad de mi red:

Acceda desde el ícono del router “M” (Mi Red) en su aplicación Smart WiFi ,seleccione “Movistar Base” y pinche el ícono de una herramienta. Una vez seleccionada esta opción, se ejecutará el diagnóstico. Si encontrara alguna incidencia, podrá resolverla apretando el botón “optimizar” o revisando los tips de ayuda.

Cambiar el nombre o la foto asociada a un dispositivo.

Se puede cambiar la imagen que aparece junto al dispositivo,para ello desde la pantalla de inicio de su aplicación  Smart WiFi,seleccione la pestaña “Dispositivos”,elija el dispositivo que quiere personalizar,elija una fotografía para asociarla al dispositivo (puede tomarse  con la cámara  o bien elegir una imagen de la galería de fotos) .También en el campo “Tipo de dispositivo”, puede elegir la categoría a la cual quieres asociar ese dispositivo (Smartphone, Tablet, Smart TV, etc.).

 

Cambiar el nombre y/o la clave de su WiFi

Desde la app pinche el ícono de router. En la sección “Gestiona tu red” elija la red que quiera modificar, tocando su nombre.Puede personalizar el nombre y contraseña de cada red WiFi (WiFi, WiFi Plus o WiFi Invitados) en cualquier momento.

Si cambia el nombre o la clave de la red, los dispositivos que tuviese conectados perderán la conexión automáticamente y tendrá que volver a conectarlos con los nuevos parámetros.

Envío de datos a la nube de Azure desde ESP8266 usando DHT11 o DHT22


 DHT11 y  DHT22 son dos modelos de una misma familia de sensores, que permiten realizar la medición simultánea de temperatura y humedad usando ademas un único  hilo para comunicar los datos vía serie, para lo cual  ambos  disponen de un procesador interno que realiza el proceso de medición, proporcionando la medición mediante una señal digital, por lo que resulta muy sencillo obtener la medición desde un microprocesador como Arduino o ESP8266.

Ambos son similares ( DHT11 presenta una carcasa azul  , mientras que el sensor DHT22  es blanco)  compartiendo además los mismos pines  disponiendo de  4 patillas, de las cuales usaremos sólo 3: Vcc, Output y GND.  Como peculiaridad ,la  salida la conectaremos a una entrada digital  , pero necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El  DHT11  puede medir temperaturas entre 0 a 50, con una precisión de 2ºC, humedad entre 20 a 80%, con precisión del 5% y con una a frecuencia de muestreo de 1 muestras por segundo (1 Hz)

En clara superioridad  con el dHT11 , el modelo DHT22 tiene unas características mucho más profesionales.
  • Medición de temperatura entre -40 a 125, con una precisión de 0.5ºC
  • Medición de humedad entre 0 a 100%, con precisión del 2-5%.
  • Frecuencia de muestreo de 2 muestras por segundo (2 Hz)

Destacar que este tipo de  sensores de temperatura  ( y, aún más, los sensores de humedad) , son sensores con elevada inercia y tiempos de respuesta elevados. Es decir, al “lentos” para reflejar los cambios en la medición.

 

Conectar el DHT11   o el DHT22  a  un Arduino o ESP82366  es sencillo, simplemente alimentamos desde Arduino al sensor a través de los pines GND y Vcc del mismo. Por otro lado, conectamos la salida Output a una entrada digital de Arduino. Necesitaremos poner una resistencia de 10K entre Vcc y el Pin Output.

El esquema eléctrico queda como la siguiente imagen

arduino-dht11-dht22-esquema

Los sensores DHT11 y DHT22 usan su propio sistema de comunicación bidireccional mediante un único hilo , empleando señales temporizadas por lo que en general, lo normal es que empleemos una librería existente para simplificar el proceso.Por ejemplo podemos usar la librería de Adafruit disponible en este enlace.

Una vez  descargada e instalada  la librería  por ejemplo podemos capturar la información de un sensor DHT11  con este código :

#include “DHT.h”
#define DHTTYPE DHT11   // DHT 11
const int DHTPin = 5;     // conexion del pin digital
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println(“DHTxx test!”);
 
   dht.begin();
}
 
void loop() {
   //esperar unos 2000ms
   delay(2000);
 
   // Leyendo temperatura  o humedad  toma  sobre unos 250 ms
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println(“Fallo al leer el sensor DHT “);
      return;
   }
  
   Serial.print(“Humedad: “);
   Serial.print(h);
   Serial.print(” %\t”);
   Serial.print(“Temperatura: “);
   Serial.print(t);
   Serial.print(” *C “);
}

 

 

Conexión de un DHTXX a un  ESP8266 

Para resultados mas profesionales puede usar un DHT22 ( es el usado en el ejemplo ) , pero  como hemos comentado el DHT11  para fines experimentales  es también aceptable .

Las  simples conexiones  la puede utilizar  una  placa de pruebas, y  cables de puente o directamente con cablecillos  para realizar las conexiones de la siguiente manera:

referencia de conexiones

 

Para los pines  del sensor, usaremos el siguiente cableado:

Start (Sensor) Fin (Junta) Color del cable
VDD (Pin 27F) 3V (Pin 8A) cable rojo
DATOS (Pin 28F) GPIO 2 (Pin 9A) Cable blanco
GND (Pin 30F) GND (Pin 7J) Cable negro

 

 

Por  ultimo utilice un cable USB Micro USB a Tipo A para conectar Sparkfun ESP8266 Thing Dev a su ordenador 

Crear un centro de IoT

  1. Inicie sesión en el portal de Azure .
  2. Seleccione Crear un recurso > Internet de las cosas > IoT Hub .Captura de pantalla de la navegación del portal Azure al centro de IoT
  3. En el panel de hub de IoT , ingrese la siguiente información para su hub de IoT:
    • Nombre : crea un nombre para tu hub de IoT. Si el nombre que ingresa es válido, aparece una marca de verificación verde.

     

    • Nivel de precios y escala : para este tutorial, seleccione el nivel F1 – Gratuito .
    • Grupo de recursos : cree un grupo de recursos para alojar el concentrador de IoT o use uno existente.
    • Ubicación : Seleccione la ubicación más cercana para usted.
    • Fijar al tablero : marque esta opción para acceder fácilmente a su hub de IoT desde el tablero.Ventana del concentrador IoT
  4. Haga clic en Crear . Su hub de IoT puede tardar unos minutos en crearse. Puede controlar el progreso en el panel de notificaciones .

Ahora que ha creado un concentrador de IoT, ubique la información importante que usa para conectar dispositivos y aplicaciones a su hub de IoT.

  1. Después de crear su concentrador de IoT, haga clic en él en el tablero. Tome nota del nombre de host y luego haga clic en Directivas de acceso compartido .Obtenga el nombre de host de su centro de IoT
  2. En el panel Políticas de acceso compartido , haga clic en la política iothubowner , y luego copie y anote la cadena de conexión de su centro IoT.

Obtenga su cadena de conexión del hub de IoT

Registre un dispositivo en el hub de IoT para su dispositivo

  1. En el portal de Azure , abra su concentrador de IoT.
  2. Haga clic en Explorador de dispositivos  .
  3. En el panel Explorador de dispositivos, haga clic en Agregar para agregar un dispositivo a su centro de IdC. 
  4. Luego ingrese la ID del nuevo dispositivo en:ID del dispositivo ( Debe saber que los  ID de dispositivo son sensibles a mayúsculas y minúsculas)
  5. Tipo de autenticación : Seleccione la clave simétrica 
  6. Generar claves automáticamente : seleccione esta casilla de verificación.
  7. Conecte el dispositivo al Hub de IoT : haga clic en Habilitar .Agregue un dispositivo en el Explorador de dispositivos de su centro de IoT
  8. Haga clic en Guardar .
  9. Después de que se crea el dispositivo, abra el dispositivo en el panel Explorador de dispositivos .
  10. Tome nota de la clave principal de la cadena de conexión.Obtener la cadena de conexión del dispositivo

 

Reúna los datos del sensor y envíelos a su centro de IoT

En el ejemplo  se  implementa y ejecuta una aplicación de muestra en Sparkfun ESP8266 Thing Dev. La aplicación parpadea el LED en Sparkfun ESP8266 Thing Dev y envía los datos de temperatura y humedad recopilados del sensor DHT22 a su hub de IoT.

Obtenga la aplicación de muestra de GitHub

La aplicación de ejemplo está alojada en GitHub. Clone el repositorio de muestras que contiene la aplicación de muestra de GitHub. Para clonar el repositorio de muestras, siga estos pasos:

  1. Descargue e instale el programa Git ,por ejemplo desde https://gitforwindows.org/git
  2. Abra un símbolo del sistema o una ventana de terminal.
  3. Vaya a una carpeta donde desea que se almacene la aplicación de muestra.
  4. Ejecute el  Git
  5. Ahora desde el interfaz del Git en modo comando ejecute

 

Instale ahora el paquete para  el ESP8266 en Arduino IDE:

  1. Abra la carpeta donde se almacena la aplicación de muestra que descargo desde el comando git clone.
  2. Abra el archivo app.ino en la carpeta de la aplicación en Arduino IDE.
  3. En el IDE de Arduino, haga clic en Archivo > Preferencias .
  4. En el cuadro de diálogo Preferencias , haga clic en el icono que se encuentra junto al cuadro de texto Direcciones URL del administrador de tarjetas adicionales .
  5. En la ventana emergente, ingrese la siguiente URL http://arduino.esp8266.com/stable/package_esp8266com_index.json                                    señalar a un paquete url en arduino ide
  6. Haga  luego haga clic en Aceptar .
  7. En el cuadro de diálogo Preferencias , haga clic en Aceptar .
  8. Haga clic en Herramientas > Placa > Administrador de placas , y luego busque esp8266. Se debe instalar ESP8266 con una versión de 2.2.0 o posterior.En caso del ESP12E DEVKIT V2, seleccione NodeMCU 1.0(ESP-12E Module)

Instalación de  las bibliotecas necesarias

  1. En el IDE de Arduino, haga clic en Programa > Incluir libreria> Gestionar librerias .
  2. Busque los siguientes nombres de biblioteca una por una:
    • AzureIoTHub
    • AzureIoTUtility
    • AzureIoTProtocol_MQTT
    • ArduinoJson
    • DHT sensor library 
    • Adafruit Unified Sensor
  3. Para cada una de las bibliotecas que encuentre, haga clic en Instalar .

Implementar la aplicación de muestra  para ESP8266 

  1. En el IDE de Arduino, haga clic en Herramienta > Puerto , y luego haga clic en el puerto serie que le presente el interfaz de Arduino  para el  ESP8266(por ejemplo “COM3” )
  2. Haga clic en Programa > Subir para crear e implementar la aplicación de muestra en  ESP8266 .

Ingrese sus credenciales

Después de que la carga se complete con éxito, siga los pasos para ingresar sus credenciales:

  1. En el IDE de Arduino, haga clic en Herramientas > Monitor en serie .
  2. En la ventana del monitor de serie, observe las dos listas desplegables en la esquina inferior derecha.
  3. Seleccione Sin final de línea para la lista desplegable de la izquierda.
  4. Seleccione 115200 baudios para la lista desplegable de la derecha.
  5. En el cuadro de entrada ubicado en la parte superior de la ventana del monitor serie, ingrese la siguiente información si se le solicita que los proporcione y luego haga clic en Enviar .
    • Wi-Fi SSID
    • Contraseña de wifi
    • Cadena de conexión del dispositivo

 Nota:La información de credenciales se almacena en la EEPROM del ESP8266 Si hace clic en el botón de reinicio en la placa ESP8266 , la aplicación de muestra le pregunta si desea borrar la información. Ingrese Y para borrar la información y se le pedirá que proporcione la información nuevamente.

Verifique que la aplicación de muestra se esté ejecutando correctamente

Si ve la siguiente salida de la ventana del monitor serie y el LED parpadeante en  la placa ESP8266  la aplicación de muestra se está ejecutando correctamente.

com33.png

 

 

Nota:Si está utilizando otras placas ESP8266, puede seguir estos pasos para conectarlo a su hub de IoT. Según la placa ESP8266 que esté utilizando, es posible que necesite reconfigurar el LED_PIN . Por ejemplo, si está usando ESP8266 de AI-Thinker, puede cambiarlo de 0 a 2 .

 

 

 

Fuente  https://docs.microsoft.com/en-gb/azure/iot-hub/iot-hub-sparkfun-esp8266-thing-dev-get-started

Nuevo movimiento para Xively


Xively fue fundada en 2003 y ofrece una plataforma para la conectividad de dispositivos IoT.

En  este blog hemos  hablado en otras ocasiones de la compañía  y su   gran trayectoria  primero con  el popular servicio de iot de  Pachube.com , despues  con la adquisicion por parte de  cosm.com  y  finalmente despues comprada por logmeIn     reubatizando el servicio como  Xively.com

Podría parecer  que las adquisiciones  habían ya  finalizado por el  momento ,  pero Google ya ha anunciado la  intención de adquirir la plataforma IoT Xively de LogMeIn por USD50 millones el 15 de febrero de 2018.

xively

Este nuevo movimiento alinea a Google con otros proveedores de la nube,  en especial  con  Amzon con su popular  AWS (Amazon Web Services ), que también han expandido sus propuestas IoT a través de adquisiciones, pero sin embargo, el momento y la naturaleza del acuerdo sugieren que puede estar impulsado por las ambiciones de Google en los productos electrónicos de consumo y el hogar inteligente, más que por la necesidad de agregar funciones genéricas a Google Cloud , pues  Google ya  lanzó su Cloud IoT Core para ofrecer servicios de alojamiento IoT basados ​​en su infraestructura en la nube en septiembre de 2017.

Con la adición de la plataforma Xively, Google aprovecharía su solución con un elemento de conectividad del dispositivo, ofreciendo una solución llave en mano para integrar dispositivos en la nube  así que la adquisición saca  a relucir  los intentos de Google de aumentar su participación en la cadena de valor de IoT. 

La movida de Google es similar  a otras empresas , pero es la mas tardía  que las realizadas por  sus rivales directos:

  • AWS compró 2lemetry en 2015.Las herramientas de IoT que AWS tiene, o está planificando, incluyen: IoT Core, Greengrass, IoT Device Management, IoT Device Defender, IoT analytics, FreeRTOS, IoT 1 clic y otros. AWS está tratando de proporcionar un conjunto completo de opciones para los desarrolladores de IoT en muchos mercados verticales y, al hacerlo, está dando menos espacio para que compitan los proveedores de nicho.
  • Microsoft Azure adquirió Solair en 2016.

 

Tanto  AWS como  Azure utilizaron inicialmente su infraestructura en la nube para soportar los requisitos de hospedaje de datos para IoT y luego usaron la plataforma adquirida para avanzar a lo largo de la cadena de valor y simplificar el desarrollo de soluciones para los clientes.

 

Xively y otros desarrollos sugieren que Google apunta a fortalecer su rol en el negocio de la casa inteligente

A pesar de las similitudes con AWS y la compra de Azure de una plataforma IoT, Google puede estar intentando algo diferente con su adquisición de Xively pues si las capacidades de la plataforma IoT fueran tan importantes, podría haber comprado una plataforma anteriormente, o incluso haber creado una internamente. Además, para competir con AWS u otros proveedores de plataforma como PTC ThingWorx, será necesario darle seguimiento con otras adquisiciones o desarrollos internos.

Xively puede ser parte de la estrategia de Google para desarrollar capacidades para productos electrónicos de consumo y dispositivos domésticos inteligentes, en lugar de una plataforma horizontal para todos los verticales.

Una semana antes del anuncio de Xively, la empresa matriz de Google, Alphabet, dijo que estaba incorporando Nest en Google para coordinar mejor estos productos inteligentes para el hogar con otros esfuerzos, como Pixel, Google Home y Chromecast. Con la adición de una plataforma, Google, no solo consolida sus productos de consumo de hardware y software, sino que también establece un ecosistema que conecta a las diferentes partes interesadas que operan en este mercado. El reciente alquiler de IoT de Google y las actividades de Xively sugieren que la adquisición de Xively podría respaldar el enfoque revisado de Google para el mercado de consumo inteligente y hogar inteligente.

 

edge

Xively, como muchas otras plataformas IoT, se posiciona como una plataforma horizontal,pero sin embargo, la mayoría de los casos de uso de Xively son para aplicaciones domésticas inteligentes y relacionadas con el consumidor, como calentadores de agua conectados, rastreadores de mascotas, termostatos y soluciones de iluminación. Los antecedentes de usuarios y dispositivos de Xively combinados con el hardware y las aplicaciones de Google pueden ser parte de un esfuerzo para construir una plataforma de hogar inteligente más completa  asi que la venta de Xively puede representar una revisión del mercado de las plataformas de IoT

La venta de Xively tiene implicaciones más allá de Google pues si bien LogMeIn compró Xively por USD12 millones en 2014 y la venta a Google  se  ha fijado en USD50 millones  ,  también marca la salida de LogMeIn del negocio de la plataforma IoT (de hecho Xively no logró una tracción significativa ya que  reportó ingresos anuales de solo USD3 millones en 2017)

 

n un mercado abarrotado, esperamos que otras plataformas de IoT se consoliden o se cierren silenciosamente ya que el mercado se deja solo a un puñado de jugadores. Esto también tiene implicaciones para los operadores de telecomunicaciones: el desempeño de Xively muestra lo difícil que es desarrollar una plataforma IoT horizontal, pero la reducción en el número de plataformas debería dejar a un número menor de proveedores viables como socios potenciales, lo que probablemente tendrá un impacto positivo en el desarrollo del mercado de IoT.

 

 

 

 

Fuente:   analysysmason.com

Control de GPIO de Raspberry Pi sobre MQTT usando ThingsBoard


ThingsBoard es una plataforma de servidor de código abierto que le permite monitorear y controlar dispositivos IoT. Es gratuita tanto para uso personal como comercial y puede implementarlo en cualquier lugar.

ThingsBoard es pues  una plataforma de IoT de código abierto que permite el desarrollo rápido, la gestión y la ampliación de los proyectos de IoT  de modo  que  puede:

  • Crear dispositivos de provisión y control.
  • Recopilar y visualizad datos de dispositivos.
  • Analizea datos del dispositivo y disparae alarmas.
  • Entregar datos del dispositivo a otros sistemas.
  • Habilitar las funciones específicas de casos de uso usando reglas y complementos personalizables.
  • Proporcionar la nube IoT lista para usar o ser la solución en las instalaciones que habilitará la infraestructura del lado del servidor para sus aplicaciones de IoT.

ThingsBoard es escalable pues es una plataforma escalable horizontalmente y compilación utilizando tecnologías líderes de código abierto, tolerante a errores  pues  no hay punto único de fallo ya que  cada nodo en el clúster es idéntico,es personalizable pues permite agregar nueva funcionalidad es fácil con widgets personalizables, motor de reglas y sistema de complementos, es s duradero  y es robusto y eficiente  pues  el nodo de servidor único puede manejar decenas o incluso cientos de miles de dispositivos según el caso de uso (un cluster ThingsBoard puede manejar millones de dispositivos). Asimismo también puede conectar dispositivos existentes a la plataforma usando ThingsBoard Gateway .

 

ThingsBoard le permite enviar llamadas de procedimiento remoto (RPC) desde aplicaciones del servidor a dispositivos y viceversa. Básicamente, esta característica le permite enviar comandos a dispositivos y recibir resultados de ejecución de comandos. Similarmente, puede ejecutar la solicitud desde el dispositivo, aplicar algunos cálculos u otra lógica del lado del servidor en el back-end y enviar la respuesta de regreso al dispositivo. Esta guía cubre las capacidades de ThingsBoard RPC. Después de leer esta guía, se familiarizará con los siguientes temas:

  • Tipos de llamadas RPC
  • Casos de uso de RPC básicos
  • Las API RPC del lado del cliente y del lado del servidor
  • Widgets RPC

Tipos de llamadas RPC

La característica de RPC de Thinsboard se puede dividir en dos tipos según el originador: llamadas RPC originadas en el dispositivo y originadas en el servidor. Para utilizar nombres más conocidos, denominaremos llamadas RPC originadas en el dispositivo como llamadas RPC del lado del cliente y llamadas RPC originadas en el servidor como llamadas RPC del lado del servidor .

imagen

Las llamadas RPC del lado del servidor se pueden dividir en un solo sentido y bidireccional:

  • La solicitud RPC unidireccional se envía al dispositivo sin confirmación de entrega y, obviamente, no proporciona ninguna respuesta del dispositivo. La llamada RPC puede fallar solo si no hay una conexión activa con el dispositivo objetivo dentro de un período de tiempo de espera configurable.imagen
  • La solicitud de RPC bidireccional se envía al dispositivo y espera recibir una respuesta del dispositivo dentro del tiempo de espera determinado. La solicitud del lado del servidor está bloqueada hasta que el dispositivo de destino responda a la solicitud.imagen

Vamos  a  ver una  aplicación de ejemplo    que  permitirá controlar GPIO de su dispositivo Raspberry Pi utilizando la interfaz de usuario web de ThingsBoard y observaremos el control de GPIO utilizando  un Led conectado a uno de los pines. El propósito de esta aplicación es demostrar las capacidades de ThingsBoard RPC .

Dispositivo RPC API

ThingsBoard está diseñado para ejecutarse y utilizarse en la mayoría del hardware, desde Raspberry PI local hasta potentes servidores en la nube. Las formas de configurar un cluster de ThingsBoard soporta los  siguientes sistemas operativos:

  • Windows : instale el clúster Thingboard en cualquier máquina preexistente que ejecute Windows.
  • Linux (Ubuntu y CentOS) : instala el clúster Thingboard en cualquier máquina preexistente que ejecute Linux.
  • Raspberry Pi 3 Modelo B (Raspbian Jessie) : instala el servidor Cassandra y Thingboard en una Raspberry Pi 3 modelo B.
  • Docker (Linux o Mac OS) : instala un clúster ThingsBoard de un nodo en tu máquina Linux o Mac OS para su desarrollo y prueba.
  • Docker (Windows) : instala un clúster ThingsBoard de un nodo en tu máquina con Windows para su desarrollo y prueba.
  • Instalación de AWC EC2 utilizando AMI : instale un clúster ThingsBoard de nodo único con AWI AMI público.

Asimismo , sin instalar nada ,también si esta es su primera experiencia con la plataforma, puede usar una demostración en vivo para ahorrar tiempo en la instalación (vea la página de documentación de demostración en vivo para más detalles).Ejempl

 

Ejemplo  control de un  led

En  este ejemplo  “hello world”   orientado a controlar un led usaremos  una   Raspberry Pi con una aplicación simple escrita en Python , que se conectará al servidor ThingsBoard a través de MQTT y escuchará los comandos RPC.

El estado GPIO actual y el widget de control GPIO se visualizaran utilizando el panel de control incorporado personalizable.

Por tanto tendrá que tener el servidor ThingsBoard en funcionamiento. Use Live Demo o la Guía de instalación para instalar ThingsBoard.

Lista de hardware y pinouts

  • Raspberry Pi : utilizaremos Raspberry Pi 3 Model B pero puede usar cualquier otro modelo.
  • Led y resistencia correspondiente
  • 2 cables de puente hembra a macho

Dado que nuestra aplicación permitirá controlar el estado de todos los pines GPIO disponibles, recomendamos conectar algunos LED a esos pines para mayor visibilidad. Puede usar culquier  instrucción básica u otra para cablear algunos LED.

Instalación de la biblioteca MQTT

El siguiente comando instalará la biblioteca MQTT Python:

sudo pip install paho-mqtt

La aplicación consiste en un único script python que está bien documentado. Tendrá que modificar la constante THINGSBOARD_HOST para que coincida con su dirección IP de instalación del servidor ThingsBoard o nombre de host. Utilice “demo.thingsboard.io” si está utilizando el servidor de demostración en vivo .

El valor de la constante ACCESS_TOKEN corresponde al dispositivo Raspberry Pi de muestra en datos de demostración preaprovisionados . Si está utilizando un servidor de demostración en vivo , obtenga el token de acceso para el “Dispositivo de demostración Raspberry Pi preaprovisionado”.

 

resources/gpio.py 
import paho.mqtt.client as mqtt
import RPi.GPIO as GPIO
import json

THINGSBOARD_HOST = 'YOUR_THINGSBOARD_IP_OR_HOSTNAME'
ACCESS_TOKEN = 'RASPBERRY_PI_DEMO_TOKEN'

# We assume that all GPIOs are LOW
gpio_state = {7: False, 11: False, 12: False, 13: False, 15: False, 16: False, 18: False, 22: False, 29: False,
              31: False, 32: False, 33: False, 35: False, 36: False, 37: False, 38: False, 40: False}


# The callback for when the client receives a CONNACK response from the server.
def on_connect(client, userdata, rc, *extra_params):
    print('Connected with result code ' + str(rc))
    # Subscribing to receive RPC requests
    client.subscribe('v1/devices/me/rpc/request/+')
    # Sending current GPIO status
    client.publish('v1/devices/me/attributes', get_gpio_status(), 1)


# The callback for when a PUBLISH message is received from the server.
def on_message(client, userdata, msg):
    print 'Topic: ' + msg.topic + '\nMessage: ' + str(msg.payload)
    # Decode JSON request
    data = json.loads(msg.payload)
    # Check request method
    if data['method'] == 'getGpioStatus':
        # Reply with GPIO status
        client.publish(msg.topic.replace('request', 'response'), get_gpio_status(), 1)
    elif data['method'] == 'setGpioStatus':
        # Update GPIO status and reply
        set_gpio_status(data['params']['pin'], data['params']['enabled'])
        client.publish(msg.topic.replace('request', 'response'), get_gpio_status(), 1)
        client.publish('v1/devices/me/attributes', get_gpio_status(), 1)


def get_gpio_status():
    # Encode GPIOs state to json
    return json.dumps(gpio_state)


def set_gpio_status(pin, status):
    # Output GPIOs state
    GPIO.output(pin, GPIO.HIGH if status else GPIO.LOW)
    # Update GPIOs state
    gpio_state[pin] = status


# Using board GPIO layout
GPIO.setmode(GPIO.BOARD)
for pin in gpio_state:
    # Set output mode for all GPIO pins
    GPIO.setup(pin, GPIO.OUT)

client = mqtt.Client()
# Register connect callback
client.on_connect = on_connect
# Registed publish message callback
client.on_message = on_message
# Set access token
client.username_pw_set(ACCESS_TOKEN)
# Connect to ThingsBoard using default MQTT port and 60 seconds keepalive interval
client.connect(THINGSBOARD_HOST, 1883, 60)

try:
    client.loop_forever()
except KeyboardInterrupt:
    GPIO.cleanup()

Este simple comando lanzará la aplicación:   python gpio.py

Visualización de datos

Para simplificar esta guía, en  “Raspberry PI GPIO Demo Dashboard” vemos los datos de demostración que están disponibles en cada instalación Thingboard. Aún puede modificar este panel: sintonizar, agregar, eliminar widgets, etc. Puede acceder a este panel iniciando sesión como administrador de inquilinos.

Utilizar en caso de instalación local de ThingsBoard.

 

Una vez que haya iniciado sesión, abra la página Dashboards-> Raspberry PI GPIO Demo Dashboard . Debe observar el tablero de demostración con el panel de control y estado de GPIO para su dispositivo. Ahora puede cambiar el estado de los GPIO usando el panel de control. Como resultado, verá que el estado de los LED cambia en el dispositivo y en el panel de estado.

A continuación se muestra la captura de pantalla del “Tablero Demo de Raspberry PI GPIO”.

imagen

 

 

El vídeo a continuación  resume  todo el proceso  citado llegando  hasta el resultado final :.

Interceptar Amazon Dash Button para otras aplicaciones


Amazon  lleva mas  un año enviando sus famosos  botones Dash , los cuales se pueden transformar en exactamente eso con sólo unos minutos, es   decir que un pequeño dispositivo permita con el simple hecho de darle un botón , desencadenar una  compra predefinida al famoso portal de compra…   pero, obviamente , estos botones  inteligentes están abiertos   a otras posibilidades  sin duda infinitas y que vamos a intentar explorar en este post

Los  famosos Amazon Dash  son  botones pequeños, de plástico  y de un coste ínfimo (  5€) ,pero ademas incluyen  una batería y una conexión WiFi en su interior . Amazon quiere que usted los pegue en el interior de sus puertas y los utilice  para  comprar productos de uso cotidiano  como pueden ser los pañales, té , café,  productos de limpieza   y un largo etcétera.

nescafe.jpg

Existe  una  manera   mas fácil   de darle otros usos a  cualquier botón  Amazon Dash si quiere usar SmartThings para  otras cosas útiles.

Ejemplos de usos:

  • Presionar el botón Dash y encender las luces. (Luces del dormitorio, luces de la sala de estar, todas las luces o lo que sea).
  • Presionar el botón Dash y encender el televisor, cambia a una entrada de TV y abrir Netflix.
  • Presionar el botón Dash y abrir la puerta de la puerta / garaje.
  • Presionar el botón Dash  y abrir una aplicación de cámara en el teléfono e incluso encender la TV y proyectar la cámara al televisor.
  • Presione el botón Dash y abrir una aplicación  en el ordenar que  realice alguna acción.
  • !En resumen: posibilidades ilimitadas!

Entender cómo funciona el registro del botón.

Nuestro objetivo es detectar cuando uno de estos botones Dash se   pulsa  y luego hacer algo más que ordenar  cosas en Amazon. El hack impresionante sería abrir el botón y re-programarlo  ( de hecho esto ya se puede hacer  reprogramando el STM32  que incluye )   pero  vamos a seguir  una  ruta muchísimo mas fácil:  sólo vamos a usar  un programa que rastrea nuestra red wifi para buscar  la evidencia de que el botón fue pulsado  , luego registrar un punto de datos cuando escucha estos y una vez detectado desencadenar una acción .

Resulta que Amazon nos dio una manera muy fácil de hacer esto porque estaban tan preocupados con el ahorro de energía , pues estos  botones  se desactivan la mayor parte del tiempo para conservar la batería dentro y sólo se encienden cuando son pulsados, lo cual significa que tienen que volver a conectarse a su red Wifi cada vez que son pulsados ( y eso  es fácil de detectar).

Los dispositivos de Internet no solo se conectan a una red Wifi y empiezan a hablar con Amazon: se presentan primero a la red local . Esta introducción se hace con algo llamado una sonda ARP , y es esencialmente una comprobación de seguridad para asegurarse de que la dirección MAC que el dispositivo va a utilizar como identificador ya no está siendo utilizada por otra persona.

Cada vez que pulsa un botón Dash, se vuelve a conectar a la red, causando una transmisión predecible  de llamada una sonda ARP que podemos detectar y actuar.

Eso es una gran noticia para nosotros: cada vez que se pulsa un botón Dash, se enciende su radio y transmite rápidamente el mensaje, “Hola! Mi nombre es [Dirección MAC]! “

Así, que conceptualmente, el problema esta resuelto pues sólo tenemos que:

  1. Evitar que el botón realice cualquier pedido
  2. Escuche las sondas ARP del botón Dash
  3. Traducir esas sondas a llamadas   cualquier cosa que se nos  ocurra

Paso 1: Configurar la red wifi en el botón

Para   usar el botón ,primero  debe registrar el Botón básicamente para configurar la red wifi a la que se conectará .  Lo que no queremos es asignar el botón para pedir algo , por lo en lugar de asignar algún producto , antes de finalizar la vinculación simplemente  no haremos nada  !pero el botón de tablero todavía seguirá registrado! , así  que lo sucede a continuación es que cuando presione el botón del tablero, recibirá una notificación  en las versiones antiguas  que dice “Su (inserte el nombre del botón del tablero) está casi listo para usar … bla, bla, bla”.

Pasos del botón Dash (Nuevo botón Dash):

  1. Abra la aplicación Amazon Shopping y vaya a su cuenta.
  2. Vaya a Configurar un nuevo botón de tablero y haga clic en Aceptar y comenzar para comenzar.
  3. Mantenga presionado el Botón de tablero por 6 segundos hasta que la luz destelle en azul y haga clic en Conectar. (Asegúrate de que Bluetooth esté habilitado)
  4. Haga clic en la red Wi-Fi a la que desea conectar el botón del tablero y haga clic en Continuar.
  5. El botón de tablero ahora está registrado. No haga nada todavía.
  6. Donde dice Elija un producto simplemente salga (no queremos pedir nada) haciendo clic en la X en la esquina superior derecha.
  7. Hemos terminado con la configuración del botón del tablero.

Pasos del botón de tablero (dispositivo antiguo):

  1. Abra la aplicación Amazon Shopping y vaya a su cuenta.
  2. Diríjase al botón del tablero con el que tiene programada la configuración y haga clic en Desactivar este botón del tablero. Aparecerá una ventana emergente preguntándole si está seguro. Decir que sí.
  3. Ahora vaya a Configurar un nuevo botón de tablero y haga clic en Aceptar y comenzar para comenzar.
  4. Mantenga presionado el Botón de tablero por 6 segundos hasta que la luz destelle en azul y haga clic en Conectar. (Asegúrate de que Bluetooth esté habilitado)
  5. Haga clic en la red Wi-Fi a la que desea conectar el botón del tablero y haga clic en Continuar.
  6. El botón de tablero ahora está registrado. No haga nada todavía.
  7. Donde dice Elija un producto simplemente salga (no queremos pedir nada) haciendo clic en la X en la esquina superior derecha.
  8. Hemos terminado con la configuración del botón del tablero.

Nota: Puede activar y desactivar la notificación de Amazon Shopping para cada dispositivo que desee habilitar o deshabilitar en caso de que se moleste. Esto se puede hacer abriendo la aplicación Amazon Shopping en cada dispositivo individual y deshabilitando o habilitando “Alexa Shopping & Dash Updates”. Habilite en el dispositivo que planea hacer esta guía de configuración. Deshabilite en todos los dispositivos en los que no planea usar esta configuración. Naranja = Activado.

Paso 2: Captura  de la IP del botón

Una forma fácil de encontrar su ID del botón de pantalla es usar Wireshark (https://www.wireshark.org/#download), que se puede  obtener  mediante una descarga gratuita para Mac / Win.

Una vez  descargada  e instalada la aplicación  podemos lanzar Wireshark, estableciendo el filtro para capturar paquetes en “arp“, seleccionando  el modo wifi para la red y haciendo clic en el icono de Blue Shark para habilitar el filtro al capturar paquetes.

wireshar.png

A continuación, verá una ventana como la siguiente: haga clic en el ícono de Green Shark para comenzar a capturar paquetes, presione el botón de Amazon Dash.

Verá una línea en el parte superior que tiene “AmazonTe …” en la fuente Colunm.

amazonte.png

Selecciónelo y en el panel a continuación, verá la dirección MAC del botón Amazon Dash en parantesis, junto a AmazonTe _… Src, como se muestra a continuación.

mac.png

Realmente la dirección MAC es importante  para algunas aplicaciones,   pero realmente lo que nos va a importar  para capturar la petición,   es la dirección ip  del botón obtenida en la pantalla  anterior   , ( en  nuestro caso : 192.168.1.32)

Alternativamente, puede seguir las instrucciones de node-dash-button para encontrar su id del botón de pantalla.

Nota :   Un pedido real se marca  controlando la luz en el botón Dash para que se vuelva verde. Actualmente se vuelve blanco cuando se transmite una solicitud DHCP o paquete ARP y luego se vuelve rojo cuando no recibe una respuesta de Amazon, así que  cuando usa un botón Dash de la manera normal, la luz se vuelve verde después de que Amazon haya realizado su pedido, pero si eso No es  lo que pretende,  todavía  puede ir a la app( o en la web)  para cancelar el pedido

Paso 3 :  Utilización  sobre windows

Existen scripts en python que pueden ejecutarse  en una raspberry Pi  para  escuchar las peticiones  en la red wifi  de modo que cuando detecten  la ip de nuestro botón desencadenen un acción.
Para  windows existe una  interesante  utilidad que busca cualquier llamada a la IP de nuestro botón  y desencadene la ejecución de un comando o aplicación.

Descargue el sw de aquí: https://github.com/fiveseven808/AmazonDashButtonHack

Una vez descomprimido  tendremos al menos dos ejecutables:

amanzonbut

En versiones  antiguas del botón era posible el auto-descubrimiento  de la ip del botón ( es decir obviar el paso comentado  nº 2),   por  lo que  los pasos  serian los siguientes :

  • Ejecutar  “AmazonButton_Discovery_160715 _ ****. Exe” para comenzar a buscar botones.
  • Pulsamos clic en “Aceptar” en el aviso y comenzariamos  a presionar el botón que desea emparejar repetidamente.
  • Si no se encuentran dispositivos de Amazon, intente de nuevo, pero comience a presionar el botón tan pronto como haga doble clic en el archivo EXE.
  • Si se encuentran más de un dispositivo de Amazon, tendrá que ir y averiguar qué IP corresponde con su botón por su cuenta.
  • Finalmente elija un programa que desea ejecutar cuando se presiona el botón
  • Ingrese un comentario para el daemon, lo cual  identificará el daemon particular que corresponde con el botón en particular.

 

Como el proceso anterior  no es mas eficaz , si ya conoce la IP de su botón( descrito en el paso 2 )  siga los siguientes  pasos:

  • Haga doble clic en AmazonButton_v4.0.exe .
  • Ingrese la IP conocida / reservada de su botón Dash ( en nuestro caso 192.168.1.36)
  • Elija un programa que desea ejecutar cuando se presiona el botón . Por ejemplo puede asociar un fichero mp3  de modo que cuando pulsemos el botón  comience  a reproducirse el tema
  • Ingrese un comentario para el daemon, lo cual identificará el daemon particular que corresponde con el botón en particular.

También permite argumentos vía  parámetros   por  línea de comando por ejemplo para automatizar el arranque de este proceso en el inicio del ordenador :

AmazonButton_v4.0.exe [IP del botón] [Programa para iniciar] “[Comentario opcional]”

Es interesante saber   que incluso se puede repetir  estas llamadas según sea necesario para cualquier otro botón.

NOTA :  Hay informes de que el nuevo botón JK29LP pierde su configuración de Wifi si la desasocia con su cuenta de Amazon. La “solución alternativa” actual es utilizar una cuenta ficticia de Amazon para configurar su botón con su teléfono y luego volver a iniciar sesión en su propia cuenta para que pueda seguir usando la aplicación.