Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Raspberry pi pico 2w
90 min
Share

كيفية استخدام حساس الحرارة والرطوبة DHT11 مع لوحة الراسبيرى باى بيكو

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

Project Video

Overview

Getting the Items

Raspberry Pi Pico 2 wireless
Get Item
DHT11 Temperature & Humidity Sensor
Get Item
2×16 LCD with I2C Module
Get Item
Full-size Breadboard
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item

Steps

Wiring it Up

قم بتوصيل الأسلاك بين حساس الحرارة والرطوبة DHT11 والشاشة كريستالية بنظام I2C ولوحة راسبيرى باى بيكو 2W كما فى الصورة التى فى الأسفل.

التوصيلات من لوحة راسبيرى باى بيكو 2W :

• منفذ ال VBUS بلوحة راسبيرى باى بيكو 2W  ←المنافذ الموجبة بلوحة التجارب

• منفذ ال GND بلوحة راسبيرى باى بيكو2W  ←المنافذ السالبة بلوحة التجارب

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

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

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

• منفذ الأشارة للحساس  ← منفذ رقم 0 فى لوحة راسبيرى باى بيكو 2W

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

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

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

• منفذ SDA للشاشة الكريستالية ← منفذ رقم 16 بلوحة راسبيرى باى بيكو 2W

• منفذ SCL للشاشة الكريستالية ← منفذ رقم 17 بلوحة راسبيرى باى بيكو 2W

Coding

وظيفة الكود البرمجى الأول هو عرض قيم درجة الحرارة ونسبة الرطوبة على الشاشة, بينما وظيفة الكود البرمجى الثانى هو عرض قيم درجة الحرارة ونسبة الرطوبة على الشاشة الكريستالية.

import machine

from machine import Pin

import time

import dht

# Initialize the DHT11 sensor on GPIO pin 0

sensor = dht.DHT11(Pin(0))

print("DHT11 Sensor Ready")

time.sleep(2)  # Small delay before starting measurements

while True:

   try:

       # Trigger a new measurement

       sensor.measure()

       

       # Read temperature in Celsius

       temperature_celsius = sensor.temperature()

       

       # Read humidity percentage

       humidity_percent = sensor.humidity()

       # Print the results

       print("Temperature:", temperature_celsius, "°C")

       print("Humidity:", humidity_percent, "%")

   except OSError as e:

       # Handle sensor reading errors

       print("Failed to read sensor:", e)

   time.sleep(1)  # Wait 1 second before the next reading

import machine

from machine import Pin, I2C

import time

import dht

from lcd_api import LcdApi

from pico_i2c_lcd import I2cLcd

# إعدادات شاشة LCD

I2C_ADDR = 0x27       # العنوان (قد يكون 0x3F حسب شاشتك)

I2C_NUM_ROWS = 2

I2C_NUM_COLS = 16

# تهيئة I2C

i2c = I2C(0, sda=machine.Pin(16), scl=machine.Pin(17), freq=400000)

lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)

# تهيئة حساس DHT11 على المنفذ GPIO2 (يمكن تغييره حسب توصيلك)

sensor = dht.DHT11(Pin(0))

lcd.clear()

lcd.putstr("DHT11 Ready")

time.sleep(2)

while True:

   try:

       sensor.measure()

       temperature_celsius = sensor.temperature()

       humidity_percent = sensor.humidity()

       # عرض البيانات على الشاشة

       lcd.clear()

       lcd.move_to(0, 0)

       lcd.putstr("Temp: {} C".format(temperature_celsius))

       lcd.move_to(0, 1)

       lcd.putstr("Hum: {}%".format(humidity_percent))

       # للمتابعة عبر الـ Serial Monitor أيضًا

       print("Temperature:", temperature_celsius, "°C")

       print("Humidity:", humidity_percent, "%")

   except OSError as e:

       lcd.clear()

       lcd.putstr("Sensor Error")

       print("Failed to read sensor:", e)

   time.sleep(1)

Testing it Out

بعد رفع الكود البرمجى الأول ستجد انه يتم عرض قيم درجة الحرارة ونسبة الرطوبة على الشاشة, بينما اذا رفعت الكود البرمجى الثانى ستجد انه يتم عرض قيم درجة الحرارة ونسبة الرطوبة على الشاشة الكريستالية.

Resources

No items found.