Raspberry Pi
90 min
Share

كيف تقيس درجة الحرارة والرطوبة باستخدام لوحة راسبيرى باى 5 ؟

DHT11 هو حساس رائع يسمح لك بقياس درجة الحرارة بالدرجة المئوية أو الفهرنهايت والرطوبة بالنسبة المئوية.

Project Video

Overview

في هذا المشروع، سوف نستخدم لوحة Raspberry Pi 5 لطباعة قيم درجة الحرارة نسبة والرطوبة على نافذة باستخدام مستشعر مناسب يسمى DHT11.

Getting the Items

Raspberry Pi 5 Single Board Computer
Get Item
DHT11 Temperature & Humidity Sensor
Get Item
Half-size Breadboard
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item

Steps

أولاً، يجب علينا اعداد منفذ بلوحة راسبيرى باى5الذي سيتم توصيله بمستشعر DHT11.للقيام بذلك، افتح طرفية النظام (التيرمنال) واكتب هذا الأمر: sudo nano /boot/firmware/config.txt

قم بالنزول الى الاسفل, بعد كلمة [all]  قم بكتابة ذلك السطر :

[all]

dtoverlay=dht11,gpiopin=21

مثل الصورة التى فى الاسفل :

والان قم باعادة تشغيل الراسبيرى باى الخاص بك .

Wiring it Up

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


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

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

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

التوصيلات من حساسDHT11  :

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

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

• منفذ ال outمن حساسDHT11  ← منفذ رقم 21 بلوحة راسبيرى باى 5

Coding

الان على الراسبيرى باى الخاص بك اضغط على ال menu ومن ثم اختر  programming ومن ثم قم بفتح برنامج Thonny ide.

الآن انسخ هذا الكود فيه، وظيفة هذا الكود هو جعل الراسبيرى باى 5 يظهر نافذه مكتوب بها درجة الحرارة ونسبة الرطوبة .

import time

import tkinter as tk

from tkinter import font

device0 = "/sys/bus/iio/devices/iio:device0"

window = tk.Tk()

window.title("Temperature & Humidtiy Measurement")

custom_font = font.Font(size=30)

window.geometry("800x400")

Temperature_label = tk.Label(window, text="temperature: ", anchor='center', font=custom_font)

Temperature_label.pack()

Humidtiy_label = tk.Label(window, text="Humidtiy: ", anchor='center', font=custom_font)

Humidtiy_label.pack()

#function to read first line and return integer

def readvaluesLine():

   try:

       

       f = open(device0+"/in_temp_input","rt")

       Temperature =  int(f.readline())

       Temperature_label.config(fg="red", text="Temperature: {} °C".format(Temperature//1000))

         

   

       

       f.close()

       print(Temperature // 1000,"\u2103",end="\t")

       

       

       f = open(device0+"/in_humidityrelative_input","rt")

       Humidity =  int(f.readline())

       Humidtiy_label.config(fg="red", text="Humidity: {} %".format(Humidity//1000))        

       f.close()

       print(Humidity // 1000,"%")

       window.after(1000, readvaluesLine)

   except :

       f.close()

       window.after(1, readvaluesLine)

readvaluesLine()  

window.mainloop()

Testing it Out

الآن قم بتشغيل الكود،ستجد أن لوحة راسبيرى باى 5 تطبع قيم درجة الحرارة والرطوبة على النافذة باستخدام حساس DHT11.

Resources

No items found.