Avez-vous déjà voulu construire le vôtre Station de surveillance météorologique basée sur l’IoT? Imaginez la surveillance de la température en temps réel, des niveaux d’humidité, de la pression atmosphérique, de la détection des précipitations, de l’indice de qualité de l’air (AQI), et plus encore – de votre réseau local. Avec la puissance du Arduino Uno R4 WiFivous pouvez créer une dynamique Page Web du tableau de bord météo Cela affiche toutes vos données environnementales en temps réel sans s’appuyer sur des services cloud tiers.
Pas besoin de souligner les configurations de cloud complexes ou les plans d’abonnement coûteux. Ce Projet de station météo IoT DIY Ne nécessite que quelques capteurs environnementaux et la carte WiFi Arduino Uno R4 polyvalente. Il mélange l’IoT, le développement Web et la programmation intégrée, ce qui en fait un projet IoT idéal pour les débutants, les étudiants et les amateurs de technologie intéressés par les systèmes météorologiques intelligents, les projets Arduino et la surveillance des données en temps réel.

Un système de surveillance météorologique basé sur l’IoT utilise des capteurs pour collecter des données environnementales en temps réel comme la température, l’humidité et la pression de l’air. Il transmet les données vers le cloud à l’aide de protocoles IoT tels que Wi-Fi ou LORA. Les utilisateurs peuvent accéder à ces informations à distance via les applications Web ou mobiles. Ce système contribue à des prévisions précises, à la recherche environnementale et à l’agriculture intelligente.


#include
#include
#include
#include
#include "Arduino_LED_Matrix.h"
#include "WiFiS3.h"
#define Rain_SensorPin 3
#define Air_SensorPin A0
#define Temp_Hum_SensorPin 2
DHT_Unified dht(Temp_Hum_SensorPin, DHT11);
Adafruit_BMP085 bmp;
WiFiServer server(80);
ArduinoLEDMatrix matrix;
const uint32_t wifi_connected[] = {
0x3f840,
0x49f22084,
0xe4110040
};
const uint32_t no_wifi[] = {
0x403f844,
0x49f22484,
0xe4110040
};
char ssid[] = "Semicon Media";
char pass[] = "xxxxxxxxxxxx";
float temperature = 0.0, humidity = 0.0, pressure = 0.0;
int AQI = 0, rainfall = 0;
unsigned long lastSensorUpdate = 0;
unsigned long lastWiFiCheck = 0;
void wifi_connect(){
if (WiFi.status() == WL_NO_MODULE) {
Serial.println("Communication with WiFi module failed!");
matrix.loadFrame(no_wifi);
while (true);
}
Serial.print("Connecting to WiFi...");
matrix.loadSequence(LEDMATRIX_ANIMATION_WIFI_SEARCH);
matrix.play(true);
delay(6000);
while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
Serial.print(".");
delay(1000);
}
matrix.loadFrame(wifi_connected);
Serial.println("\nConnected to WiFi!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
}
void wifi_reconnect(){
Serial.println("Wifi Reconnecting........");
matrix.loadFrame(no_wifi);
delay(6000);
wifi_connect();
}

void read_sensor_data(){
sensors_event_t event;
dht.temperature().getEvent(&event);
temperature = event.temperature;
dht.humidity().getEvent(&event);
humidity = event.relative_humidity;
pressure = bmp.readPressure() / 100.0; // Convert Pa to mbar
int mq135Raw = analogRead(Air_SensorPin);
float mq135PPM = mq135Raw * (5.0 / 1023.0) * 200.0; // Convert raw value to PPM
AQI = map(mq135PPM, 0, 500, 0, 300); // Convert PPM to AQI (adjust as needed)
rainfall = digitalRead(Rain_SensorPin) == HIGH ? 0 : 1;
Serial.println("-------------------------");
Serial.println(temperature);
Serial.println(humidity);
Serial.println(rainfall);
Serial.println(pressure);
Serial.println("-------------------------");
}
void send_json_data(WiFiClient &client) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: application/json");
client.println("Connection: close");
client.println();
String json = "{\"temperature\":" + String(temperature) +
",\"humidity\":" + String(humidity) +
",\"pressure\":" + String(pressure) +
",\"aqi\":" + String(AQI) +
",\"rainfall\":" + String(rainfall) + "}";
client.println(json);
}
void send_web_page(WiFiClient &client) {
// Send HTTP headers
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// Use raw string literal for HTML content
const char* html = R"rawliteral(
Weather Dashboard
Retrouvez l’histoire de Raspberry Pi dans cette vidéo :
-
Station Météo Connectée WIFI, 11 en 1 Professionnelle Station Meteo Sans Fil avec Capteur Extérieur, Anémomètre, Pluviomètre, Girouette, Thermomètre, Hygromètre, Prévisions Météorologiques, Indice UV
-
VEVOR Station Météo Wifi 7 en 1 Station Météo Sans Fil Intérieur Extérieur Solaire Grand Écran Couleur 7,5 po Station Météo Numérique Capteur pour Température Humidité Vitesse Direction de Vent Pluie
