جدول المحتويات:

قياس الرطوبة ودرجة الحرارة باستخدام HTS221 و Raspberry Pi: 4 خطوات
قياس الرطوبة ودرجة الحرارة باستخدام HTS221 و Raspberry Pi: 4 خطوات

فيديو: قياس الرطوبة ودرجة الحرارة باستخدام HTS221 و Raspberry Pi: 4 خطوات

فيديو: قياس الرطوبة ودرجة الحرارة باستخدام HTS221 و Raspberry Pi: 4 خطوات
فيديو: Chip Shortage: ST HTS221 Capacitive Humidity/Temperature sensor #ChipShortage @Adafruit 2024, شهر نوفمبر
Anonim
Image
Image

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

في هذا البرنامج التعليمي ، تم توضيح واجهة وحدة المستشعر HTS221 مع raspberry pi كما تم توضيح برمجتها باستخدام لغة python. لقراءة قيم الرطوبة ودرجة الحرارة ، استخدمنا raspberry pi مع محول I2C. يجعل محول I2C هذا الاتصال بوحدة المستشعر أسهل وأكثر موثوقية.

الخطوة 1: الأجهزة المطلوبة:

الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة
الأجهزة المطلوبة

تشمل المواد التي نحتاجها لتحقيق هدفنا مكونات الأجهزة التالية:

1. HTS221

2. Raspberry Pi

3. كابل I2C

4. I2C شيلد للتوت باي

5. كابل إيثرنت

الخطوة 2: ربط الأجهزة:

ربط الأجهزة
ربط الأجهزة
ربط الأجهزة
ربط الأجهزة

يشرح قسم توصيل الأجهزة بشكل أساسي اتصالات الأسلاك المطلوبة بين المستشعر و raspberry pi. يعد التأكد من التوصيلات الصحيحة ضرورة أساسية أثناء العمل على أي نظام للإخراج المطلوب. إذن ، الاتصالات المطلوبة هي كما يلي:

سيعمل HTS221 على I2C. فيما يلي مثال على مخطط الأسلاك ، يوضح كيفية توصيل كل واجهة من أجهزة الاستشعار.

خارج الصندوق ، تم تكوين اللوحة لواجهة I2C ، لذلك نوصي باستخدام هذا التوصيل إذا كنت غير مدرك.

كل ما تحتاجه هو أربعة أسلاك! مطلوب أربعة اتصالات فقط دبابيس Vcc و Gnd و SCL و SDA ويتم توصيلها بمساعدة كابل I2C.

هذه الوصلات موضحة في الصور أعلاه.

الخطوة الثالثة: كود قياس الرطوبة ودرجة الحرارة:

كود قياس الرطوبة ودرجة الحرارة
كود قياس الرطوبة ودرجة الحرارة

تتمثل ميزة استخدام raspberry pi في أنه يوفر لك مرونة لغة البرمجة التي تريد برمجة اللوحة من أجل واجهة المستشعر معها. من خلال الاستفادة من هذه الميزة في هذه اللوحة ، نعرض هنا برمجتها بلغة الثعبان. يمكن تنزيل كود python الخاص بـ HTS221 من مجتمع جيثب الخاص بنا وهو مجتمع التحكم في كل شيء.

ولسهولة المستخدمين ، نقوم بشرح الكود هنا أيضًا:

كخطوة أولى في الترميز ، تحتاج إلى تنزيل مكتبة smbus في حالة Python ، لأن هذه المكتبة تدعم الوظائف المستخدمة في الكود. لذلك ، لتنزيل المكتبة يمكنك زيارة الرابط التالي:

pypi.python.org/pypi/smbus-cffi/0.5.1

يمكنك نسخ كود بيثون العامل لهذا المستشعر من هنا أيضًا:

استيراد smbus

وقت الاستيراد

# احصل على حافلة I2C

الحافلة = smbus. SMBus (1)

# عنوان HTS221 ، 0x5F (95)

# حدد متوسط سجل التكوين ، 0x10 (16)

# 0x1B (27) عينات متوسط درجة الحرارة = 256 ، عينة متوسط الرطوبة = 512

bus.write_byte_data (0x5F ، 0x10 ، 0x1B)

# عنوان HTS221 ، 0x5F (95)

# حدد سجل التحكم 1 ، 0x20 (32)

# 0x85 (133) التشغيل ، التحديث المستمر ، معدل إخراج البيانات = 1 هرتز

bus.write_byte_data (0x5F ، 0x20 ، 0x85)

وقت النوم (0.5)

# عنوان HTS221 ، 0x5F (95)

# قراءة قيم المعايرة من ذاكرة الجهاز غير المتطايرة

# قيم معايرة الرطوبة

# قراءة البيانات مرة أخرى من 0x30 (48) ، 1 بايت

val = bus.read_byte_data (0x5F ، 0x30)

H0 = val / 2

# قراءة البيانات مرة أخرى من 0x31 (49) ، 1 بايت

val = bus.read_byte_data (0x5F ، 0x31)

H1 = val / 2

# قراءة البيانات مرة أخرى من 0x36 (54) ، 2 بايت

val0 = bus.read_byte_data (0x5F ، 0x36)

val1 = bus.read_byte_data (0x5F ، 0x37)

H2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# قراءة البيانات مرة أخرى من 0x3A (58) ، 2 بايت

val0 = bus.read_byte_data (0x5F ، 0x3A)

val1 = bus.read_byte_data (0x5F ، 0x3B)

H3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# قيم معايرة درجة الحرارة

# قراءة البيانات مرة أخرى من 0x32 (50) ، 1 بايت

T0 = bus.read_byte_data (0x5F ، 0x32)

T0 = (T0 & 0xFF)

# قراءة البيانات مرة أخرى من 0x32 (51) ، 1 بايت

T1 = bus.read_byte_data (0x5F، 0x33)

T1 = (T1 & 0xFF)

# قراءة البيانات مرة أخرى من 0x35 (53) ، 1 بايت

raw = bus.read_byte_data (0x5F، 0x35)

خام = (خام & 0x0F)

# تحويل قيم معايرة درجة الحرارة إلى 10 بت

T0 = ((خام & 0x03) * 256) + T0

T1 = ((خام & 0x0C) * 64) + T1

# قراءة البيانات مرة أخرى من 0x3C (60) ، 2 بايت

val0 = bus.read_byte_data (0x5F ، 0x3C)

val1 = bus.read_byte_data (0x5F ، 0x3D)

T2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# قراءة البيانات مرة أخرى من 0x3E (62) ، 2 بايت

val0 = bus.read_byte_data (0x5F ، 0x3E)

val1 = bus.read_byte_data (0x5F ، 0x3F)

T3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# قراءة البيانات مرة أخرى من 0x28 (40) مع تسجيل الأوامر 0x80 (128) ، 4 بايت

# الرطوبة msb ، الرطوبة lsb ، درجة الحرارة msb ، temp lsb

data = bus.read_i2c_block_data (0x5F، 0x28 | 0x80، 4)

# تحويل البيانات

الرطوبة = (البيانات [1] * 256) + البيانات [0]

الرطوبة = ((1.0 * H1) - (1.0 * H0)) * (1.0 * الرطوبة - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temp = (data [3] * 256) + data [2]

إذا كانت درجة الحرارة> 32767:

درجة الحرارة - = 65536

cTemp = ((T1 - T0) / 8.0) * (درجة الحرارة - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# إخراج البيانات إلى الشاشة

اطبع "الرطوبة النسبية:٪.2f ٪٪"٪ رطوبة

اطبع "درجة الحرارة بالدرجة المئوية:٪.2f C"٪ cTemp

طباعة "درجة الحرارة بالفهرنهايت:٪.2f F"٪ fTemp

يتضمن جزء الكود المذكور أدناه المكتبات المطلوبة للتنفيذ الصحيح لأكواد بايثون.

استيراد smbus

وقت الاستيراد

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

$> python HTS221.py

يظهر خرج المستشعر أيضًا في الصورة أعلاه كمرجع للمستخدم.

الخطوة 4: التطبيقات:

التطبيقات
التطبيقات

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

موصى به: