» Électronique » Arduino »Station météo domestique basée sur Arduino

Station météo domestique basée sur Arduino


J'ai longtemps voulu faire une mini station météo, fatiguée de regarder par la fenêtre pour regarder un thermomètre derrière la vitre. Cet appareil remplacera l'hygromètre, le baromètre et le thermomètre et affichera également l'heure actuelle. Dans cet article, je vais vous expliquer comment assembler rapidement et facilement une petite station météo basée sur Arduino. La base sera le conseil Arduino Nano peut utiliser d'autres cartes - Arduino Uno, Arduino Pro mini). Nous recevrons les données de pression atmosphérique et de température du capteur BMP180, et l'humidité et la température extérieure du capteur DHT11. L'horloge en temps réel du DS1302 indiquera l'heure actuelle. Toutes les informations sont affichées sur un écran LCD1602 à deux lignes.

Le DHT11 transmet des informations sur un seul fil à un arduino. Il est alimenté par une tension de 5 V. Il mesure l'humidité dans une plage de 20 à 80%. Mesures de température dans la plage de 0 à 50à proposC.

Station météo domestique basée sur Arduino

Le capteur BMP180 mesure la pression atmosphérique dans la plage de 300 à 1100 hPa, la température dans la plage de -40 +85à proposC. La tension d'alimentation est de 3,3 V. Elle est connectée via le protocole de communication I2C.

L'horloge en temps réel DS1302 est alimentée par 5 V et est connectée via le protocole de communication I2C. Lorsqu'elles sont installées dans l'emplacement approprié, les piles CR2032 prennent en charge l'horloge lorsque l'alimentation principale est coupée.

L'écran LCD1602 est alimenté par une tension de 5 Volts et est également connecté via le protocole de communication I2C.

Ce fait maison Fabriqué sur la base de cartes et de capteurs prêts à l'emploi, il peut donc être répété à tout amateur novice pour travailler avec un fer à souder. En même temps, vous pouvez obtenir les bases de la programmation d'Arduino. J'ai programmé cette station météo dans le programme de programmation visuelle FLPROG en 15 minutes. Pas besoin de dessiner manuellement pendant des heures, ce programme aide les débutants (et pas seulement) à apprendre rapidement les bases des appareils de programmation basés sur la plate-forme Arduino.

Qui est trop paresseux pour bricoler le programme - un croquis (seulement il sera nécessaire de régler l'heure actuelle de l'horloge):
#include 
#inclut "DHT_NEW.h"
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
long _bmp085P = 0;
long _bmp085T = 0;
long _bmp085A = 0;

LiquidCrystal_I2C _lcd1 (0x3f, 16, 2);
int _dispTempLength1 = 0;
boolean _isNeedClearDisp1;

DHT _dht1;

iarduino_RTC _RTC1 (RTC_DS1302, 7, 5, 6);

long non signé _dht1LRT = 0UL;
long non signé _dht1Tti = 0UL;
int _disp1oldLength = 0;
long non signé _bmp0852Tti = 0UL;
String _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
void setup ()
{
Wire.begin ();
retard (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, vrai);
_RTC1.begin ();
_RTC1.period (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = millis ();
_dht1Tti = millis ();
}
boucle vide ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
if (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T);
}

// Tarif: 1
si (1) {
_dispTempLength1 = (((((((String ("T:"))) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1)))) + (String ("*")))) + (((String ( "P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*"))) + (((String ("")) + ((_floatToStringWitRaz (_dht1 .humidity, 0))) + (String ("%"))))). length ();
if (_disp1oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 0);
_lcd1.print (((((((String ("T:"))) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String ("*")))) + (((String ("P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*")))) + (((String ("")) + ((_floatToStringWitRaz ( _dht1.humidity, 0))) + (Chaîne ("%")))));
} else {
if (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
if (_isTimer (_dht1Tti, 2000)) {
if (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}
}
si (1) {
_dispTempLength1 = (((((((String ("t:")) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*")))) + (_RTC1_GetTime2_StrOut)))) length ( );
if (_disp2oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 1);
_lcd1.print (((((((String ("t:")))) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*"))))) + (_RTC1_GetTime2_StrOut)))));
} else {
if (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD");

}
Chaîne _floatToStringWitRaz (valeur flottante, int raz)
{

return String (valeur, raz);
}
bool _isTimer (unsigned long startTime, unsigned long period)
{
unsigned long currentTime;
currentTime = millis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
}

Vous pouvez utiliser un tel appareil n'importe où ou à la maison, dans la nature ou dans une voiture. Il est possible d'alimenter le circuit à partir des batteries, en utilisant une carte de charge, à la fin sera portable le modèle stations météorologiques.

Toutes les informations peuvent être obtenues en regardant la vidéo:


Liste des matériaux et outils

Arduino Nano Board
écran LCD1602 à deux lignes;
- horloge temps réel DS1302;
- capteur de pression atmosphérique et de température BMP180;
- capteur de température et d'humidité DHT11;
-bloquer la charge depuis le téléphone;
- tout logement approprié
pince à épiler;
des ciseaux;
fer à souder;
Cambridge;
testeur;
-les fils de connexion;
Quatre fils pour capteur à distance.

Première étape. Faire un bâtiment pour une station météo

J'ai ramassé une boîte en plastique dans le magasin Fix Price (total 17p). Fenêtre prédécoupée pour affichage dans le couvercle. Puis il a partiellement coupé les cloisons de la boîte, fait des trous pour le connecteur USB de la carte Arduino, l'ouverture pour le capteur BMP180 Le capteur BMP180 sera situé à l'extérieur du boîtier pour éviter un échauffement excessif de e garnitures à l'intérieur. Après avoir peint le corps du produit fait maison de l'intérieur parce que le plastique est transparent. La boîte se ferme avec un loquet et tous les éléments s'y intègrent parfaitement.


Deuxième étape Schéma de montage de l'appareil.

Schéma photo


Ensuite, vous devez connecter toutes les cartes et capteurs de la station météo selon le schéma. Nous le faisons en utilisant des fils de montage avec les connecteurs appropriés. Je n'ai pas fait de connexion de soudure, donc à l'avenir, lorsqu'un module tombe en panne (ou pour d'autres raisons), vous pouvez facilement le remplacer. Sur le connecteur à vis, le câble du capteur DHT11 allant dans la rue est connecté. L'alimentation peut être fournie par le connecteur USB de la carte Arduino à un ordinateur, ou en fournissant une tension de 7-12 V aux broches VIN et GND.

Tout d'abord, j'ai assemblé le circuit à l'extérieur de l'enceinte et l'ai programmé et débogué dans le programme FLPROG.

Schéma fonctionnel de la photo dans le programme FLPROG.

Lorsque j'ai programmé et activé le circuit de la station météo pour la première fois, cela a fonctionné. Maintenant, il est devenu possible d'avoir des données météorologiques à la mer et dans la pièce. En général, une station météo domestique intéressante avec de nombreuses fonctions différentes s'est avérée.

Photo complète

Un bon design fait maison a été assemblé le week-end. C'était excitant de fabriquer soi-même un appareil intéressant et utile. Pour fabriquer soi-même un tel appareil, je pense que même un débutant peut le faire, cela ne demande pas beaucoup de temps et d'argent. Vous pouvez l'appliquer où vous voulez dans une maison dans un chalet. Pour tout le travail, deux nuits de week-end se sont écoulées, j'ai pris tous les appareils électroniques chez Aliexpress. Le reste des matériaux que j'ai trouvés sur l'hélico. Basé sur la plate-forme Arduino, vous pouvez assembler une grande variété d'appareils utiles.

Merci à tous pour votre attention, je vous souhaite du succès et bonne chance à la fois dans votre vie et dans votre travail!
9.2
8.2
8.5

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer

Nous vous conseillons de lire:

Donnez-le au smartphone ...