Taula de continguts:

Temperatura i humitat des d'Arduino fins a Raspberry Pi: 6 passos
Temperatura i humitat des d'Arduino fins a Raspberry Pi: 6 passos

Vídeo: Temperatura i humitat des d'Arduino fins a Raspberry Pi: 6 passos

Vídeo: Temperatura i humitat des d'Arduino fins a Raspberry Pi: 6 passos
Vídeo: PROJECT #024 : RASPBERRY PI WEB BASED DHT22 TEMPERATURE AND HUMIDITY LOGGER WITH MYSQL AND PHP 2024, Juliol
Anonim
Temperatura i humitat d'Arduino a Raspberry Pi
Temperatura i humitat d'Arduino a Raspberry Pi

El seguiment de la temperatura i la humitat és important si teniu un hivernacle o teniu previst futurs actualitzar el vostre hivernacle en una mini granja intel·ligent.

Per al meu primer instructable, demostraré com crear un prototip:

  • Connecteu un sensor de temperatura i humitat DHT11 a un Arduino Mega 2560
  • Programa l'Arduino en C per llegir les dades del sensor
  • Mostra les dades de temperatura i humitat en una pantalla LCD connectada a l'Arduino
  • Demaneu a Arduino que enviï les dades del sensor a un Raspberry Pi 3 Model B +
  • Escriviu codi a Python per mostrar les dades del sensor

Per què utilitzar un RPi i un Arduino junts?

La connexió Arduino i RPi pot permetre grans capacitats si necessiteu E / S que Arduino sobresurt i la comunicació de xarxa / multithreading / visuals en què el RPi és molt millor.

En altres paraules, utilitzarem l'Arduino per controlar tasques intensives i utilitzarem el RPi per a tasques intensives de càlcul.

Les versions robustes d'Arduinos estan disponibles a Rugged-Circuits

Pas 1: Obtenir maquinari Arduino i RPi

Els kits d'inici Arduino estan fàcilment disponibles i us permeten experimentar amb diferents tipus de sensors i aparells. La compra d’un kit d’inici resulta més barata en lloc de demanar diverses peces per separat. A continuació he proporcionat alguns enllaços d’afiliació que apunten a Banggood i Amazon US.

Kit d'inici Arduino (Banggood)

Arduino Starter Kit (Amazon EUA)

Element14 RPi 3 B + placa base (Amazon EUA)

Raspberry Pi 3 B + Case (Amazon EUA)

Targeta micro SD de 32 GB (Amazon EUA).

Pas 2: connecteu el DHT11 i el LCD a l'Arduino

Connecteu el DHT11 i el LCD a l'Arduino
Connecteu el DHT11 i el LCD a l'Arduino

Pas 3: programa l'Arduino

# arduino-dht11-lcd2004

#Autor: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Llegeix dades d'un DHT11 connectat a un Arduino, es mostra en un LCD2004 i envia dades per sèrie a Raspberry Pi

#incloure

#incloure

// La pantalla LCD es defineix com a número de dispositiu 0x27 al bus I2C

LiquidCrystal_I2C lcd (0x27, 20, 4);

// DHT11 està connectat al pin 8

dht DHT; #define sensorPin 8

// Raspberry Pi està connectat a la sèrie 0

#define serialPi Serial

configuració nul·la () {

lcd.begin (20, 4); // Inicialitza la interfície a la pantalla LCD i especifica les dimensions (amplada i alçada) de la pantalla lcd.init (); lcd.backlight (); serialPi.begin (9600); // Arduino al monitor sèrie}

bucle buit () {

// Llegiu les dades del sensor

int sensorData = DHT.read11 (sensorPin); temperatura del flotador = temperatura DHT; humitat flotant = DHT.humitat;

// Temperatura d’impressió

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

// Imprimeix la humitat

lcd.setCursor (0, 1); lcd.print ("Humitat"); impressió lcd (humitat); lcd.print ("%");

// Envieu dades de temperatura i humitat a Raspberry Pi

serialPi.print ("");

// Espereu 10 segons

retard (10000); }

Pas 4: Configuració Arduino, LCD i DHT11 de treball

La configuració de treball Arduino, LCD i DHT11
La configuració de treball Arduino, LCD i DHT11

Pas 5: connecteu el Raspberry Pi a l'Arduino

Connecteu el Raspberry Pi a l’Arduino
Connecteu el Raspberry Pi a l’Arduino

Pas 6: Codi RPi Python per llegir les dades de sèrie del port USB

# rpi-arduino-dht11

#Raspberry Pi llegeix les dades del sensor de temperatura i humitat d’Arduino

importació de sèries, cadenes, temps

# En aquest exemple s'utilitza / dev / ttyUSB0

# Això pot canviar en el vostre cas a / dev / ttyUSB1, / dev / ttyUSB2, etc. ser = serial. Serial ('/ dev / ttyUSB0', 9600)

#El següent bloc de codi funciona així:

#Si hi ha dades de sèrie, llegeix la línia, descodifica les dades UTF8, # … elimina l'extrem final dels caràcters de la línia # … divideix les dades en temperatura i humitat # … elimina els indicadors inicial i final () # … imprimeix la sortida mentre Cert: si ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Strip ('\ r / n') datasplit = cookedserial.split (',') temperature = datasplit [0].strip ('') impressió (temperatura) impressió (humitat)

Recomanat: