جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
MCP9805 هو مستشعر درجة حرارة رقمي لوحدة الذاكرة. تم دمجه مع سجلات المستخدم القابلة للبرمجة والتي توفر المرونة لتطبيقات استشعار درجة الحرارة. تم تصميم هذا المستشعر ليتم دمجه في مستشعر درجة حرارة وحدة ذاكرة المنصة المتنقلة. هذا هو العرض التوضيحي برمز جافا باستخدام Raspberry Pi.
الخطوة 1: ماذا تحتاج..
1. Raspberry Pi
2. MCP9805
3. كابل I²C
4. I²C Shield لـ Raspberry Pi
5. كابل إيثرنت
الخطوة 2: التوصيلات
خذ درع I2C لـ Raspberry Pi وادفعه برفق فوق دبابيس gpio الخاصة بـ Raspberry Pi.
ثم قم بتوصيل أحد طرفي كابل I2C بمستشعر MCP9805 والطرف الآخر بغطاء I2C.
قم أيضًا بتوصيل كبل Ethernet بـ pi أو يمكنك استخدام وحدة WiFi. تظهر الاتصالات في الصورة أعلاه.
الخطوة 3: الكود
يمكن تنزيل كود جافا الخاص بـ MCP9805 من مستودع GitHub-Dcube Store.
هنا هو الرابط لنفسه:
github.com/DcubeTechVentures/MCP9805
يمكن العثور على ورقة بيانات MCP9805 هنا:
ww1.microchip.com/downloads/en/DeviceDoc/21…
لقد استخدمنا مكتبة pi4j لرمز جافا ، خطوات تثبيت pi4j على raspberry pi موصوفة هنا:
pi4j.com/install.html
يمكنك أيضًا نسخ الكود من هنا ، ويُعطى على النحو التالي:
// موزعة بترخيص الإرادة الحرة.
// استخدمها بالطريقة التي تريدها ، سواء كانت ربحًا أو مجانًا ، شريطة أن تتناسب مع تراخيص الأعمال المرتبطة بها.
// MCP9805
// تم تصميم هذا الرمز للعمل مع الوحدة النمطية الصغيرة MCP9808_I2CS I2C المتوفرة في Dcube Store.
استيراد com.pi4j.io.i2c. I2CBus ؛
استيراد com.pi4j.io.i2c. I2CDevice ؛
استيراد com.pi4j.io.i2c. I2CFactory ؛
استيراد java.io. IOException ؛
فئة عامة MCP9805
{
يطرح main static void main (String args ) استثناء
{
// إنشاء ناقل I2C
ناقل I2CBus = I2CFactory.getInstance (I2CBus. BUS_1) ،
// احصل على جهاز I2C ، عنوان MCP9805 I2C هو 0x18 (24)
جهاز I2CDevice = Bus.getDevice (0x18) ؛
Thread.sleep (300) ؛
// حدد سجل التكوين
// وضع التحويل المستمر ، الطاقة
بايت التكوين = بايت جديد [2] ؛
التكوين [0] = 0x00 ؛
التكوين [1] = 0x00 ؛
device.write (0x01 ، config ، 0 ، 2) ؛
// حدد قرار التسجيل
// الدقة = +0.0625 / C.
device.write (0x08 ، (بايت) 0x03) ؛
Thread.sleep (300) ؛
// قراءة 2 بايت من البيانات من العنوان 0x05 (05)
// temp msb، temp lsb
بايت بيانات = بايت جديد [2] ؛
قراءة الجهاز (0x05 ، البيانات ، 0 ، 2) ؛
// تحويل البيانات إلى 13 بت
int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF)) ؛
إذا (درجة الحرارة> 4095)
{
درجة الحرارة - = 8192 ؛
}
cTemp مزدوج = درجة الحرارة * 0.0625 ؛
مزدوج fTemp = cTemp * 1.8 + 32 ؛
// إخراج البيانات للشاشة
System.out.printf ("درجة الحرارة بالدرجة المئوية:٪.2f C٪ n"، cTemp)؛
System.out.printf ("درجة الحرارة بالفهرنهايت هي:٪.2f F٪ n"، fTemp)؛
}
}
الخطوة الرابعة: الطلبات..:
يمكن دمج MCP9805 في أنظمة مختلفة تشمل أنظمة مراقبة درجة حرارة وحدة الذاكرة المضمنة المزدوجة (DIMM) وأجهزة الكمبيوتر الشخصية والخوادم. بشكل عام ، يمكن استخدامه كمستشعر درجة حرارة للأغراض العامة.