Table des matières:
- Étape 1: Choses nécessaires pour le projet
- Étape 2: Téléchargez et installez Arduino IDE dans Raspberry Pi
- Étape 3: Coder pour Arduino
- Étape 4: Configurer Raspberry Pi
- Étape 5: Script Python
- Étape 6: Schéma de circuit
- Étape 7: Résultat
Vidéo: Tracer les données DHT11 à l'aide de Raspberry Pi et Arduino UNO : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Cette instructable explique comment je trace les données du capteur de température DHT11 à l'aide d'Arduino Uno et de Raspberry Pi. Dans ce capteur de température est connecté avec Arduino Uno et Arduino Uno est connecté en série avec Raspberry Pi. Chez Raspberry Pi Side, les bibliothèques matplotlib, numpy et drawow sont utilisées pour tracer des graphiques.
Étape 1: Choses nécessaires pour le projet
1. Framboise Pi
2. Arduino Uno
3. Capteur de température DHT11
4. Fils de cavalier
5. Planche à pain
Étape 2: Téléchargez et installez Arduino IDE dans Raspberry Pi
Remarque:- Vous pouvez utiliser l'IDE Arduino de Windows, Linux ou Mac pour télécharger un croquis dans Arduino UNO.
La première étape consiste à installer Arduino IDE pour ce navigateur ouvert dans Raspberry Pi et à ouvrir le lien ci-dessous
IDE précédent Arduino
Ensuite, téléchargez la version Linux ARM et extrayez-la à l'aide de la commande
tar -xf nom de fichier
Après l'extraction, vous verrez un nouveau répertoire. Ici, j'utilise arduino-1.8.2 IDE. Ensuite, allez dans le répertoire en utilisant la commande.
cd arduino-1.8.1
Pour exécuter Arduino IDE, utilisez cette commande dans le répertoire arduino-1.8.2
./arduino
Comment utiliser les bibliothèques
Pour installer des bibliothèques dans Arduino, téléchargez simplement la bibliothèque et collez-la dans arduino 1.8.2 ==> dossier des bibliothèques.
REMARQUE: - Assurez-vous qu'il n'y a pas de (-) dans le dossier de la bibliothèque par ex (capteur DHT). S'il y en a (-), renommez-le.
nous utiliserons deux bibliothèques dans cette instructable, DHT_Sensor et Adafruit_Sensor
Étape 3: Coder pour Arduino
Maintenant, faisons parler Python et Arduino ensemble. Tout d'abord, nous avons besoin d'un programme simple pour que l'Arduino envoie des données sur le port série. Le programme suivant est un programme simple qui aura le compte Arduino et enverra les données au port série.
Code Arduino
#include "DHT.h" float tempC; // Variable ou maintien de la température en C float tempF; // Variable pour maintenir la température dans F float humidité; //Variable pour la lecture de la pression de maintien
#define DHTPIN 7 // à quelle broche numérique nous sommes connectés
#définir DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialiser le capteur DHT.
DHT dht (DHTPIN, DHTTYPE);
void setup(){Serial.begin(115200); //activer le moniteur série
dht.begin(); //initialiser dht }
boucle vide() {tempC = dht.readTemperature(); // Assurez-vous de déclarer vos variables
humidité = dht.readHumidity(); // Lire l'humidité
Serial.print(tempC);
Serial.print(", ");
Serial.print(humidité);
Serial.print("\n"); // pour un nouveau délai de ligne (2000); // Pause entre les lectures. }
Une fois le croquis compilé, sélectionnez la carte et le port et téléchargez-le.
Étape 4: Configurer Raspberry Pi
Une fois le code téléchargé, installez des bibliothèques afin que nous puissions tracer un graphique de données provenant en série d'Arduino Uno.
1. PySerial est une bibliothèque qui prend en charge les connexions série sur une variété d'appareils différents. Pour l'installer, utilisez la commande.
Sudo apt-get install python-serial
2. Numpy est un package qui définit un objet tableau multidimensionnel et les fonctions mathématiques rapides associées qui fonctionnent dessus. Il fournit également des routines simples pour l'algèbre linéaire et la FFT (Fast Fourier Transform) et la génération sophistiquée de nombres aléatoires. Vous pouvez l'installer de plusieurs manières, soit en utilisant le package apt, soit en pip. Ici, j'installe en utilisant pip pour cela, nous devons d'abord installer pip
sudo apt-get install python-pip python-dev build-essential
sudo pip installer numpy
ou si vous voulez utiliser le package apt
sudo apt installer python-numpy
3. Matplotlib est une bibliothèque de traçage 2D qui fournit une API orientée objet pour intégrer des tracés dans des applications à l'aide de kits d'outils d'interface graphique à usage général tels que Tkinter, wxPython, Qt ou GTK+. Pour l'installer, utilisez la commande
sudo pip installer matplotlib
ou
sudo apt installer python-matplotlib
4. Drawnow est généralement utilisé pour voir les résultats après chaque itération car nous utilisons "imshow" dans MATLAB. Pour l'installer, utilisez la commande
sudo pip install drawow
Étape 5: Script Python
L'étape suivante consiste à écrire un script python pour lequel vous pouvez utiliser n'importe quel éditeur pour l'écrire.
1. Tracer les données dans un graphique
importer le numéro de série importer la bibliothèque de série
importer numpy # Importer numpy
importer matplotlib.pyplot en tant que plt # importer la bibliothèque matplotlib
à partir de l'import de tirage *
tempC = #Tableau videhumidité =
arduino = serial. Serial("/dev/ttyACM0", 115200)
plt.ion() # mode interactif pour tracer le compteur de données en direct = 0
def makeFig(): #Créer une fonction qui crée le tracé souhaité
plt.ylim (20, 30) #Définir les valeurs y min et max
plt.title('Données DHT11 en temps réel') #Tracer le titre
plt.grid(True) #Activer la grille
plt.ylabel('Temp C') #Définir ylabel
plt.plot(tempC, 'b^-', label='Degree C') #tracer la température
plt.legend(loc='en haut à droite') #tracer la légende
plt2=plt.twinx() #Créer un deuxième axe y
plt.ylim (50, 70) #Définir les limites du deuxième axe y
plt2.plot(humidité, 'g*-', label='Humidity') #plot données de pression
plt2.set_ylabel('Humidité') #étiquette deuxième axe y
plt2.ticklabel_format(useOffset=False)
plt2.legend(loc='en haut à gauche')
while True: # Boucle While qui boucle pour toujours
while (arduino.inWaiting()==0): #Attendez ici jusqu'à ce qu'il y ait des données
passer #ne rien faire
chaîne arduino = arduino.readline()
dataArray = arduinoString.split(', ') # Divisez-le en un tableau
temp = float(tableaudonnées[0])
hum = float(dataArray[1])
tempC.append(temp)
humidité.append (hum)
dessiner(makeFig)
plt.pause(.000001)
count=count+1 if(count>20): #ne prends que les 20 dernières données si les données sont plus, elles apparaîtront en premier
tempC.pop(0)
humidité.pop(0)
2. Pour tracer l'humidité et la température séparément
importer le numéro de série importer la bibliothèque de série
importer numpy # Importer numpy
importer matplotlib.pyplot en tant que plt # importer la bibliothèque matplotlib
à partir de l'import de tirage *
tempC = #Tableau vide
humidité =
arduino = serial. Serial("/dev/ttyACM0", 115200) #Serial port auquel arduino est connecté et Baudrate
plt.ion() #Dites à matplotlib que vous voulez que le mode interactif trace des données en direct
def CreatePlot(): #Créer une fonction qui crée le tracé souhaité
plt.subplot(2, 1, 1) #Hauteur, Largeur, Premier tracé
plt.ylim(22, 34) #Définir les valeurs y min et max
plt.title('Données DHT11 en temps réel') #Tracer le titre
plt.grid(True) #Activer la grille
plt.ylabel('Temp C') #Définir les étiquettes y
plt.plot(tempC, 'b^-', label='Degree C') #tracer la température
plt.legend(loc='upper center') #tracer la légende
plt.subplot(2, 1, 2) # Hauteur, Largeur, Deuxième tracé
plt.grid (Vrai)
plt.ylim(45, 70) #Définir les limites du deuxième axe y
plt.plot(humidité, 'g*-', label='Humidité (g/m^3)') #plot données d'humidité
plt.ylabel('Humidité (g/m^3)') #label deuxième axe y
plt.ticklabel_format(useOffset=False) #pour arrêter la mise à l'échelle automatique de l'axe y
plt.legend(loc='centre supérieur')
while True: # boucle While qui boucle pour toujours
while (arduino.inWaiting()==0): #Attendez ici jusqu'à ce qu'il y ait une transmission de données #ne rien faire
arduinoString = arduino.readline() #lire les données du port série
dataArray = arduinoString.split(', ') # Divisez-le en un tableau
temp = float(dataArray[0]) #Convertir le premier élément en nombre flottant et le mettre en temp
hum = float(dataArray[1]) #Convertir le deuxième élément en nombre flottant et le mettre dans hum
tempC.append(temp) #Construisez notre tableau tempC en ajoutant la lecture temporaire
humidite.append(hum) #Construire notre tableau d'humidité en ajoutant la lecture de bourdonnement
dessiner(Créer un tracé)
plt.pause(.000001)
compte=compte+1
if(count>20): #ne prends que les 20 dernières données si les données sont plus, elles apparaîtront en premier
tempC.pop(0) # fait apparaître le premier élément
humidité.pop(0)
Étape 6: Schéma de circuit
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> SORTIE
Conseillé:
Faites de beaux tracés à partir de données Arduino en direct (et enregistrez les données dans Excel): 3 étapes
Créez de beaux tracés à partir de données Arduino en direct (et enregistrez les données dans Excel) : nous aimons tous jouer avec notre fonction traceur dans l'IDE Arduino. des points sont ajoutés et ce n'est pas particulièrement agréable pour les yeux. Le traceur Arduino IDE ne
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD - Simulation d'enregistreur de données DHT11 dans Proteus : 5 étapes
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD | Simulation de l'enregistreur de données DHT11 dans Proteus : Introduction : salut, c'est Liono Maker, voici le lien YouTube. Nous réalisons un projet créatif avec Arduino et travaillons sur des systèmes embarqués. Enregistreur de données : un enregistreur de données (également un enregistreur de données ou un enregistreur de données) est un appareil électronique qui enregistre des données au fil du temps avec
Tracer les données en direct d'un capteur de température (TMP006) à l'aide de MSP432 LaunchPad et Python : 9 étapes
Tracer les données en direct d'un capteur de température (TMP006) à l'aide de MSP432 LaunchPad et Python : Le TMP006 est un capteur de température qui mesure la température d'un objet sans avoir besoin d'entrer en contact avec l'objet. Dans ce tutoriel, nous allons tracer les données de température en direct du BoosterPack (TI BOOSTXL-EDUMKII) à l'aide de Python
Lire les données du capteur à ultrasons (HC-SR04) sur un écran LCD 128 × 128 et les visualiser à l'aide de Matplotlib : 8 étapes
Lire les données du capteur à ultrasons (HC-SR04) sur un écran LCD 128 × 128 et les visualiser à l'aide de Matplotlib : dans cette instructable, nous utiliserons le LaunchPad MSP432 + BoosterPack pour afficher les données d'un capteur à ultrasons (HC-SR04) sur un 128 × 128 LCD et envoyer les données au PC en série et les visualiser à l'aide de Matplotlib
Cachez vos données et vos données - Protégez-les du monde : 8 étapes
Cachez vos affaires et vos données - Gardez-le à l'abri du monde : Le beau monde a toujours beaucoup de surprises. Je partage avec vous un peu de mon expérience pour assurer ma sécurité et celle de mes affaires. J'espère que ça t'aidera