Table des matières:
- Étape 1: liste d'articles
- Étape 2: Introduction relative
- Étape 3: connectez le circuit
- Étape 4: Préparez-vous à compiler
- Étape 5: Code de test pour le port série du capteur DHT22
- Étape 6: Coder le projet
- Étape 7: Description
Vidéo: Station météo utilisant Arduino UNO : 7 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Créé par: Hazel Yang
Ce projet est une station météo utilisant une carte Arduino UNO pour contrôler le flux de données, un capteur DHT22 pour collecter les données et un écran OLED pour afficher les données.
Étape 1: liste d'articles
1. Écran: OLED, écran 1,3 SH1106, couleur blanche I2C ---- PID: 18283
2. Capteur: Capteur numérique d'humidité et de température DHT22 ---- PID: 7375
3. Se connecte: fils de raccordement ---- PID: 10316 ou 10318 ou 10312 (selon la longueur) ou vous pouvez utiliser un fil solide 22 AWG ---- PID: 22490
Planche à pain ---- PID: 10686 ou 10698 ou 103142 (selon la taille)
4. Alimentation: ce câble ne peut se connecter qu'à un port USB d'ordinateur et le câble est également utilisé pour le transfert de données entre l'IDE et la carte Arduino. CÂBLE USB, A À B, M/M, 0,5 M (1,5 FT) ---- PID: 29862
Ou vous pouvez l'utiliser pour alimenter la carte: Adaptateur AC/DC 5V 2A ---- PID: 10817.
Étape 2: Introduction relative
Présentation de l'écran: écran OLED de 1,3 pouce blanc
1. Vous pouvez trouver le document qui montre la configuration de base et les descriptions:
Présentation du capteur: capteur d'humidité et de température DHT22 1. Vous pouvez trouver le document qui présente les descriptions:
Étape 3: connectez le circuit
Le capteur DHT22 envoie des données série à la broche 2. Connectez donc la deuxième broche en partant de la gauche, la broche "SDA" doit être connectée à la broche 2.
Pour l'affichage SSH1106, il utilise la broche analogique pour transmettre. Les circuits de l'écran seront la broche "SCL" sur "A5" d'Arduino et la broche "SDA" sur "A4" d'Arduino. Alors que les données de position des pixels sont transmises en continu, la fonction d'affichage du programme ne déclenche la commande qu'une seule fois chaque fois qu'elle lit les données du capteur.
Le capteur et l'écran peuvent utiliser le 3,3 V pour allumer Arduino en tant qu'entrée d'alimentation CC. Pour alimenter, nous devons connecter les deux broches "VCC" au "3.3V" d'Arduino. Et les broches "GND" peuvent être simplement connectées à la broche "GND" de la carte Arduino.
Utilisez le câble USB A vers B, connectez l'Arudino à l'ordinateur.
Étape 4: Préparez-vous à compiler
"u8glib" pour l'écran SSH1106 d'Olikraus.
"Bibliothèque de capteurs DHT" pour le capteur DHT22 d'Adafruit. Vous devez télécharger les deux bibliothèques: Bibliothèque de capteurs DHT22:
U8glib:
Et utilisez « gérer la bibliothèque » dans l'IDE pour les décompresser. Instructions en ligne de gestion des bibliothèques:
Étape 5: Code de test pour le port série du capteur DHT22
Testez le coe pour le port série du capteur DHT22 (qui se trouve dans la bibliothèque DHT22>>exemples):
(Vous pouvez sauter cette partie.)
Il suffit de tester le capteur DHT22 pour lire les données normalement
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
#définir DHTPIN 2
#définir DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("Test DHT22 !"));
dht.begin();
}
boucle vide() {
// Attendez quelques secondes entre les mesures.
retard (2000);
// La lecture de la température ou de l'humidité prend environ 250 millisecondes !
// Les lectures du capteur peuvent également avoir jusqu'à 2 secondes d'ancienneté (c'est un capteur très lent)
float h = dht.readHumidity();
// Lecture de la température en Celsius (valeur par défaut)
float t = dht.readTemperature();
// Lecture de la température en Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Vérifiez si des lectures ont échoué et quittez plus tôt (pour réessayer).
si (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Impossible de lire à partir du capteur DHT !"));
revenir;
}
// Calculer l'indice de chaleur en Fahrenheit (par défaut)
float hif = dht.computeHeatIndex(f, h);
// Calculer l'indice de chaleur en Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, faux);
Serial.print(F("Humidité: "));
Serial.print(h);
Serial.print(F("% Température: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Indice de chaleur: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
// Après avoir compilé le programme, cliquez sur OUTILS >> MONITEUR SÉRIE pour vérifier les données.
// Fin du programme de test.
Étape 6: Coder le projet
#comprendre
#comprendre
#comprendre
#comprendre
#comprendre
#définir DHTPIN 2
#définir DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);
Capteur DHT (DHTPIN, DHTTYPE);
tirage nul (vide) {
u8g.setFont(u8g_font_unifont);
float h = sensor.readHumidity();
// Lecture de la température en Celsius (valeur par défaut)
float t = sensor.readTemperature();
// Vérifiez si des lectures ont échoué et quittez plus tôt (pour réessayer).
si (isnan(h) || isnan(t)) {
u8g.print("Erreur.");
pour(;;);
revenir;
}
u8g.setPrintPos(4, 10);
u8g.print("Température(C):");
u8g.setPrintPos(4, 25);
u8g.print(t);
u8g.setPrintPos(4, 40);
u8g.print("Humidité(%):");
u8g.setPrintPos(4, 55);
u8g.print(h);
}
configuration vide (void) {
u8g.setRot180();
Serial.begin(9600);
sensor.begin();
}
boucle vide (vide) {
// boucle d'image
u8g.premièrePage();
faire {
dessiner();
} while(u8g.page suivante());
// reconstruire l'image après un certain délai delay(2000);
}
// Fin du programme principal.
Étape 7: Description
Ensuite, initialisez le circuit des broches de la carte Arduino. Parce que la bibliothèque de capteurs a besoin des données pour déclarer l'objet.
Et vous pouvez tester les données du capteur en surveillant les données de sortie via la broche numérique 2 en utilisant la fonction appelée "Serial.print()". Étant donné que la fréquence de transmission des données est d'environ 1 lecture toutes les 2 secondes (ce qui correspond à 0,5 Hz), lorsqu'elle est programmée dans Arduino IDE, nous devons définir le délai à l'intérieur de la fonction de boucle sur plus de 2 secondes. Il y a donc un "delay(2000)" à l'intérieur de la fonction de boucle. Cela garantit que les données seront actualisées fréquemment. Dans la fonction "draw", récupérez les données du port de données série et placez-les dans des nombres flottants à l'aide des fonctions "readHumidity" et "readTemperature".
Imprimez l'humidité et la température en utilisant la fonction d'impression dans le fichier "u8glib". Vous pouvez ajuster la position en changeant le numéro dans la fonction "setPrintPos". La fonction d'impression peut afficher directement le texte et les chiffres.
Pour configurer le matériel, donnez au port série un délai de 10 secondes. Appelez ensuite la fonction begin pour le capteur. D'après mon circuit, mon écran était à l'envers. J'ai donc également inclus une fonction "setRot180" pour faire pivoter l'affichage.
La fonction de boucle de la carte Arduino est la fonction principale. Il continue d'appeler la fonction de dessin pour afficher le texte et les données à chaque fois que le capteur est actualisé.
L'écran ressemble à ceci:
Vous pouvez déconnecter l'Arduino UNO de votre ordinateur et l'alimenter à l'aide d'un adaptateur secteur 5 V CC connecté à sa prise d'alimentation de 2,1 mm. Il stocke le programme à l'intérieur de son lecteur et peut exécuter à nouveau le programme en continu après avoir été alimenté.
Conseillé:
Mini station météo utilisant Arduino et ThingSpeak : 4 étapes
Mini station météo utilisant Arduino et ThingSpeak : Bonjour à tous. Dans ce Instructable, je vais vous guider à travers les étapes pour faire une mini station météo personnalisée. De plus, nous utiliserons l'API ThingSpeak pour télécharger nos données météorologiques sur leurs serveurs, ou bien quel est le but d'une station météo
Station météo NaTaLia : Station météo à énergie solaire Arduino bien faite : 8 étapes (avec photos)
Station météo NaTaLia : Station météo à énergie solaire Arduino faite de la bonne manière : après 1 an de fonctionnement réussi sur 2 emplacements différents, je partage mes plans de projet de station météo à énergie solaire et j'explique comment elle a évolué en un système qui peut vraiment survivre sur une longue période périodes de l'énergie solaire. Si vous suivez
Station météo de pièce utilisant Arduino et BME280 : 4 étapes
Station météo de pièce utilisant Arduino et BME280 : Auparavant, je partageais une simple station météo qui affichait la température et l'humidité de la zone locale. Le problème, c'est que la mise à jour prendrait du temps et que les données n'étaient pas exactes. Dans ce tutoriel, nous allons créer un moniteur météo intérieur
Station météo Arduino utilisant BMP280-DHT11 - Température, humidité et pression : 8 étapes
Station météo Arduino utilisant BMP280-DHT11 - Température, humidité et pression : Dans ce tutoriel, nous allons apprendre à créer une station météo qui affichera une TEMPÉRATURE, UNE HUMIDITÉ ET UNE PRESSION sur l'écran LCD TFT 7735Regardez une vidéo de démonstration
Station météo Acurite 5 en 1 utilisant un Raspberry Pi et Weewx (d'autres stations météo sont compatibles) : 5 étapes (avec photos)
Station météo Acurite 5 en 1 utilisant un Raspberry Pi et Weewx (d'autres stations météo sont compatibles) : Lorsque j'ai acheté la station météo Acurite 5 en 1, je voulais pouvoir vérifier la météo chez moi pendant mon absence. Quand je suis rentré à la maison et que je l'ai configuré, j'ai réalisé que je devais soit connecter l'écran à un ordinateur, soit acheter leur hub intelligent