Tutorial IoT Iniciante: Streaming de Dados de Temperatura de um Raspberry Pi
"Hello World!" – Este é provavelmente a saída do primeiro programa que você escreveu ao aprender a codificar. Configurar um dispositivo para transmitir dados de temperatura está se tornando rapidamente o projeto "Hello World!" de fato da Internet das Coisas (IoT). Se imprimir "Hello World!" pela primeira vez foi uma tarefa longa e frustrante, você talvez nunca tivesse escrito outro programa. Seu primeiro projeto IoT deve apenas colocar um grande sorriso no seu rosto. Este projeto divertido e fácil apresentará você ao maravilhoso mundo de streaming de dados IoT.
Um tutorial em vídeo deste projeto completo pode ser encontrado em:
https://youtu.be/HMqPbfvCshs
Aqui estão os suprimentos que você precisará:
- Um Raspberry Pi conectado à internet ou seu single-board computer de escolha.
- Um sensor de temperatura DS18B20 (https://www.adafruit.com/product/381).
- Uma breadboard para fiação de circuito simples (no kit Adafruit Pi starter).
- Um resistor 4.7K a 10K (também no kit Adafruit Pi starter).
Passo 1: Configuração de Hardware
O sensor de temperatura DS18B20 funciona bem com o Raspberry Pi porque tem saída digital, e o Pi não tem conversores analógico‑digitais (ADC) onboard. Raspbian inclui interface para ler saída do sensor. Só precisamos escrever um pouco de código para capturar e parsear a temperatura. Adafruit tem um ótimo tutorial aqui para usar o DS18B20 que vamos simplesmente seguir e modificar para transmitir a temperatura em vez de apenas mostrá‑la na tela.
A configuração de hardware é simples. Fio vermelho DS18B20 no 3.3V. Fio preto no GND. Fio azul no resistor pull‑up e no GPIO pin 4 do seu Pi.
Passo 2: Ler a Temperatura
Para iniciar a interface de leitura do sensor de temperatura precisamos rodar dois comandos. Vá ao prompt de comando no seu Pi ou SSH no seu Pi. Digite os seguintes comandos:
sudo modprobe w1-gpio
sudo modprobe w1-therm
A saída do seu sensor de temperatura agora está sendo escrita em um arquivo no seu Pi. Para encontrar esse arquivo,
cd /sys/bus/w1/devices
Neste diretório, haverá um subdiretório que começa com "28-". O que vem após o "28-" é o número de série do seu sensor. cd nesse diretório. Dentro deste diretório, um arquivo chamado w1_slave contém a saída do seu sensor. O conteúdo deste arquivo será parecido com isto:
a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YES
a2 01 4b 46 7f ff 0e 10 d8 t=26125
O número após "t=" é o número que queremos. Esta é a temperatura em 1/1000 graus Celsius (no exemplo acima, a temperatura é 26.125 C). Precisamos apenas de um programa simples que leia este arquivo e parseie esse número. Felizmente, Adafruit já criou um script Python para nós que faz exatamente isso e mostra a temperatura na tela. Crie um novo arquivo no seu Pi (ex. temperature.py) e copie‑cole o seguinte código:
Clique aqui para ver o código
Execute este script ("sudo python temperature.py") para ver a saída do seu sensor de temperatura na tela.
Passo 3: Transmitir a Temperatura
Este é o ponto onde nos desviamos do tutorial Adafruit. Enviar temperatura para a tela é chato. Queremos transmitir esses dados para algum lugar onde possamos ver não apenas a temperatura atual mas um histórico de dados de temperatura capturados (além disso, quem quer "ler" um monte de temperaturas como texto; queremos uma visualização de dados bonita). Primeiro instale o streamer Initial State para dar às nossas medições de temperatura um destino para ir (vá aqui para instruções de configuração do Initial State streamer; é super fácil e leva menos de dois minutos). Vamos modificar o script acima para transmitir a temperatura para nossa conta Initial State em vez de mostrá‑la na tela. Aqui estão as modificações:
Clique aqui para ver o código
Você precisará copiar+colar a client key associada com sua conta Initial State entre as aspas na linha 6 onde diz client_key = "". Você pode encontrar sua client key nas configurações da conta ou na landing page após logar na sua conta.
Estas são as modificações que acabamos de fazer:
- Na linha 4, importamos o módulo Initial State data streamer.
- Na linha 6, criamos um novo bucket chamado "Temperature Stream" e associamos à nossa conta via nossa client key.
- Na linha 30, modificamos a função read_temp() para retornar apenas a temperatura em Celsius.
- Na linha 34, convertemos a saída de read_temp() para fahrenheit.
- Nas linhas 35 e 36, transmitimos as duas temperaturas.
Para mais detalhes: IoT 101 Project: Stream Temperature from your Raspberry Pi
Processo de manufatura
- Construa um Registrador de Temperatura com Raspberry Pi e Sensor I2C de $5
- Perfilamento de Temperatura Preciso no Raspberry Pi com Python, SQLite e LabVIEW
- Monitor de Temperatura e Umidade em Rede com Raspberry Pi – Guia DIY de Configuração
- Como Ler Temperatura com DS18B20 no Raspberry Pi 2
- Monitoramento Profissional de Temperatura com Raspberry Pi e DS18B20
- Medição de Temperatura no Raspberry Pi com Sensores Maxim 1‑Wire e Bridge I2C DS2482
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Monitoramento Preciso de Temperatura em Closet de Servidores com Raspberry Pi
- Raspberry Pi BMP085: Leituras Precisas de Temperatura e Pressão via I2C
- Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20