DS18B20: مميزات مستشعر درجة الحرارة

  • يمكن لمستشعر DS18B20 قياس درجات الحرارة من -55 درجة مئوية إلى 125 درجة مئوية بدقة قابلة للتعديل من 9 إلى 12 بت.
  • يمكن تشغيله من خلال دبوس البيانات الخاص به أو استخدام مصدر خارجي لمزيد من الاستقرار.
  • فهو يسمح بالاتصال بين أجهزة استشعار متعددة في ناقل واحد، مع تحديد كل منها بواسطة عنوان 64 بت الفريد الخاص به.
  • وهو متوافق مع Arduino باستخدام مكتبات OneWire وDallasTemperature.

ds18b20

El مستشعر DS18B20 اكتسب شعبية بفضل موثوقيته وتعدد استخداماته لقياس درجة الحرارة. يستخدم على نطاق واسع في مشاريع الإلكترونيات مع وحدات التحكم الدقيقة مثل Arduino أو PIC أو ESP8266 نظرًا لبساطة استخدامه وقدرته على توصيل أجهزة استشعار متعددة على نفس الناقل، مما يجعله خيارًا مثاليًا لكل من الهواة والمحترفين.

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

مميزات DS18B20

يتم تصنيع DS18B20 بواسطة مكسيم المتكاملة، من بين أمور أخرى، ويتم تقديمه في مغلفات مختلفة، ويكون التنسيق TO-92 (على غرار العديد من الترانزستورات) وهي واحدة من أكثرها شيوعًا. بالإضافة إلى ذلك، يمكن العثور عليه أيضًا في إصدارات محكمة الغلق ومقاومة للماء، مما يجعله مثاليًا لقياس درجات الحرارة في البيئات القاسية أو الرطبة.

من بين أبرز ميزات DS18B20 ما يلي:

  • نطاق درجة الحرارة الذي يمكن قياسه يغطي منه -55 درجة مئوية إلى 125 درجة مئويةمما يجعلها مناسبة للتطبيقات الصناعية والمنزلية.
  • Su قرار قابل للبرمجة يمكن أن تختلف بين 9 بت و 12 بت، مما يسمح بالتعديل الدقيق بناءً على احتياجات كل مشروع.
  • كل مستشعر له عنوان فريد 64 بتمما يسهل التعرف على أجهزة الاستشعار المتعددة المتصلة على نفس الحافلة.

أوضاع الطاقة DS18B20

دبوس الخروج ds18b20

يمكن أن يعمل المستشعر في وضعين للطاقة، مما يوفر المرونة عند دمجه في مشاريع مختلفة، ولكل منها مزاياه الخاصة.

الطاقة عبر دبوس البيانات (قوة الطفيلي)

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

ومع ذلك، من المهم ملاحظة أنه لكي يعمل بشكل صحيح، من الضروري توصيل المسامير GND y VDD الشاطئ. بالإضافة إلى ذلك، فمن المستحسن أن تشمل الترانزستور MOSFET مما يساعد في المواقف التي تحتاج فيها تحويلات درجة الحرارة إلى تيار أكبر.

الطاقة باستخدام مصدر خارجي

الطريقة الأكثر شيوعًا والموصى بها لتشغيل DS18B20 هي من خلال مصدر خارجي متصل بالدبوس VDD. تضمن هذه الطريقة جهدًا ثابتًا مستقلاً عن حركة البيانات على الناقل ذي السلك الواحد، وهو أمر مفيد للمشاريع التي تتطلب دقة ثابتة.

كيفية استخدام DS18B20 مع الاردوينو

اتصال اردوينو

للعمل مع هذا المستشعر على منصة Arduino، من الضروري استخدام مكتبتين أساسيتين: OneWire y درجة حرارة دالاس. تسهل هذه المكتبات الاتصال وتسمح بإجراء القراءات والتكوينات بسهولة.

مكتبة ون واير: يسمح بالاتصال باستخدام بروتوكول 1-Wire. ويمكن تحميله من مستودع جيثب.

مكتبة دالاس درجة الحرارة: يحتوي على الوظائف اللازمة لقراءة درجة الحرارة وتكوين المستشعر. قم بتنزيله من هذا الرابط.

بمجرد تثبيت كلتا المكتبتين، يمكنك البدء في العمل مع المستشعر دون أي تعقيدات. نوضح أدناه بعض الأمثلة حول كيفية قراءة درجة الحرارة وكيفية العمل مع أجهزة استشعار متعددة.

مثال 1: قراءة درجة الحرارة باستخدام حساس واحد

لإجراء قراءة لدرجة الحرارة باستخدام DS18B20 واحد متصل بـ Arduino، تتضمن الدائرة الأساسية ببساطة توصيل دبوس بيانات المستشعر بالـ Arduino. دبوس رقمي 2 من اردوينو، جنبا إلى جنب مع المقاوم اسحب من 4.7 كيلو أوم.

هذا هو الكود الأساسي لقراءة درجة حرارة المستشعر:

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire  ds(2);  DallasTemperature sensors(&ds); void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float tempC = sensors.getTempCByIndex(0);   Serial.print("Temperatura= ");   Serial.print(tempC);   Serial.println(" °C");   delay(1000); }

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

مثال 2: استخدام أجهزة استشعار متعددة على دبابيس مختلفة

عند العمل مع أكثر من DS18B20، هناك طريقتان لتوصيل المستشعرات. الأول هو عن طريق تعيين دبوس رقمي مختلف من Arduino لكل مستشعر. في هذه الحالة، ستكون هناك حاجة إلى مقاومة سحب تبلغ 4.7 ​​كيلو أوم لكل مستشعر.

نعرض لك هنا مثالاً لكيفية العمل مع مستشعرين متصلين على أطراف مختلفة:

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire ds1(2); OneWire ds2(3);  DallasTemperature sensors1(&ds1); DallasTemperature sensors2(&ds2); void setup() {   Serial.begin(9600);   sensors1.begin();   sensors2.begin(); } void loop() {   sensors1.requestTemperatures();   float temp1 = sensors1.getTempCByIndex(0);   sensors2.requestTemperatures();   float temp2 = sensors2.getTempCByIndex(0);   Serial.print("Temperatura 1 = ");   Serial.print(temp1);   Serial.print(" °C   Temperatura 2 = ");   Serial.println(temp2);   delay(1000); }

مثال 3: أجهزة استشعار متعددة متصلة بدبوس واحد

الإمكانية الأخرى لتوصيل عدة DS18B20 في مشروع ما هي القيام بذلك باستخدام دبوس واحد ونفس الناقل ذو السلك الواحد لجميعها. في هذه الحالة، يجب أن يكون لكل جهاز استشعار خاصته رقم تعريف فريدالذي تم تعيينه في المصنع. ونوضح هنا كيفية الحصول على تلك العناوين باستخدام الكود التالي:

#include <OneWire.h> OneWire ds(2); void setup(void) {   Serial.begin(9600); } void loop(void) {   byte address[8];   if (!ds.search(address)) {     Serial.println("No more addresses.");     ds.reset_search();     delay(250);     return;   }   Serial.print("Address: ");   for (int i = 0; i < 8; i++) {     Serial.print(address[i], HEX);     if (i < 7) Serial.print(", ");   }   Serial.println();   delay(250); }

بمجرد حصولك على عناوين جميع المستشعرات، يمكنك قراءة المستشعر المحدد باستخدام عنوانه الفريد. يوضح لك الكود التالي كيفية القيام بذلك:

#include <DallasTemperature.h>  OneWire ds(2);  DallasTemperature sensors(&ds);  DeviceAddress sensor1 = {0x28, 0xFF, 0xCA, 0x4A, 0x5, 0x16, 0x3, 0xBD}; DeviceAddress sensor2 = {0x28, 0xFF, 0x89, 0x3A, 0x1, 0x16, 0x4, 0xAF};  void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float temp1 = sensors.getTempC(sensor1);   float temp2 = sensors.getTempC(sensor2);   Serial.print("Temp sensor 1: ");   Serial.println(temp1);   Serial.print("Temp sensor 2: ");   Serial.println(temp2);   delay(1000); }

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

من خلال هذه الأمثلة، يمكنك رؤية مدى تنوع وقوة مستشعر DS18B20. إنه سهل التنفيذ للغاية، وإذا كنت بحاجة إلى توصيل أجهزة استشعار متعددة، فلديك المرونة الكاملة للقيام بذلك بطرق مختلفة. يعد DS18B20 واحدًا من أكثر أجهزة الاستشعار موثوقية لقياس درجة الحرارة، وبفضل استهلاكه المنخفض للطاقة وسهولة برمجته، فهو مثالي لجميع أنواع المشاريع.

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


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.