Termômetro IoT usando Python
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Aplicativos e serviços online
|
Sobre este projeto
O aplicativo Zerynth
Zerynth App é um aplicativo móvel para Android e iOS que permite a prototipagem rápida de interfaces gráficas para seus projetos IoT .
Com o aplicativo Zerynth você pode transformar qualquer celular no controlador e exibir para objetos inteligentes e sistemas IoT ! Em particular, você pode gerenciar e controlar os dispositivos conectados programados com Zerynth, permitindo um canal de comunicação bidirecional entre eles e seu celular.
Neste tutorial, veremos como desenvolver um termômetro de IoT simples, mas poderoso , usando um microcontrolador de placa única alimentado por Zerynth e o aplicativo Zerynth como display remoto.
Materiais necessários
Em primeiro lugar, você precisa de uma placa. Você pode selecionar um dos dispositivos microcontroladores de 32 bits suportados pelo Zerynth. Escolhemos o Flip &Click da Mikroelektronika, que compartilha muitos dos mesmos atributos das plataformas populares 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 possui um sensor HTS221 de temperatura e umidade relativa.
Para conectar a placa à internet escolhemos o WiFi PLUS Click, que possui MRF24WB0MA - 2,4 GHz, IEEE std. 802.11 - módulo compatível da Microchip , bem como controlador complementar MCW1001 com pilha TCP / IP on-board e gerenciador de conexão 802.11.
Por último, mas não menos importante, você precisa de:
- Zerynth Studio , nosso poderoso IDE para programação embarcada em Python que habilita a IoT. Você pode baixá-lo aqui.
- Zerynth App . Você pode baixá-lo aqui.
Montagem de seu termômetro IoT
Flip &Click é o primo de dois lados do Arduino. De um lado, é um Arduino. Mas, por outro lado, você encontrará quatro soquetes mikroBUS abertos para o que a empresa chama de "painéis clicáveis". Essencialmente, esses são módulos complementares que se assemelham aos escudos do Arduino, mas reduzidos para que você possa colocar alguns ao mesmo tempo no flip e clique sem nenhum problema. Basta adicionar os cliques Temp &Hum e Wifi Plus à placa, respectivamente no slot A e B.
Como programar o termômetro IoT usando Python
Clone o exemplo
Depois de instalar o Zerynth Studio e criar um usuário Zerynth, você pode clonar o exemplo “ Zerynth App Oscilloscope “. Dê uma olhada aqui para aprender como clonar um exemplo.
Vamos dar uma olhada no código original no arquivo “ main.py ”:Aqui é onde você desenvolve a lógica de seu Python roteiro. Começaremos com o código original e depois editaremos o script para desenvolver nosso projeto específico.
##################################################### ################################################ Termômetro IoT ############ ############################################################### ############# De wireless import wifi # este exemplo é baseado em Particle Photon # mude a seguinte linha para usar um driver wifi diferente de broadcom.bcm43362 import bcm43362 as wifi_driverimport streamsimport adc # Importe a biblioteca Zerynth APP do zerynthapp import zerynthapp streams.serial () sleep (1000) print ("STARTING ...") try:# O UID do dispositivo e o TOKEN podem ser criados no painel ADM zapp =zerynthapp.ZerynthApp ("DEVICE UID "," DEVICE TOKEN ", log =True) # conectar à rede wi-fi (Defina seu SSID e senha abaixo) wifi_driver.auto_init () para i no intervalo (0,5):try:wifi.link (" SSID " , wifi.WIFI_WPA2, "PASSWORD") interromper exceto Exceção como e:print ("Não é possível vincular", e) else:print ("Impossível vincular!") while True:sleep (1000) # Inicie a instância do aplicativo Zerynth! # Lembre-se de criar um modelo com os arquivos na pasta "template" que você acabou de clonar # carregue-o no ADM e associe-o ao dispositivo conectado zapp.run () # Leia o ADC e envie valores para o ADM enquanto True:sleep ( 1000) x =(adc.read (A4) * 100) // 4096 zapp.event ({"data":x}) se x> 95:# enviar notificação móvel # (há um limite de uma notificação por minuto por dispositivo na caixa de areia ADM) zapp.notify ("ALARM!", "O valor é maior que 95!") exceto Exceção como e:print (e)
Neste exemplo simples, um osciloscópio gráfico é visualizado pelo Zerynth App com dados vindos da placa conectada. Os dados são adquiridos de um sensor analógico pelo pino A4 “analógico”.
Importe o driver de wi-fi certo e as bibliotecas de sensores
Como você pode ver nos comentários, este exemplo é baseado na placa Particle Photon e seu driver wi-fi. Como queremos usar o WiFi Plus Click, temos que alterar as seguintes linhas:
from broadcom.bcm43362 import bcm43362 as wifi_driver
dentro
from microchip.mcw1001a import mcw1001a as wifi_driver
e
wifi_driver.auto_init ()
dentro
wifi_driver.init (SERIAL2, D24) # slot B
Então, queremos usar o sensor de temperatura do Temp &Hum Click. Portanto, temos que adicionar as seguintes linhas para importar a biblioteca e configurar o sensor, como você pode ler na documentação:
# Importar a biblioteca HTS221 de stm.hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # slot A
Para ler o sensor, basta escrever a seguinte linha, onde for necessário:
tmp, hum =temp_hum.get_temp_humidity () # Leia tmp e hum
Configure o nome SSID e a SENHA
Claro, você também deve editar o nome SSID e a SENHA da rede wi-fi que deseja conectar à placa, editando esta linha:
wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD")
Crie e configure um dispositivo conectado
Agora temos que criar um “dispositivo conectado” e vincular a instância “zerynthapp” a ele. Abaixo você pode ver algumas capturas de tela com as etapas necessárias. Dê uma olhada neste documento para mais detalhes técnicos.
As credenciais do dispositivo ( UID e TOKEN ) pode ser copiado e colado diretamente do Zerynth Studio (painel ADM). “IP” é o endereço IP do Zerynth ADM. Este argumento é usado quando o driver de rede não oferece suporte à resolução de nome de host, como neste caso.
Crie, carregue e defina o modelo
Por meio do aplicativo Zerynth, você pode executar lindas interfaces gráficas de usuário responsivas usando HTML , CSS e JavaScript . Não há necessidade de código Android ou iOS!
A interface gráfica de cada dispositivo é hospedada no sandbox Zerynth ADM e consiste em um conjunto de HTML5, Javascript, CSS e arquivos de imagem que são carregados e exibidos no aplicativo. Adicionar ao modelo a Biblioteca Javascript ADM permite que o aplicativo interaja com o dispositivo conectado, tanto para receber quanto para enviar mensagens.
Os modelos podem ser adicionados clicando no respectivo ícone “mais”.
Em seguida, carregue o modelo da pasta dedicada. Observe que o arquivo onde o modelo é definido é denominado “ index.html ”E você pode editá-lo como quiser. Nesse caso, você pode deixar como está.
Faça o uplink do script
Depois de algumas edições, o código deve ficar assim:
##################################################### ################################################ Termômetro IoT ############ ############################################################### ########################### Importar wireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport streamsimport adc streams.serial () # Importar a biblioteca APP Zerynthde zerynthapp import zerynthapp # Importar o HTS221 libraryfrom 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) # conecte-se à rede wi-fi (defina seu SSID e senha abaixo) wifi_driver.init (SERIAL2, D24) # slot B para i no intervalo (0,5):try:wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD") break exceto Exceção como e:print ("Não é possível vincular", e) else:print ("Impossível para ligar! ") while True:sleep (1000) # Inicie a instância do aplicativo Zerynth! # Lembre-se de criar um modelo com os arquivos na pasta "template" que você acabou de clonar # carregue-o no ADM e associe-o ao dispositivo conectado zapp.run () # Leia o sensor e envie valores para o ADM enquanto True:sleep (1000) tmp, hum =temp_hum.get_temp_humidity () # Leia tmp e hum print ("Temp é:", tmp, "Umidade é:", hum) try:zapp.event ({"data":tmp}) exceto Exceção como e:print (e) se tmp>
30:# enviar notificação móvel # (há um limite de uma notificação por minuto por dispositivo na caixa de proteção ADM) try:zapp.notify ("ALARM!", "Alta temperatura! ") Exceto Exceção como e:print (e) exceto Exceção como e:print (e)
Lembre-se de que “DEVICE UID”, “DEVICE TOKEN”, “SSID” e “PASSWORD” devem ser editados para se ajustarem aos seus próprios parâmetros.
Neste ponto, você pode fazer o uplink do script em seu dispositivo.
Como ver o painel do termômetro IoT no aplicativo Zerynth
Como você pode ler neste breve tutorial, você só precisa abrir o aplicativo Zerynth, fazer o login e selecionar o dispositivo específico para ver o painel do seu termômetro IoT. Por último, Zerynth App também pode receber notificações push dos dispositivos conectados. Neste caso, uma notificação aparecerá quando a temperatura for maior que o limite!
Se você tiver alguma dúvida, não hesite em abrir uma discussão no fórum da comunidade Zerynth.
Divirta-se!
Código
- Termômetro IoT
Termômetro IoT Python
######################################################### ############ Osciloscópio Zerynth App ##################################################### ############################################################### ######################### De wireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport streamsimport adc streams.serial () # Importe a biblioteca Zerynth APP de zerynthapp import zerynthapp # Importe a biblioteca HTS221 de 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) # conecte-se à rede wi-fi (defina seu SSID e senha abaixo) wifi_driver.init (SERIAL2, D24) # slot B para i in range (0,5):try:wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD") break exceto Exceção como e:print ("Não é possível vincular", e) else:print ("Impossível vincular ! ") While True:sleep (1000) # Inicie a instância do aplicativo Zerynth! # Lembre-se de criar um modelo com os arquivos na pasta "template" que você acabou de clonar # carregue-o no ADM e associe-o ao dispositivo conectado zapp.run () # Leia o sensor e envie valores para o ADM enquanto True:sleep (1000) tmp, hum =temp_hum.get_temp_humidity () # Leia tmp e hum print ("Temp é:", tmp, "Umidade é:", hum) try:zapp.event ({"data":tmp}) exceto Exceção como e:print (e) se tmp> 30:# enviar notificação móvel # (há um limite de uma notificação por minuto por dispositivo na caixa de proteção ADM) try:zapp.notify ("ALARM!", "Alta temperatura! ") Exceto Exceção como e:print (e) exceto Exceção como e:print (e)
Esquemas
Processo de manufatura
- Termômetro
- Biblioteca Python do sensor de temperatura TMP006 usando Raspberry pi,
- Sensor de temperatura Python e Raspberry Pi
- Usando o PSoC 6 Pioneer Board com o Pioneer IoT Add-on Shield
- Como a IoT está perturbando o mundo ao nosso redor
- Como instalar o Python no Windows [Pycharm IDE]
- Python Renomear Arquivo e Diretório usando os.rename()
- Login no Facebook usando Python:Exemplo de login no FB
- Python Average:Como encontrar a AVERAGE de uma lista em Python
- Python - Enviando e-mail usando SMTP