top of page
Writer's picturenanfegetildilothet

Envio de datos a la nube de Azure desde ESP8266 usando DHT11 o DHT22: Aprende a conectar tus sensore



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.if(typeof ez_ad_units!='undefined')ez_ad_units.push([[468,60],'soloelectronicos_com-medrectangle-3','ezslot_19',126,'0','0']);__ez_fad_position('div-gpt-ad-soloelectronicos_com-medrectangle-3-0');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 .if(typeof ez_ad_units!='undefined')ez_ad_units.push([[250,250],'soloelectronicos_com-sky-3','ezslot_23',166,'0','0']);__ez_fad_position('div-gpt-ad-soloelectronicos_com-sky-3-0'); 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 RPCCasos de uso de RPC básicosLas API RPC del lado del cliente y del lado del servidorWidgets RPCTipos de llamadas RPCLa 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 .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.if(typeof ez_ad_units!='undefined')ez_ad_units.push([[468,60],'soloelectronicos_com-square-1','ezslot_31',717,'0','0']);__ez_fad_position('div-gpt-ad-soloelectronicos_com-square-1-0');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.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 APIif(typeof ez_ad_units!='undefined')ez_ad_units.push([[250,250],'soloelectronicos_com-small-square-1','ezslot_28',141,'0','0']);__ez_fad_position('div-gpt-ad-soloelectronicos_com-small-square-1-0');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 ledEn 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 pinoutsRaspberry Pi : utilizaremos Raspberry Pi 3 Model B pero puede usar cualquier otro modelo.Led y resistencia correspondiente2 cables de puente hembra a machoDado 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 MQTTEl siguiente comando instalará la biblioteca MQTT Python:sudo pip install paho-mqttLa 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 mqttimport RPi.GPIO as GPIOimport jsonTHINGSBOARD_HOST = 'YOUR_THINGSBOARD_IP_OR_HOSTNAME'ACCESS_TOKEN = 'RASPBERRY_PI_DEMO_TOKEN'# We assume that all GPIOs are LOWgpio_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 layoutGPIO.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 callbackclient.on_connect = on_connect# Registed publish message callbackclient.on_message = on_message# Set access tokenclient.username_pw_set(ACCESS_TOKEN)# Connect to ThingsBoard using default MQTT port and 60 seconds keepalive intervalclient.connect(THINGSBOARD_HOST, 1883, 60)try: client.loop_forever()except KeyboardInterrupt: GPIO.cleanup()if(typeof ez_ad_units!='undefined')ez_ad_units.push([[250,250],'soloelectronicos_com-mobile-leaderboard-1','ezslot_13',160,'0','0']);__ez_fad_position('div-gpt-ad-soloelectronicos_com-mobile-leaderboard-1-0');Este simple comando lanzará la aplicación: python gpio.pyif(typeof ez_ad_units!='undefined')ez_ad_units.push([[250,250],'soloelectronicos_com-large-mobile-banner-2','ezslot_8',127,'0','0']);__ez_fad_position('div-gpt-ad-soloelectronicos_com-large-mobile-banner-2-0');Visualización de datosPara 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.




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

2ff7e9595c


0 views0 comments

Recent Posts

See All

Pokemon go apk para iphone 4

- O que são telefones Xiaomi e por que são compatíveis com Pokemon Go? - Quais são os benefícios de jogar Pokemon Go em telefones Xiaomi?...

Comments


bottom of page