Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Construir un termómetro IoT con Python: Guía completa

Componentes y suministros

MikroE Flip & Click×1
Construir un termómetro IoT con Python: Guía completaArduino Due×1
Construir un termómetro IoT con Python: Guía completaParticle Photon×1
Construir un termómetro IoT con Python: Guía completaNodeMCU ESP8266 Breakout Board×1
Construir un termómetro IoT con Python: Guía completaSparkFun Photon RedBoard×1
MikroE Temp&Hum Click×1
MikroE WiFi Plus Click×1
Construir un termómetro IoT con Python: Guía completaEspressif Wemos D1 Mini×1
Construir un termómetro IoT con Python: Guía completaArduino Zero×1

Aplicaciones y servicios en línea

Construir un termómetro IoT con Python: Guía completaZerynth Studio

Acerca de este proyecto

Construir un termómetro IoT con Python: Guía completa

La app Zerynth

Zerynth App es una aplicación móvil para Android y iOS que permite prototipado rápido de interfaces gráficas para tus proyectos IoT.

Convierte cualquier móvil en controlador y pantalla para objetos inteligentes y sistemas IoT. Gestiona y controla dispositivos programados con Zerynth, habilitando comunicación bidireccional entre ellos y tu móvil.

En este tutorial veremos cómo desarrollar un termómetro IoT simple pero potente, usando un microcontrolador de 32 bits con Zerynth y la app Zerynth como pantalla remota.

Materiales requeridos

Necesitas una placa compatible con Zerynth (32 bits). Elegimos Flip&Click de Mikroelektronika, similar a Arduino, con núcleo AT91SAM3X8E de Microchip (el mismo de Arduino Due).

Ensamblaje del termómetro IoT

Flip&Click es el primo de dos caras de Arduino. Por un lado es un Arduino; por el otro, cuatro zócalos mikroBUS abiertos para "click boards" (módulos complementarios como shields pero miniaturizados). Solo añade Temp&Hum y WiFi Plus en los slots A y B respectivamente.

Cómo programar el termómetro IoT con Python

Clonar el ejemplo

Instala Zerynth Studio, crea usuario y clona el ejemplo "Zerynth App Oscilloscope". Aprende a clonar un ejemplo.

Construir un termómetro IoT con Python: Guía completa

Código original en main.py (lógica del script Python). Partimos de él y lo adaptamos.

################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
# Este ejemplo usa Particle Photon
# Cambia la siguiente línea para otro driver wifi
from broadcom.bcm43362 import bcm43362 as wifi_driver
import streams
import adc
# Importar librería Zerynth APP
from zerynthapp import zerynthapp

streams.serial()
sleep(1000)
print("STARTING...")
try:
  # Device UID y TOKEN se crean en panel ADM
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", log=True)
  # Conectar a WiFi (configura SSID y password)
  wifi_driver.auto_init()
  for i in range(0,5):
    try:
      wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
      break
    except Exception as e:
      print("Can't link", e)
  else:
    print("Impossible to link!")
  while True:
    sleep(1000)
  # Iniciar instancia Zerynth app
  # Recuerda crear plantilla con archivos de carpeta "template"
  # Subir a ADM y asociar al dispositivo conectado
  zapp.run()
  # Leer ADC y enviar valores a ADM
  while True:
    sleep(1000)
    x = (adc.read(A4)*100)//4096
    zapp.event({"data":x})
    if x > 95:
      # Enviar notificación móvil (límite: 1 por minuto por dispositivo en sandbox ADM)
      zapp.notify("ALARM!", "The value is greater than 95!")
except Exception as e:
  print(e)

Importar el driver WiFi y librerías del sensor correctos

El ejemplo usa Particle Photon y su driver WiFi. Para usar WiFi Plus Click, cambia:

from broadcom.bcm43362 import bcm43362 as wifi_driver

por:

from microchip.mcw1001a import mcw1001a as wifi_driver

y:

wifi_driver.auto_init()

por:

wifi_driver.init(SERIAL2, D24) # slot B

Para el sensor de temperatura Temp&Hum Click, añade:

# Importar librería HTS221
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A

Para leer el sensor:

tmp, hum = temp_hum.get_temp_humidity() # Leer temp y hum

Configurar SSID y contraseña WiFi

Edita la línea:

wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")

Crear y configurar un dispositivo conectado

Crea un "dispositivo conectado" y vincula la instancia "zerynthapp". Las credenciales del dispositivo (UID y TOKEN) se copian desde Zerynth Studio (panel ADM). "IP" es la dirección del ADM de Zerynth (usada cuando el driver de red no soporta resolución de hostname).

Construir un termómetro IoT con Python: Guía completa
Construir un termómetro IoT con Python: Guía completa

Crear, subir y configurar la plantilla

Zerynth App ejecuta interfaces GUI responsivas usando HTML, CSS y JavaScript. ¡No necesitas código Android ni iOS!

La interfaz gráfica de cada dispositivo se aloja en el sandbox ADM de Zerynth y consiste en archivos HTML5, JS, CSS e imágenes. Añadiendo la librería JS de ADM a la plantilla, la app interactúa con el dispositivo (envío y recepción de mensajes).

Las plantillas se añaden con el icono "+". Sube la plantilla desde la carpeta dedicada. El archivo que la define es index.html (editable). En este caso, déjalo como está.

Construir un termómetro IoT con Python: Guía completa
Construir un termómetro IoT con Python: Guía completa

Subir el script (uplink)

Tras editar, el código queda así:

################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()
# Importar librería Zerynth APP
from zerynthapp import zerynthapp
# Importar librería HTS221
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A
sleep(1000)
print("STARTING...")
try:
  # Device UID y TOKEN del panel ADM
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
  # Conectar a WiFi
  wifi_driver.init(SERIAL2, D24) # slot B
  for i in range(0,5):
    try:
      wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
      break
    except Exception as e:
      print("Can't link", e)
    else:
      print("Impossible to link!")
    while True:
      sleep(1000)
  # Iniciar instancia Zerynth app
  zapp.run()
  # Leer sensor y enviar valores a ADM
  while True:
    sleep(1000)
    tmp, hum = temp_hum.get_temp_humidity()
    print("Temp is:", tmp, "Humidity is:", hum)
    try:
      zapp.event({"data": tmp})
    except Exception as e:
      print(e)
    if tmp > 30:
      # Notificación móvil (límite: 1/min/dispositivo en sandbox ADM)
      try:
        zapp.notify("ALARM!", "High Temperature!")
      except Exception as e:
        print(e)
except Exception as e:
  print(e)

Recuerda editar "DEVICE UID", "DEVICE TOKEN", "SSID" y "PASSWORD" con tus parámetros. Luego haz uplink del script a tu dispositivo.

Ver el panel del termómetro IoT en la app Zerynth

Abre Zerynth App, inicia sesión y selecciona el dispositivo para ver el panel. La app también recibe notificaciones push de los dispositivos conectados. Aquí aparecerá una notificación cuando la temperatura supere el umbral.

Construir un termómetro IoT con Python: Guía completa

¿Preguntas? Abre un debate en el foro de la comunidad Zerynth.

¡Disfruta!

Código

Termómetro IoT Python

################################################################################
# Zerynth App Oscilloscope
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()
# Importar librería Zerynth APP
from zerynthapp import zerynthapp
# Importar librería HTS221
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A
sleep(1000)
print("STARTING...")
try:
  # Device UID y TOKEN del panel ADM
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
  # Conectar a WiFi
  wifi_driver.init(SERIAL2, D24) # slot B
  for i in range(0,5):
    try:
      wifi.link("SSID", wifi.WIFI_WPA2, "PASSWORD")
      break
    except Exception as e:
      print("Can't link", e)
    else:
      print("Impossible to link!")
    while True:
      sleep(1000)
  # Iniciar instancia Zerynth app
  zapp.run()
  # Leer sensor y enviar valores a ADM
  while True:
    sleep(1000)
    tmp, hum = temp_hum.get_temp_humidity()
    print("Temp is:", tmp, "Humidity is:", hum)
    try:
      zapp.event({"data": tmp})
    except Exception as e:
      print(e)
    if tmp > 30:
      # Notificación móvil (límite: 1/min/dispositivo en sandbox ADM)
      try:
        zapp.notify("ALARM!", "High Temperature!")
      except Exception as e:
        print(e)
except Exception as e:
  print(e)

Esquemáticos

Construir un termómetro IoT con Python: Guía completa

Proceso de manufactura

  1. El termómetro: del termoscopio de Galileo a los sensores digitales modernos
  2. Sensor infrarrojo TMP006 con Raspberry Pi: librería Python y guía de configuración
  3. Construya un sensor de temperatura remoto con Raspberry Pi y Python – Guía paso a paso
  4. Dominando la Placa PSoC 6 Pioneer con Shield IoT Add-On: Guía para Desarrolladores
  5. Cómo el IoT Revoluciona la Vida Cotidiana
  6. Instalar Python y PyCharm en Windows: Guía Paso a Paso
  7. Cómo renombrar archivos y directorios en Python con os.rename() – Guía paso a paso
  8. Automatización de login en Facebook con Python y Selenium: Guía paso a paso
  9. Calculando Promedios en Python: Guía Práctica con Múltiples Métodos
  10. Convierta strings a Title Case en Python: rápido y fiable
  11. Envío de Email en Python con SMTP: Guía Rápida y Fácil