Índice:

Temperatura e umidade do Arduino ao Raspberry Pi: 6 etapas
Temperatura e umidade do Arduino ao Raspberry Pi: 6 etapas

Vídeo: Temperatura e umidade do Arduino ao Raspberry Pi: 6 etapas

Vídeo: Temperatura e umidade do Arduino ao Raspberry Pi: 6 etapas
Vídeo: Como Integrar o Raspberry com o Arduino ? - Vídeo #10 - RaspberryPi Primeiros Passos 2024, Julho
Anonim
Temperatura e umidade do Arduino ao Raspberry Pi
Temperatura e umidade do Arduino ao Raspberry Pi

Rastrear a temperatura e a umidade é importante se você tiver uma estufa ou se tiver planos futuros de transformá-la em uma mini fazenda inteligente.

No meu primeiro Instructable, demonstrarei como criar um protótipo:

  • Conecte um sensor de temperatura e umidade DHT11 a um Arduino Mega 2560
  • Programe o Arduino em C para ler os dados do sensor
  • Exibir dados de temperatura e umidade em um LCD conectado ao Arduino
  • Instrua o Arduino a enviar os dados do sensor para um Raspberry Pi 3 Modelo B +
  • Escreva o código em Python para exibir os dados do sensor

Por que usar um RPi e um Arduino juntos?

A conexão Arduino e RPi pode permitir grandes recursos se você precisar de I / O em que o Arduino se destaca e comunicação de rede / multithreading / visuais em que o RPi é muito melhor.

Em outras palavras, vamos usar o Arduino para tarefas de controle intensivo e usar o RPi para tarefas de computação intensiva.

Versões robustas de Arduinos estão disponíveis em Rugged-Circuits

Etapa 1: Obtendo Hardware Arduino e RPi

Os kits iniciais do Arduino estão prontamente disponíveis e permitem que você experimente diferentes tipos de sensores e dispositivos. Comprar um kit inicial sai mais barato em vez de encomendar várias peças separadamente. Forneci alguns links de afiliados abaixo apontando para Banggood e Amazon US.

Arduino Starter Kit (Banggood)

Arduino Starter Kit (Amazon US)

Placa-mãe Element14 RPi 3 B + (Amazon EUA)

Capa Raspberry Pi 3 B + (Amazon EUA)

Cartão Micro SD de 32 GB (Amazon US).

Etapa 2: Conecte o DHT11 e LCD ao Arduino

Conecte o DHT11 e LCD ao Arduino
Conecte o DHT11 e LCD ao Arduino

Etapa 3: programar o Arduino

# arduino-dht11-lcd2004

#Author: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ # Lê dados de um DHT11 conectado a um Arduino, exibe em um LCD2004 e envia dados por serial para Raspberry Pi

#incluir

#incluir

// O display LCD é definido como o número do dispositivo 0x27 no barramento I2C

LiquidCrystal_I2C lcd (0x27, 20, 4);

// DHT11 está conectado ao pino 8

dht DHT; #define sensorPin 8

// Raspberry Pi está conectado ao Serial 0

#define serialPi Serial

void setup () {

lcd.begin (20, 4); // Inicializa a interface para a tela LCD e especifica as dimensões (largura e altura) do display lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino para monitor serial}

void loop () {

// Ler dados do sensor

int sensorData = DHT.read11 (sensorPin); temperatura flutuante = DHT.temperatura; umidade flutuante = DHT.umidade;

// Imprimir temperatura

lcd.setCursor (0, 0); lcd.print ("Temperatura"); lcd.print (temperatura); lcd.print ("C");

// Imprimir umidade

lcd.setCursor (0, 1); lcd.print ("Umidade"); lcd.print (umidade); lcd.print ("%");

// Enviar dados de temperatura e umidade para Raspberry Pi

serialPi.print ("");

// Aguarde 10 segundos

atraso (10000); }

Etapa 4: Configuração de trabalho do Arduino, LCD e DHT11

A configuração de trabalho do Arduino, LCD e DHT11
A configuração de trabalho do Arduino, LCD e DHT11

Etapa 5: conecte o Raspberry Pi ao Arduino

Conecte o Raspberry Pi ao Arduino
Conecte o Raspberry Pi ao Arduino

Etapa 6: Código Python RPi para ler os dados seriais da porta USB

# rpi-arduino-dht11

#Raspberry Pi lê dados do sensor de temperatura e umidade do Arduino

import serial, string, time

#Neste exemplo / dev / ttyUSB0 é usado

# Isso pode mudar no seu caso para / dev / ttyUSB1, / dev / ttyUSB2, etc. ser = serial. Serial ('/ dev / ttyUSB0', 9600)

#O seguinte bloco de código funciona assim:

#Se dados seriais estiverem presentes, leia a linha, decodifique os dados UTF8, # … remova os caracteres de fim de linha à direita # … divida os dados em temperatura e umidade # … remova os ponteiros inicial e final () # … imprima a saída enquanto Verdadeiro: if ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') temperatura = datasplit [0].strip ('') imprimir (temperatura) imprimir (umidade)

Recomendado: