Termómetro de IoT con Python
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicaciones y servicios en línea
|
Acerca de este proyecto
La aplicación Zerynth
La aplicación Zerynth es una aplicación móvil para Android y iOS que permite la creación rápida de prototipos de interfaces gráficas para sus proyectos de IoT .
Con la aplicación Zerynth puedes convertir cualquier móvil en el controlador y mostrar objetos inteligentes y sistemas de IoT ! En particular, puedes gestionar y controlar los dispositivos conectados programados con Zerynth, habilitando un canal de comunicación bidireccional entre ellos y tu móvil.
En este tutorial, veremos cómo desarrollar un termómetro de IoT simple pero potente. , utilizando un microcontrolador de placa única con tecnología Zerynth y la aplicación Zerynth como pantalla remota.
Materiales necesarios
Primero que nada, necesitas una tabla. Puede seleccionar uno de los dispositivos de microcontrolador de 32 bits compatibles con Zerynth. Hemos elegido Flip &Click de Mikroelektronika, que comparte muchos de los mismos atributos que las populares plataformas Arduino, incluido el AT91SAM3X8E de 32 bits de Microchip el núcleo de Arduino Due.
Para medir la temperatura, elegimos el Temp &Hum Click, que lleva un sensor de temperatura y humedad relativa HTS221.
Para conectar la placa a Internet, hemos elegido WiFi PLUS Click, que cuenta con MRF24WB0MA - 2.4GHz, estándar IEEE. Módulo compatible con 802.11 de Microchip , así como el controlador complementario MCW1001 con pila TCP / IP integrada y administrador de conexión 802.11.
Por último, pero no menos importante, necesita:
- Zerynth Studio , nuestro potente IDE para programación integrada en Python que habilita IoT. Puede descargarlo aquí.
- Aplicación Zerynth . Puede descargarlo aquí.
Montaje de su termómetro de IoT
Flip &Click es el primo de dos caras de Arduino. Por un lado, es un Arduino. Pero en el otro lado, encontrará cuatro enchufes mikroBUS abiertos para lo que la compañía llama "tableros de clic". Esencialmente, estos son módulos complementarios que se asemejan a los escudos de Arduino, pero reducidos para que pueda colocar algunos al mismo tiempo en Flip &click sin ningún problema. Simplemente agregue los clics Temp &Hum y Wifi Plus a la placa, respectivamente en la ranura A y B.
Cómo programar el termómetro de IoT usando Python
Clona el ejemplo
Una vez que haya instalado Zerynth Studio y haya creado un usuario de Zerynth, puede clonar el ejemplo “ Osciloscopio de la aplicación Zerynth “. Eche un vistazo aquí para aprender a clonar un ejemplo.
Echemos un vistazo al código original en " main.py "Archivo:aquí es donde desarrolla la lógica de su Python texto. Comenzaremos desde el código original y luego editaremos el script para desarrollar nuestro proyecto específico.
########################################## ################################################################################################################################################################################# ################################################ ################## de wifi de importación inalámbrica # este ejemplo se basa en Particle Photon # cambia la siguiente línea para usar un controlador de wifi diferente de broadcom.bcm43362 import bcm43362 as wifi_driverimport streamsimport adc # Importe la biblioteca de aplicaciones Zerynth desde zerynthapp import zerynthapp streams.serial () sleep (1000) print ("STARTING ...") try:# Device UID y TOKEN se pueden crear en el panel ADM zapp =zerynthapp.ZerynthApp ("DEVICE UID "," DEVICE TOKEN ", log =True) # conéctese a la red wifi (establezca su SSID y contraseña a continuación) wifi_driver.auto_init () para i en el rango (0,5):intente:wifi.link (" SSID " , wifi.WIFI_WPA2, "PASSWORD") break excepto Exception como e:print ("No se puede vincular", e) else:print ("¡Imposible vincular!") while True:sleep (1000) # ¡Inicie la instancia de la aplicación Zerynth! # Recuerde crear una plantilla con los archivos en la carpeta "plantilla" que acaba de clonar # cárguela en el ADM y asóciela con el dispositivo conectado zapp.run () # Lea ADC y envíe valores al ADM mientras True:sleep ( 1000) x =(adc.read (A4) * 100) // 4096 zapp.event ({"data":x}) si x> 95:# enviar notificación móvil # (hay un límite de una notificación por minuto por dispositivo en la zona de pruebas de ADM) zapp.notify ("¡ALARMA!", "¡El valor es mayor que 95!") excepto Excepción como e:print (e)
En este ejemplo simple, la aplicación Zerynth visualiza un osciloscopio gráfico con datos provenientes de la placa conectada. Los datos se adquieren de un sensor analógico mediante el pin "analógico" A4.
Importe el controlador de wifi y las bibliotecas de sensores correctos
Como puede ver en los comentarios, este ejemplo se basa en la placa Particle Photon y su controlador wifi. Como queremos usar WiFi Plus Click, tenemos que cambiar las siguientes líneas:
de broadcom.bcm43362 importar bcm43362 como wifi_driver
en
de microchip.mcw1001a importar mcw1001a como wifi_driver
y
wifi_driver.auto_init ()
en
wifi_driver.init (SERIAL2, D24) # ranura B
Entonces, queremos usar el sensor de temperatura del Temp &Hum Click. Entonces, tenemos que agregar las siguientes líneas para importar la biblioteca y configurar el sensor, como puede leer en la documentación:
# Importe la biblioteca HTS221 desde stm.hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # slot A
Para leer el sensor, simplemente escriba la siguiente línea, donde sea necesario:
tmp, hum =temp_hum.get_temp_humidity () # Leer tmp y hum
Configure el nombre SSID y la CONTRASEÑA
Por supuesto, también tienes que editar el nombre SSID y la CONTRASEÑA de la red wifi a la que quieres conectar la placa, editando esta línea:
wifi.link ("SSID", wifi.WIFI_WPA2, "CONTRASEÑA")
Crea y configura un dispositivo conectado
Ahora tenemos que crear un "dispositivo conectado" y vincular la instancia "zerynthapp" a él. A continuación puede ver algunas capturas de pantalla con los pasos necesarios. Consulte este documento para obtener más detalles técnicos.
Las credenciales del dispositivo ( UID y TOKEN ) se pueden copiar y pegar directamente desde Zerynth Studio (panel ADM). “IP” es la dirección IP del Zerynth ADM. Este argumento se utiliza cuando el controlador de red no admite la resolución de nombres de host, como en este caso.
Cree, cargue y configure la plantilla
A través de la aplicación Zerynth, puede ejecutar hermosas interfaces gráficas de usuario con capacidad de respuesta utilizando HTML , CSS y JavaScript . ¡No es necesario el código de Android o iOS!
La interfaz gráfica de cada dispositivo está alojada en el sandbox de Zerynth ADM y consta de un conjunto de HTML5, Javascript, CSS y archivos de imagen que se cargan y muestran en la aplicación. Agregar a la plantilla la biblioteca ADM Javascript permite que la aplicación interactúe con el dispositivo conectado tanto para recibir como para enviar mensajes.
Las plantillas se pueden agregar haciendo clic en el icono "más" respectivo.
Luego cargue la plantilla desde la carpeta dedicada. Tenga en cuenta que el archivo donde se define la plantilla se llama " index.html ”Y puede editarlo como desee. En este caso, puede dejarlo como está.
Enlace ascendente del script
Después de algunas ediciones, el código debería verse así:
########################################## ################################################################################################################################################################################# ################################################ ################## de importación inalámbrica desde microchip.mcw1001a importa mcw1001a como wifi_driverimport streamsimport adc streams.serial () # Importa la biblioteca de aplicaciones Zerynth desde zerynthapp import zerynthapp # Importa el HTS221 libraryfrom stm.hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # slot A sleep (1000) print ("STARTING ...") try:# Device UID y TOKEN se pueden crear en el panel ADM zapp =zerynthapp. ZerynthApp ("DEVICE UID", "DEVICE TOKEN", ip ="178.22.65.123", log =True) # conéctese a la red wifi (establezca su SSID y contraseña a continuación) wifi_driver.init (SERIAL2, D24) # ranura B para i en el rango (0,5):intente:wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD") romper excepto Excepción como e:print ("No se puede vincular", e) else:print ("Imposible para vincular! ") while True:sleep (1000) # ¡Inicie la instancia de la aplicación Zerynth! # Recuerde crear una plantilla con los archivos en la carpeta "plantilla" que acaba de clonar # cárguela en el ADM y asóciela con el dispositivo conectado zapp.run () # Lea el sensor y envíe valores al ADM mientras True:sleep (1000) tmp, hum =temp_hum.get_temp_humidity () # Leer tmp y hum print ("Temp is:", tmp, "Humidity is:", hum) try:zapp.event ({"data":tmp}) excepto Excepción como e:print (e) si tmp>
30:# enviar notificación móvil # (hay un límite de una notificación por minuto por dispositivo en la zona de pruebas de ADM) intente:zapp.notify ("¡ALARMA!", "¡Temperatura alta! ") Excepto Exception como e:print (e) excepto Exception como e:print (e)
Recuerde que "DEVICE UID", "DEVICE TOKEN", "SSID" y "PASSWORD" deben editarse para que se ajusten a sus propios parámetros.
En este punto, puede vincular el script a su dispositivo.
Cómo ver el panel del termómetro de IoT en la aplicación Zerynth
Como puede leer en este breve tutorial, solo tiene que abrir la aplicación Zerynth, iniciar sesión y seleccionar el dispositivo específico para ver su panel de termómetro de IoT. Por último, la aplicación Zerynth también puede recibir notificaciones push de los dispositivos conectados. En este caso, aparecerá una notificación cuando la temperatura supere el umbral.
Si tiene alguna pregunta, no dude en abrir un debate en el foro de la comunidad de Zerynth.
¡Disfruta!
Código
- Termómetro de IoT
Termómetro de IoT Python
############################################ ##########################################################################################################################################################################################################################################################################################################. ################################################ ################# de importación inalámbrica desde microchip.mcw1001a importa mcw1001a como wifi_driverimport streamsimport adc streams.serial () # Importa la biblioteca de aplicaciones Zerynth desde zerynthapp import zerynthapp # Importa la biblioteca HTS221 desde stm .hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # slot A sleep (1000) print ("STARTING ...") try:# Device UID y TOKEN se pueden crear en el panel ADM zapp =zerynthapp.ZerynthApp ( "DEVICE UID", "DEVICE TOKEN", ip ="178.22.65.123", log =True) # conéctese a la red wifi (establezca su SSID y contraseña a continuación) wifi_driver.init (SERIAL2, D24) # ranura B para i in rango (0,5):intente:wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD") romper excepto Excepción como e:print ("No se puede vincular", e) else:print ("Imposible vincular ! ") While True:sleep (1000) # ¡Inicie la instancia de la aplicación Zerynth! # Recuerde crear una plantilla con los archivos en la carpeta "plantilla" que acaba de clonar # cárguela en el ADM y asóciela con el dispositivo conectado zapp.run () # Lea el sensor y envíe valores al ADM mientras True:sleep (1000) tmp, hum =temp_hum.get_temp_humidity () # Leer tmp y hum print ("Temp is:", tmp, "Humidity is:", hum) try:zapp.event ({"data":tmp}) excepto Excepción como e:print (e) si tmp> 30:# enviar notificación móvil # (hay un límite de una notificación por minuto por dispositivo en la zona de pruebas de ADM) intente:zapp.notify ("¡ALARMA!", "¡Temperatura alta! ") Excepto Exception como e:print (e) excepto Exception como e:print (e)
Esquemas
Proceso de manufactura
- Termómetro
- Biblioteca Python del sensor de temperatura TMP006 con Raspberry pi,
- Sensor de temperatura Python y Raspberry Pi
- Uso de la placa Pioneer de PSoC 6 con el escudo complementario de Pioneer IoT
- Cómo IoT está alterando el mundo que nos rodea
- Cómo instalar Python en Windows [IDE de Pycharm]
- Python Cambiar nombre de archivo y directorio usando os.rename()
- Inicio de sesión de Facebook usando Python:Ejemplo de inicio de sesión de FB
- Promedio de Python:cómo encontrar el PROMEDIO de una lista en Python
- Convertir una cadena en mayúsculas y minúsculas usando Python
- Python - Envío de correo electrónico mediante SMTP