Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Construa um Termômetro IoT com Python: Guia Completo

Componentes e materiais

MikroE Flip & Click × 1
Construa um Termômetro IoT com Python: Guia Completo Arduino Due × 1
Construa um Termômetro IoT com Python: Guia Completo Particle Photon × 1
Construa um Termômetro IoT com Python: Guia Completo NodeMCU ESP8266 Breakout Board × 1
Construa um Termômetro IoT com Python: Guia Completo SparkFun Photon RedBoard × 1
MikroE Temp&Hum Click × 1
MikroE WiFi Plus Click × 1
Construa um Termômetro IoT com Python: Guia Completo Espressif Wemos D1 Mini × 1
Construa um Termômetro IoT com Python: Guia Completo Arduino Zero × 1

Aplicativos e serviços online

Construa um Termômetro IoT com Python: Guia Completo Zerynth Studio

Sobre este projeto

Construa um Termômetro IoT com Python: Guia Completo

O App Zerynth

O Zerynth App é um aplicativo móvel para Android e iOS que permite prototipagem rápida de interfaces gráficas para seus projetos IoT.

Com o Zerynth App, você pode transformar qualquer celular no controlador e display para objetos inteligentes e sistemas IoT! Em particular, você pode gerenciar e controlar dispositivos conectados programados com Zerynth, habilitando um canal de comunicação bidirecional entre eles e seu celular.

Neste tutorial, veremos como desenvolver um termômetro IoT simples mas poderoso, usando um microcontrolador de placa única alimentado por Zerynth e o Zerynth App como display remoto.

Materiais necessários

Primeiro, você precisa de uma placa. Pode selecionar um dos dispositivos de microcontrolador de 32 bits suportados pelo Zerynth. Escolhemos o Flip&Click da Mikroelektronika, que compartilha muitos atributos das populares plataformas Arduino, incluindo o AT91SAM3X8E de 32 bits da Microchip, o núcleo do Arduino Due.

Para medir a temperatura, escolhemos o Temp&Hum Click, que carrega um sensor de temperatura e umidade relativa HTS221.

Para conectar a placa à internet, escolhemos o WiFi PLUS Click, que possui o módulo MRF24WB0MA – 2.4GHz, compatível com IEEE std. 802.11 – da Microchip, bem como controlador companheiro MCW1001 com stack TCP/IP onboard e gerenciador de conexão 802.11.

Por fim, você precisa:

Montando seu Termômetro IoT

O Flip&Click é o primo de dois lados do Arduino. De um lado é um Arduino. Do outro, você encontra quatro soquetes mikroBUS abertos para o que a empresa chama de "click boards". Essencialmente, são módulos add-on que se assemelham a shields Arduino, mas encolhidos para que você possa encaixar vários ao mesmo tempo no Flip & Click sem problemas. Basta adicionar os clicks Temp&Hum e WiFi Plus à placa, respectivamente nos slots A e B.

Como programar o Termômetro IoT usando Python

Clone o exemplo

Após instalar o Zerynth Studio e criar um usuário Zerynth, você pode clonar o exemplo "Zerynth App Oscilloscope". Veja aqui como clonar um exemplo.

Construa um Termômetro IoT com Python: Guia Completo

Vamos ver o código original no arquivo "main.py": aqui é onde você desenvolve a lógica do seu script Python. Começaremos do código original e editaremos o script para desenvolver nosso projeto específico.

################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
# este exemplo é baseado no Particle Photon
# altere a linha abaixo para usar driver wifi diferente
from broadcom.bcm43362 import bcm43362 as wifi_driver
import streams
import adc

# Importa biblioteca Zerynth APP
from zerynthapp import zerynthapp

streams.serial()
sleep(1000)
print("STARTING...")

try:
  # Device UID e TOKEN podem ser criados no painel ADM
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", log=True)
  
  # conecta à rede wifi (defina seu SSID e senha abaixo)
  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)
  
  # Inicia a instância do Zerynth app!
  # Lembre-se de criar um template com os arquivos sob a pasta "template" que você clonou
  # faça upload para o ADM e associe ao dispositivo conectado
  zapp.run()
  
  # Lê ADC e envia valores para o ADM
  while True:
    sleep(1000)
    x = (adc.read(A4)*100)//4096
    zapp.event({"data":x})
    if x > 95:
      # envia notificação móvel
      # (limite de uma notificação por minuto por dispositivo no ADM sandbox)
      zapp.notify("ALARM!", "The value is greater than 95!")
except Exception as e:
  print(e)

Neste exemplo simples, um osciloscópio gráfico é visualizado pelo Zerynth App com dados vindos da placa conectada. Dados são adquiridos de um sensor analógico pelo pino "analog" A4.

Importe o driver WiFi correto e bibliotecas do sensor

Como visto nos comentários, este exemplo é baseado na placa Particle Photon e seu driver WiFi. Como queremos usar o WiFi Plus Click, devemos alterar as seguintes linhas:

from broadcom.bcm43362 import bcm43362 as wifi_driver

para

from microchip.mcw1001a import mcw1001a as wifi_driver

e

wifi_driver.auto_init()

para

wifi_driver.init(SERIAL2, D24) # slot B

Então, queremos usar o sensor de temperatura do Temp&Hum Click. Adicionamos as linhas para importar a biblioteca e configurar o sensor, conforme a documentação:

# Importa biblioteca HTS221
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A

Para ler o sensor, escreva a seguinte linha onde necessário:

tmp, hum = temp_hum.get_temp_humidity() # Lê tmp e hum

Configure o nome SSID e senha

Claro, você também deve editar o nome SSID e a SENHA da rede WiFi à qual deseja conectar a placa, editando esta linha:

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

Crie e configure um dispositivo conectado

Agora precisamos criar um "dispositivo conectado" e vincular a instância "zerynthapp" a ele. Abaixo, capturas de tela com os passos necessários. Veja esta documentação para mais detalhes técnicos.

Construa um Termômetro IoT com Python: Guia Completo

As credenciais do dispositivo (UID e TOKEN) podem ser copiadas e coladas diretamente do Zerynth Studio (painel ADM). "IP" é o endereço IP do Zerynth ADM. Este argumento é usado quando o driver de rede não suporta resolução de hostname, como neste caso.

Construa um Termômetro IoT com Python: Guia Completo

Crie, faça upload e defina o template

Através do Zerynth App, você pode executar belas interfaces gráficas responsivas usando HTML, CSS e JavaScript. Não precisa de código Android ou iOS!

A interface gráfica de cada dispositivo é hospedada no sandbox Zerynth ADM e consiste em um conjunto de arquivos HTML5, Javascript, CSS e imagens carregados e exibidos no app. Adicionar a biblioteca Javascript ADM ao template permite que o app interaja com o dispositivo conectado, tanto recebendo quanto enviando mensagens.

Templates podem ser adicionados clicando no ícone "mais" respectivo.

Construa um Termômetro IoT com Python: Guia Completo

Depois, faça upload do template da pasta dedicada. Note que o arquivo onde o template é definido chama-se "index.html" e você pode editá-lo como quiser. Neste caso, pode deixá-lo como está.

Construa um Termômetro IoT com Python: Guia Completo

Faça uplink do script

Após algumas edições, o código deve ficar assim:

################################################################################
# IoT Thermometer
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()

# Importa biblioteca Zerynth APP
from zerynthapp import zerynthapp

# Importa biblioteca HTS221
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A

sleep(1000)
print("STARTING...")

try:
  # Device UID e TOKEN podem ser criados no painel ADM
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
  
  # conecta à rede wifi (defina seu SSID e senha abaixo)
  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)
  
  # Inicia a instância do Zerynth app!
  zapp.run()
  
  # Lê o sensor e envia valores para o ADM
  while True:
    sleep(1000)
    tmp, hum = temp_hum.get_temp_humidity() # Lê tmp e hum
    print("Temp is:", tmp, "Humidity is:", hum)
    try:
      zapp.event({"data": tmp})
    except Exception as e:
      print(e)
    if tmp > 30:
      # envia notificação móvel
      try:
        zapp.notify("ALARM!", "High Temperature!")
      except Exception as e:
        print(e)
except Exception as e:
  print(e)

Lembre-se que "DEVICE UID", "DEVICE TOKEN", "SSID" e "PASSWORD" devem ser editados para corresponder aos seus parâmetros.

Neste ponto, você pode fazer uplink do script para seu dispositivo.

Como ver o dashboard do Termômetro IoT no Zerynth App

Como você pode ler neste breve tutorial, basta abrir o Zerynth App, fazer login e selecionar o dispositivo específico para ver o dashboard do seu Termômetro IoT. Por fim, o Zerynth App também pode receber push notifications dos dispositivos conectados. Neste caso, uma notificação aparecerá quando a temperatura for maior que o limite!

Construa um Termômetro IoT com Python: Guia Completo

Se tiver dúvidas, não hesite em abrir uma discussão no fórum da comunidade Zerynth.

Divirta-se!

Código

IoT Thermometer

################################################################################
# Zerynth App Oscilloscope
################################################################################
from wireless import wifi
from microchip.mcw1001a import mcw1001a as wifi_driver
import streams
import adc
streams.serial()

# Importa biblioteca Zerynth APP
from zerynthapp import zerynthapp

# Importa biblioteca HTS221
from stm.hts221 import hts221
temp_hum = hts221.HTS221(I2C0, D21) # slot A

sleep(1000)
print("STARTING...")

try:
  # Device UID e TOKEN podem ser criados no painel ADM
  zapp = zerynthapp.ZerynthApp("DEVICE UID", "DEVICE TOKEN", ip="178.22.65.123", log=True)
  
  # conecta à rede wifi (defina seu SSID e senha abaixo)
  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)
  
  # Inicia a instância do Zerynth app!
  zapp.run()
  
  # Lê o sensor e envia valores para o ADM
  while True:
    sleep(1000)
    tmp, hum = temp_hum.get_temp_humidity() # Lê tmp e hum
    print("Temp is:", tmp, "Humidity is:", hum)
    try:
      zapp.event({"data": tmp})
    except Exception as e:
      print(e)
    if tmp > 30:
      # envia notificação móvel
      try:
        zapp.notify("ALARM!", "High Temperature!")
      except Exception as e:
        print(e)
except Exception as e:
  print(e)

Esquemáticos

Construa um Termômetro IoT com Python: Guia Completo

Processo de manufatura

  1. O Termômetro: Do Termoscópio de Galileo aos Sensores Digitais Modernos
  2. Sensor de Temperatura Infravermelho TMP006 com Raspberry Pi: Biblioteca Python e Guia de Configuração
  3. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  4. Dominando a Placa PSoC 6 Pioneer com Shield IoT Add-On: Guia do Desenvolvedor
  5. Como a IoT Está Revolucionando a Vida Cotidiana
  6. Instalar Python e PyCharm no Windows: Guia Passo a Passo
  7. Como Renomear Arquivos e Diretórios em Python com os.rename() – Guia Passo a Passo
  8. Automatizando Login no Facebook com Python e Selenium: Guia Passo a Passo
  9. Calculando Médias em Python: Guia Prático
  10. Enviando E-mail em Python com SMTP: Guia Rápido