جدول المحتويات:
فيديو: قياس الرطوبة باستخدام HYT939 و Raspberry Pi: 4 خطوات
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
HYT939 هو مستشعر رطوبة رقمي يعمل على بروتوكول اتصال I2C. الرطوبة هي عامل محوري عندما يتعلق الأمر بالنظم الطبية والمختبرات ، لذلك من أجل تحقيق هذه الأهداف ، حاولنا ربط HYT939 مع التوت باي. في هذا البرنامج التعليمي ، تم توضيح واجهة وحدة المستشعر HYT939 مع raspberry pi كما تم توضيح برمجتها باستخدام لغة Java.
لقراءة قيم الرطوبة ، استخدمنا raspberry pi مع محول I2c هذا المحول I2C يجعل الاتصال بوحدة المستشعر أسهل وأكثر موثوقية.
الخطوة 1: الأجهزة المطلوبة:
الأجهزة المطلوبة لإنجاز المهمة هي كما يلي:
1. HYT939
2. Raspberry Pi
3. كابل I2C
4. I2C Shield لـ Raspberry Pi
5. كابل إيثرنت
-
الخطوة 2: ربط الأجهزة:
يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر و raspberry pi. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:
سيعمل HYT939 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.
خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك. كل ما تحتاجه هو أربعة أسلاك!
مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.
هذه الوصلات موضحة في الصور أعلاه.
الخطوة الثالثة: كود جافا لقياس الرطوبة:
تتمثل ميزة استخدام raspberry pi في أنه يوفر لك مرونة لغة البرمجة التي تريد برمجة اللوحة من أجل واجهة المستشعر معها. بتسخير هذه الميزة في هذا المنتدى ، نعرض هنا برمجته في Java. يمكن تنزيل كود جافا الخاص بـ HYT939 من مجتمع جيثب الخاص بنا وهو Dcube Store.
ولسهولة المستخدمين ، نقوم بشرح الكود هنا أيضًا:
كخطوة أولى في الترميز ، تحتاج إلى تنزيل مكتبة pi4j في حالة java ، لأن هذه المكتبة تدعم الوظائف المستخدمة في الكود. لذلك ، لتنزيل المكتبة يمكنك زيارة الرابط التالي:
pi4j.com/install.html
يمكنك نسخ كود جافا العامل لهذا المستشعر من هنا أيضًا:
استيراد com.pi4j.io.i2c. I2CBus ؛
استيراد com.pi4j.io.i2c. I2CDevice ؛
استيراد com.pi4j.io.i2c. I2CFactory ؛
استيراد java.io. IOException ؛
فئة عامة HYT939
{
يطرح main static void main (String args ) استثناء
{
// إنشاء I2CBus
حافلة I2CBus = I2CFactory.getInstance (I2CBus. BUS_1) ؛
// احصل على جهاز I2C ، عنوان HYT939 I2C هو 0x28 (40)
جهاز I2CDevice = bus.getDevice (0x28) ؛
// إرسال أمر الوضع العادي
device.write ((بايت) 0x80) ؛
Thread.sleep (500) ؛
// قراءة 4 بايت من البيانات
// الرطوبة msb ، الرطوبة lsb ، temp msb ، temp lsb
بايت بيانات = بايت جديد [4] ؛
قراءة الجهاز (البيانات ، 0 ، 4) ؛
// تحويل البيانات إلى 14 بت
رطوبة مزدوجة = (((البيانات [0] & 0x3F) * 256) + (البيانات [1] & 0xFF)) * (100.0 / 16383.0) ؛
مزدوج cTemp = ((((data [2] & 0xFF) * 256) + (data [3] & 0xFC)) / 4) * (165.0 / 16383.0) - 40 ؛
مزدوج fTemp = (cTemp * 1.8) + 32 ؛
// إخراج البيانات للشاشة
System.out.printf ("الرطوبة النسبية هي:٪.2f ٪٪ RH٪ n" ، الرطوبة) ؛
System.out.printf ("درجة الحرارة بالدرجة المئوية:٪.2f C٪ n"، cTemp)؛
System.out.printf ("درجة الحرارة بالفهرنهايت هي:٪.2f F٪ n"، fTemp)؛
}
}
المكتبة التي تسهل اتصال i2c بين المستشعر واللوحة هي pi4j ، وتساعد حزمها المختلفة I2CBus و I2CDevice و I2CFactory على إنشاء الاتصال.
استيراد com.pi4j.io.i2c. I2CBus ؛ استيراد com.pi4j.io.i2c. I2CDevice ؛ استيراد com.pi4j.io.i2c. I2CFactory ؛ استيراد java.io. IOException ؛
يتم استخدام وظائف write () و read () لكتابة بعض الأوامر المحددة إلى المستشعر لجعله يعمل في وضع معين وقراءة إخراج المستشعر على التوالي. يوضح الجزء التالي من الكود استخدام هذه الوظائف.
// إرسال الأمر في الوضع العادي device.write ((بايت) 0x80) ؛ Thread.sleep (500) ؛ // قراءة 4 بايت من البيانات // الرطوبة msb ، الرطوبة lsb ، temp msb ، temp lsb byte البيانات = بايت جديد [4] ؛ قراءة الجهاز (البيانات ، 0 ، 4) ؛
يظهر خرج المستشعر أيضًا في الصورة أعلاه.
الخطوة 4: التطبيقات:
يتم استخدام HYT939 باعتباره مستشعر رطوبة رقمي فعال في الأنظمة الطبية ، أجهزة الأوتوكلاف. قياس نقطة الندى بالضغط وأنظمة التجفيف تجد أيضًا استخدام وحدة المستشعر هذه. في مختبرات مختلفة حيث يكون مستوى الرطوبة المناسب معلمة محورية لإجراء التجارب ، يمكن نشر هذا المستشعر هناك لقياسات الرطوبة.