Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Voltaat Arduino Ultimate Kit
160 min
Share

بناء محطة لرصد حاله الطقس باستخدام الاردوينو

ليست هناك حاجة للنظر من النافذة أو التحقق من هاتفك باستمرار للحصول على آخر تحديثات الطقس، يمكنك إنشاء محطة الطقس الخاصة بك باستخدام الاردوينو وحساس الحرارة والرطوبة .

Project Video

Overview

في هذا المشروع سنستخدم حساس DHT11 لمراقبة مستويات درجة الحرارة والرطوبة وحساس كشف المطر لمعرفة ما اذا كان هناك مطر. وأخيرًا سنعرض كل هذه البيانات على شاشة كريستالية . يمكنك استخدام نفس المشروع فى الصوبات الزراعية الذكية للتاكد من أن بيئة الصوبة مناسبة لنمو نبات معين .

Getting the Items

Arduino Uno R3 (Voltaat Version)
Get Item
DHT11 Temperature & Humidity Sensor
Get Item
Raindrops Detection Sensor
Get Item
2×16 LCD with I2C Module
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item

Steps

Wiring it Up

. قم بتوصيل الاسلاك بين الاردوينو وحساس الحركة والشاشة الكريستالية كما هو ظاهر فى الصورة التى فى الاسفل

التوصيلات من الاردوينو الى لوحة التجارب :

• منفذ ال 5 فولت ← المنافذ الموجبة بلوحة التجارب

• منفذ الجراوند ← المنافذ السالبة بلوحة التجارب

التوصيلات من حساس الحرارة والرطوبة DHT11 :

• المنفذ الموجب الحساس الحرارة والرطوبة ← المنافذ الموجبة بلوحة التجارب

• المنفذ السالب الحساس الحرارة والرطوبة ← المنافذ السالبة بلوحة التجارب

• منفذ الاشارة الحساس الحرارة والرطوبة ← منفذ رقم 2 فى لوحة الاردوينو

التوصيلات من حساس كشف قطرات المطر :

• المنفذ الموجب لحساس كشف قطرات المطر ← المنافذ الموجبة بلوحة التجارب

• المنفذ السالب لحساس كشف قطرات المطر ← المنافذ السالبة بلوحة التجارب

• منفذ A0 لحساس كشف قطرات المطر ← منفذ رقم A0 فى لوحة الاردوينو

التوصيلات من الشاشة الكريستالية :

• المنفذ الموجب للشاشة الكريستالية ← المنافذ الموجبة بلوحة التجارب

• المنفذ السالب للشاشة الكريستالية ← المنافذ السالبة بلوحة التجارب

• المنفذ SCL للشاشة الكريستالية ← منفذ رقم A5 فى لوحة الاردوينو

• المنفذ SDA للشاشة الكريستالية ← منفذ رقم A4 فى لوحة الاردوينو

Coding

 Voltaat learn (http://learn.voltaat.com)
 Link for full tutorial:
 DHT11 library:
 Adafruit sensor Library:
 Wire Library:
 LiquidCrystal I2C Library:

 Tutorial: Simple Weather Station with LCD Display
 
 Connections from the Arduino to the breadboard:
 
 • Arduino 5v pin → breadboard 5v line
 • Arduino GND pin → breadboard GND line


 Connection form the DHT11:

 • GND pin → Arduino GND pin
 • Signal pin → Arduino digital pin 2
 • VCC pin → Arduino 5V pin


 Connection from the raindrops sensor:

 • VCC pin → breadboard 5v line
 • GND pin → breadboard GND line
 • Signal pin → Arduino analog pin A0


 Connection from the LCD:

 • VCC pin → breadboard 5v line
 • GND pin→ breadboard GND line
 • SDA pin→ Arduino analog pin A4
 • SCL pin → Arduino analog pin A5


*/

// Define libraries
#include "Wire.h" // include the Wire library for I2C communication
#include "LiquidCrystal_I2C.h" // include the LiquidCrystal_I2C library for the LCD display
#include "DHT.h" // include the DHT library for the DHT11 sensor

const int rainSensorPin = A0; // The analog pin that the rain sensor is connected to
DHT dht (2, DHT11); // Initialize the DHT11 sensor on digital pin 2

const float heavyRainfallThreshold = 2.0; // Threshold for heavy rainfall

LiquidCrystal_I2C lcd(0x27, 16, 2); // Initialize the LCD display

float prevT = -999.0; // Initialize previous temperature to an invalid value
float prevH = -999.0; // Initialize previous humidity to an invalid value
bool prevRain = false; // Initialize previous rain value to false

//Commands inside void setup run once
void setup() {
 Serial.begin(9600); // Initialize serial communication at 9600 bits per second
 lcd.init(); // Initialize the LCD display
 lcd.backlight(); // Turn on the backlight
 dht.begin(); // Start the DHT11 sensor
 pinMode(rainSensorPin, INPUT); // Set the rain sensor pin as an input

 lcd.clear(); // Clear the LCD display
 lcd.setCursor(1, 0); // Set the cursor to the first row, second column
 lcd.print("Voltaat Learn"); // Display a welcome message
 delay(3000); // Wait for 3 seconds

 lcd.clear(); // Clear the LCD display
 lcd.setCursor(3, 0); // Set the cursor to the first row, fourth column
 lcd.print("Welcome to"); // Display a welcome message
 lcd.setCursor(1, 1); // Set the cursor to the second row, second column
 lcd.print("Weather Station"); // Display a welcome message
 delay(3000); // Wait for 3 seconds
}

//Commands inside void loop run forever
void loop() {
 float T = dht.readTemperature(); // Read the temperature from the DHT11 sensor
 float H = dht.readHumidity(); // Read the humidity from the DHT11 sensor
 int rainSensorValue = analogRead(rainSensorPin); // Read the value from the rain sensor
 bool isRaining = rainSensorValue < 500; // Determine if it is currently raining

 // Only update the display if the values have changed
 if (T != prevT || H != prevH || isRaining != prevRain) {
   lcd.setCursor(2, 0); // Set the cursor to the first row, third column
   lcd.print("Temp: "); // Display the temperature label
   lcd.print(T); // Display the temperature
   lcd.print((char)223); // Display the degree symbol
   lcd.print("C"); // Display the Celsius unit

   lcd.setCursor(0, 1); // Set the cursor to the second row, first column
   if (isRaining) { // If it is currently raining
     lcd.print("Raining "); // Display the rain status
   } else { // If it is not currently raining
     lcd.print("No Rain "); // Display the rain status
   }
   lcd.print("H:"); // Display the humidity label
   lcd.print(H); // Display the humidity
   lcd.print("%"); // Display the percentage symbol

   // Store the current values as previous values for the next update
   prevT = T;
   prevH = H;
   prevRain = isRaining;
 }

 delay(2000); // Wait for 2 seconds
}

Testing it Out

فى البداية ستعرض الشاشة الكريستالية عبارة  “Voltaat Learn” لمدة 3 ثوانٍ. ومن ثم ستعرض “مرحبًا بكم في محطة الطقس” لمدة 3 ثوانٍ أخرى. ثم ستعرض قيمة درجة الحرارة بالدرجات المئوية وقيمة الرطوبة بالنسب المئوية ، إلى جانب حالة المطر.

Resources

No items found.