مستشعر درجة الحرارة (Temperature Sensor)
مرحبًا بكم في موقع ElectroCode، المنصة التعليمية التي تهدف إلى تقديم محتوى قيم في مجالات البرمجة،
الإلكترونيات، والتكنولوجيا.
سواء كنتم مبتدئين أو محترفين، نقدم شروحات واضحة، دروسًا عملية، ونصائح تقنية
لمساعدتكم على تطوير مهاراتكم. نحن نؤمن بجعل المعرفة متاحة للجميع ونسعى
لتقديم تجربة تعليمية ممتعة ومفيدة.
Temperature Sensor
مستشعر درجة الحرارة (Temperature Sensor) هو جهاز إلكتروني يستخدم لقياس درجة الحرارة في البيئة المحيطة أو في جسم معين، ثم تحويل هذه القيمة إلى إشارة كهربائية يمكن قراءتها ومعالجتها بواسطة دوائر إلكترونية مثل لوحة الأردوينو (Arduino). تُستخدم مستشعرات درجة الحرارة في مجموعة واسعة من التطبيقات، مثل أنظمة التحكم في المناخ، والأجهزة الطبية، والأنظمة الصناعية، وحتى في المشاريع التعليمية والبسيطة.
أنواع مستشعرات درجة الحرارة الشائعة مع الأردوينو:
LM35:
- مستشعر تمثيلي (Analog) يوفر جهدًا يتناسب مع درجة الحرارة.
- المدى: من -55°C إلى +150°C.
- الدقة: حوالي 0.5°C.
- سهل الاستخدام ولا يحتاج إلى معايرة.
DS18B20:
- مستشعر رقمي (Digital) يستخدم بروتوكول One-Wire للتواصل.
- المدى: من -55°C إلى +125°C.
- الدقة: حتى 0.0625°C.
- يمكن توصيل عدة مستشعرات على نفس السلك.
DHT11 / DHT22:
- مستشعرات رقمية تقيس درجة الحرارة والرطوبة.
- DHT11: المدى من 0°C إلى 50°C، دقة ±2°C.
- DHT22: المدى من -40°C إلى +80°C، دقة ±0.5°C.
TMP36:
- مستشعر تمثيلي مشابه لـ LM35.
- المدى: من -40°C إلى +125°C.
- الدقة: حوالي 1°C.
كيفية توصيل مستشعر درجة الحرارة مع الأردوينو:
مثال مع LM35:
التوصيلات:
- الطرف الأيسر من LM35 → 5V على الأردوينو.
- الطرف الأيمن من LM35 → GND على الأردوينو.
- الطرف الأوسط (الإشارة) → A0 على الأردوينو (أي دخل تمثيلي).
int sensorPin = A0; // تحديد الدخل التمثيليfloat temperatureC; // متغير لتخزين درجة الحرارةvoid setup() {Serial.begin(9600); // بدء الاتصال التسلسلي}void loop() {int sensorValue = analogRead(sensorPin); // قراءة القيمة التمثيليةfloat voltage = sensorValue * (5.0 / 1023.0); // تحويل القيمة إلى جهدtemperatureC = voltage * 100.0; // تحويل الجهد إلى درجة حرارةSerial.print("Temperature: ");Serial.print(temperatureC);Serial.println(" °C");delay(1000); // انتظر ثانية قبل القراءة التالية}
مثال مع DS18B20:
- الطرف الأحمر (VDD) → 5V على الأردوينو.
- الطرف الأسود (GND) → GND على الأردوينو.
- الطرف الأصفر (DQ) → ديجيتال بين (مثل D2) مع مقاومة 4.7 كيلو أوم للسحب لأعلى (Pull-up resistor).
#include <OneWire.h>#include <DallasTemperature.h>#define ONE_WIRE_BUS 2 // تحديد الدخل الرقمي OneWire oneWire(ONE_WIRE_BUS); // تهيئة OneWire DallasTemperature sensors(&oneWire); // تهيئة DallasTemperature void setup() { Serial.begin(9600); sensors.begin(); // بدء المستشعر } void loop() { sensors.requestTemperatures(); // طلب قراءة درجة الحرارة float temperatureC = sensors.getTempCByIndex(0); // قراءة القيمة Serial.print("Temperature: "); Serial.print(temperatureC); Serial.println(" °C"); delay(1000);}