Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire une station météo compacte avec Arduino Nano – Guide DIY facile

Composants et fournitures

Arduino Nano R3 ×1
Module DHT11 ×1
Capteur de pression BMP280 ×1
Écran LCD 1.44 pouces ST7735 ×1
Boîtier imprimé 3D ×1
Câble USB A vers mini USB B ×1

Outils et machines nécessaires

Applications et services en ligne

À propos de ce projet

Introduction

Capturer des données physiques en temps réel est toujours fascinant. Dans ce projet, vous pourrez non seulement capturer trois paramètres fondamentaux pour la prévision météo – température, humidité et pression atmosphérique – mais aussi afficher les données en temps réel sur un écran LCD.

Description et principe de fonctionnement

Les deux capteurs utilisés sont le BMP280 et le DHT11. Le premier mesure la température et la pression atmosphérique, le second l'humidité relative. On aurait pu utiliser un BME280 (qui mesure aussi l'humidité) au lieu du BMP280, mais la combinaison BMP280 + DHT11 est bien plus économique pour les projets DIY. Notez que bien que le DHT11 mesure aussi la température, on l'utilise seulement pour l'humidité car sa résolution température est de ±2°C contre ±0.5°C pour le BMP280.

Le cœur du projet est la carte de développement Arduino Nano. Le Nano a été choisi plutôt que l'UNO pour son prix abordable. Un écran TFT LCD 1.44" série ST7735 est utilisé pour l'affichage. Un écran plus grand a été évité pour ne pas surcharger l'Arduino Nano.

Circuit et programmation

Une combinaison de schéma de câblage et de diagramme de blocs est fournie pour aider à comprendre la configuration physique et les connexions. Des tableaux de brochage (pinout) sont aussi fournis. On remarquera que les broches 5V et GND de l'en-tête ICSP sur l'Arduino Nano sont utilisées pour alimenter les composants, avec les broches d'alimentation et de masse intégrées. Cela évite une source d'alimentation additionnelle qui rendrait le système plus volumineux.

Côté programmation, dans la première partie, un ensemble de bibliothèques est inclus pour garder le code court et simple. Outre les évidentes, les bibliothèques Wire.h et SPI.h méritent d'être mentionnées : Wire.h permet la communication I2C/TWI avec le BMP280 et le LCD ST7735, et SPI.h fournit l'interface série périphérique avec le LCD ST7735. Dans la seconde partie, les capteurs sont initialisés et la mise en page, la couleur de police, etc. du LCD sont configurées. Dans la partie finale, les valeurs des capteurs sont lues et affichées avec un délai pratique entre chaque lecture pour la stabilité.

Construction et tests

Dans le prototype, les composants sont maintenus modulaires et connectés avec des fils de connexion au lieu de souder. Cela permet un dépannage et une réparation faciles, et rend l'assemblage sans tracas. Le boîtier a été imprimé en 3D sur mesure pour un ajustement parfait. Il est doté d'une ventilation adéquate pour exposer les capteurs aux grandeurs mesurées et dissiper la chaleur générée par le système, qui interférerait sinon avec les éléments de détection. L'appareil est alimenté via le même câble USB A vers mini USB B utilisé pour programmer l'Arduino. Le prototype a été testé en intérieur pendant plusieurs heures, alimenté tant par port USB PC que par chargeur smartphone 5V. Les résultats sont assez précis comparés aux données météorologiques en ligne, compte tenu du coût de production et du temps de développement.

Conclusion

En conclusion, ce projet est assez économique, utile, et surtout, il est amusant d'avoir une petite station météo portable qui tient dans la poche.

Pour acheter les composants électroniques, commandez-les chez UTSOURCE.

Bibliographie

Construire une station météo compacte avec Arduino Nano – Guide DIY facile
Construire une station météo compacte avec Arduino Nano – Guide DIY facile
Construire une station météo compacte avec Arduino Nano – Guide DIY facile
Construire une station météo compacte avec Arduino Nano – Guide DIY facile

Code

LE CODE (C/C++)

CECI EST LE SKETCH PERTINENT POUR LE PROJET, LES COMMENTAIRES EXPLIQUENT LE FONCTIONNEMENT

#include <SPI.h>           // Interface Série Périphérique
#include <Wire.h>          // Interface Deux Fils (I2C)
#include <Adafruit_GFX.h>  // Bibliothèque graphique Adafruit
#include <Adafruit_ST7735.h> // Bibliothèque Adafruit ST7735 TFT
#include <Adafruit_BMP280.h> // Bibliothèque capteur Adafruit BMP280
#include "DHT.h"            // Bibliothèque capteur DHTXX

#define DHTPIN 2           // Broche data DHT11 sur D2 Arduino
#define DHTTYPE DHT11      // Type de capteur DHT utilisé
#define TFT_RST 8          // Broche RST TFT sur D8
#define TFT_CS 10          // Broche CS TFT sur D9
#define TFT_DC 9           // Broche DC TFT sur D10

// Initialisation bibliothèque ST7735
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// Adresse I2C dispositif : 0x76 ou 0x77 (0x77 est l'adresse par défaut)
#define BMP280_I2C_ADDRESS 0x76
Adafruit_BMP280 bmp280;
DHT dht(DHTPIN, DHTTYPE);

void setup(void) {
  dht.begin();
  tft.initR(INITR_144GREENTAB); // Initialisation puce ST7735S, onglet vert
  tft.fillScreen(ST77XX_BLACK); // Fond noir
  tft.drawFastHLine(0, 15, tft.width(), ST77XX_CYAN); // Ligne séparation à (0,15)
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK); // Texte cyan sur noir
  tft.setTextSize(1);
  tft.setCursor(25, 5);
  tft.print("WEATHER BUDDY");

  // Initialisation BMP280
  if (bmp280.begin(BMP280_I2C_ADDRESS) == 0) {
    tft.setTextColor(ST77XX_RED, ST77XX_CYAN);
    tft.setTextSize(2);
    tft.setCursor(5, 76);
    tft.print("Connection");
    tft.setCursor(35, 100);
    tft.print("Error");
    while (1); // Bloque ici
  }

  tft.drawFastHLine(0, 55, tft.width(), ST77XX_CYAN);
  tft.drawFastHLine(0, 95, tft.width(), ST77XX_CYAN);
  tft.setTextColor(ST77XX_RED, ST77XX_BLACK);
  tft.setCursor(30, 20);
  tft.print("TEMPERATURE");
  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);
  tft.setCursor(40, 60);
  tft.print("HUMIDITY");
  tft.setTextColor(ST77XX_GREEN, ST7735_BLACK);
  tft.setCursor(40, 100);
  tft.print("PRESSURE");
  tft.setTextSize(2);
}

void loop() {
  char _buffer[8];
  float temp = bmp280.readTemperature(); // °C
  float hum = dht.readHumidity();        // %HR
  float pres = bmp280.readPressure();    // Pa

  // 1: Afficher température (°C)
  if (temp < 0)
    sprintf(_buffer, "-%02u.%02u", (int)abs(temp), (int)(abs(temp) * 100) % 100);
  else
    sprintf(_buffer, " %02u.%02u", (int)temp, (int)(temp * 100) % 100);

  tft.setTextColor(ST77XX_YELLOW, ST77XX_BLACK);
  tft.setCursor(11, 34);
  tft.print(_buffer);
  tft.drawCircle(89, 34, 2, ST77XX_YELLOW); // Symbole degré °
  tft.setCursor(95, 34);
  tft.print("C");

  // 2: Afficher humidité (%)
  sprintf(_buffer, "%02u ", (int)(hum));
  tft.setTextColor(ST77XX_MAGENTA, ST77XX_BLACK);
  tft.setCursor(45, 74);
  tft.print(_buffer);
  tft.setCursor(75, 74);
  tft.print("%");

  // 3: Afficher pression (hPa)
  sprintf(_buffer, "%04u.%02u", (int)(pres / 100), (int)((uint32_t)pres % 100));
  tft.setTextColor(ST77XX_ORANGE, ST77XX_BLACK);
  tft.setCursor(3, 112);
  tft.print(_buffer);
  tft.setCursor(91, 112);
  tft.print("hPa");

  delay(1000); // Attente 1 seconde avant prochaine lecture
}

Pièces personnalisées et boîtiers

Fichier STL pour les pièces imprimées en 3D utilisées.

Schéma

Suivez simplement le câblage indiqué.

Construire une station météo compacte avec Arduino Nano – Guide DIY facile

Processus de fabrication

  1. Construction d'une station météo extérieure avec Raspberry Pi 2 et ADS‑WS1
  2. Construire une station météo Raspberry Pi qui envoie les données météo quotidiennes par email
  3. Surveillance météo à distance avec Raspberry Pi 3 et PubNub
  4. Station météo avancée v2.0 : Surveillance en temps réel de température, pression, humidité et altitude
  5. Construire une console de contrôle Photoshop DIY avec Arduino Nano RP2040
  6. Construire une horloge 7 segments précise avec Arduino Pro Mini et DS1302 RTC
  7. Station Météo Arduino Portable à 10$ – Nano, DHT22, BMP180 et LCD
  8. eDOT : Horloge Arduino précise et station météo avec télécommande IR intégrée
  9. Construire une Radio FM Compacte avec Arduino Nano et RDA5807M