Table des matières:

Température et humidité d'Arduino à Raspberry Pi : 6 étapes
Température et humidité d'Arduino à Raspberry Pi : 6 étapes

Vidéo: Température et humidité d'Arduino à Raspberry Pi : 6 étapes

Vidéo: Température et humidité d'Arduino à Raspberry Pi : 6 étapes
Vidéo: Envoyer la température et l’humidité mesurées par DHT22 connecté à Arduino vers smartphone 2024, Juillet
Anonim
Température et humidité d'Arduino à Raspberry Pi
Température et humidité d'Arduino à Raspberry Pi

Le suivi de la température et de l'humidité est important si vous avez une serre ou si vous envisagez de transformer votre serre en mini-ferme intelligente.

Pour mon premier Instructable, je vais vous montrer comment créer un prototype:

  • Connectez un capteur de température et d'humidité DHT11 à un Arduino Mega 2560
  • Programmez l'Arduino en C pour lire les données du capteur
  • Afficher les données de température et d'humidité sur un écran LCD connecté à l'Arduino
  • Demandez à l'Arduino d'envoyer les données du capteur à un Raspberry Pi 3 modèle B+
  • Écrire du code en Python pour afficher les données du capteur

Pourquoi utiliser un RPi et un Arduino ensemble ?

La connexion Arduino et RPi peut permettre de grandes capacités si vous avez besoin d'E/S dans lesquelles l'Arduino excelle et de communication réseau/multithreading/visuels pour lesquels le RPi est bien meilleur.

En d'autres termes, nous allons utiliser l'Arduino pour les tâches de contrôle intensives et utiliser le RPi pour les tâches de calcul intensives.

Des versions renforcées d'Arduinos sont disponibles chez Rugged-Circuits

Étape 1: Obtenir le matériel Arduino et RPi

Les kits de démarrage Arduino sont facilement disponibles et vous permettent d'expérimenter différents types de capteurs et de gadgets. L'achat d'un kit de démarrage revient moins cher au lieu de commander différentes pièces séparément. J'ai fourni quelques liens d'affiliation ci-dessous pointant vers Banggood et Amazon US.

Kit de démarrage Arduino (Banggood)

Kit de démarrage Arduino (Amazon US)

Carte mère Element14 RPi 3 B+ (Amazon US)

Boîtier Raspberry Pi 3 B+ (Amazon US)

Carte Micro SD de 32 Go (Amazon US).

Étape 2: connectez le DHT11 et l'écran LCD à l'Arduino

Connectez le DHT11 et l'écran LCD à l'Arduino
Connectez le DHT11 et l'écran LCD à l'Arduino

Étape 3: programmer l'Arduino

#arduino-dht11-lcd2004

#Auteur: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ # Lit les données d'un DHT11 connecté à un Arduino, s'affiche sur un LCD2004 et envoie les données en série vers Raspberry Pi

#comprendre

#comprendre

//L'affichage LCD est défini comme le numéro d'appareil 0x27 sur le bus I2C

LiquidCrystal_I2C lcd (0x27, 20, 4);

//DHT11 est connecté à la broche 8

dht DHT; #define sensorPin 8

//Le Raspberry Pi est connecté au Serial 0

#define serialPi Serial

void setup() {

lcd.begin (20, 4); // Initialise l'interface avec l'écran LCD, et spécifie les dimensions (largeur et hauteur) de l'affichage lcd.init(); LCD rétro-éclairage(); serialPi.begin(9600); //Arduino vers moniteur série }

boucle vide() {

//Lire les données du capteur

int sensorData = DHT.read11(sensorPin); température du flotteur = DHT.temperature; flotteur humidité = DHT.humidité;

//Impression de la température

lcd.setCursor(0, 0); lcd.print("Température "); lcd.print(température); lcd.print("C");

//Imprimer l'humidité

lcd.setCursor(0, 1); lcd.print("Humidité "); lcd.print(humidité); lcd.print(" %");

//Envoyer les données de température et d'humidité au Raspberry Pi

serialPi.print("");

//Attendez 10 secondes

retard (10000); }

Étape 4: La configuration fonctionnelle de l'Arduino, de l'écran LCD et du DHT11

La configuration fonctionnelle de l'Arduino, de l'écran LCD et du DHT11
La configuration fonctionnelle de l'Arduino, de l'écran LCD et du DHT11

Étape 5: Connectez le Raspberry Pi à l'Arduino

Connectez le Raspberry Pi à l'Arduino
Connectez le Raspberry Pi à l'Arduino

Étape 6: Code Python RPi pour lire les données série du port USB

#rpi-arduino-dht11

#Raspberry Pi lit les données des capteurs de température et d'humidité d'Arduino

importer la série, la chaîne, l'heure

#Dans cet exemple, /dev/ttyUSB0 est utilisé

#Cela peut changer dans votre cas en /dev/ttyUSB1, /dev/ttyUSB2, etc. ser = serial. Serial('/dev/ttyUSB0', 9600)

#Le bloc de code suivant fonctionne comme ceci:

#Si des données série sont présentes, lisez la ligne, décodez les données UTF8, #…supprimez les caractères de fin de ligne #…divisez les données en température et humidité #…supprimez les pointeurs de début et de fin () #…imprimez la sortie tout en Vrai: si ser.in_waiting > 0: rawserial = ser.readline()cookserial = rawserial.decode('utf-8').strip('\r\n') datasplit = cuitserial.split(', ') temperature = datasplit[0].strip('') print(temperature) print(humidité)

Conseillé: