فهرست مطالب:
- مرحله 1: سخت افزار مورد نیاز:
- مرحله 2: اتصال سخت افزاری:
- مرحله 3: کد اندازه گیری رطوبت و دما:
- مرحله 4: برنامه های کاربردی:
تصویری: اندازه گیری رطوبت و دما با استفاده از HTS221 و آردوینو نانو: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
HTS221 یک حسگر دیجیتالی خازنی فوق العاده جمع و جور برای رطوبت و درجه حرارت نسبی است. این شامل یک عنصر سنجش و یک سیگنال ترکیبی از مدار مجتمع خاص (ASIC) برای ارائه اطلاعات اندازه گیری از طریق رابط های سریال دیجیتال است. این سنسور با ویژگی های فراوان یکی از مناسب ترین سنسورها برای اندازه گیری بحرانی رطوبت و دما است.
در این آموزش ، رابط ماژول سنسور HTS221 با آردوینو نانو نشان داده شده است. برای خواندن مقادیر رطوبت و دما ، ما از آردوینو با آداپتور I2c استفاده کرده ایم. این آداپتور I2C اتصال به ماژول سنسور را آسان و قابل اطمینان تر می کند.
مرحله 1: سخت افزار مورد نیاز:
مواد مورد نیاز برای تحقق هدف ما شامل اجزای سخت افزاری زیر است:
1. HTS221
2. آردوینو نانو
3. کابل I2C
4. I2C Shield برای آردوینو نانو
مرحله 2: اتصال سخت افزاری:
بخش اتصال سخت افزاری اساساً اتصالات سیم کشی مورد نیاز بین سنسور و آردوینو نانو را توضیح می دهد. اطمینان از اتصالات صحیح ضروری ترین ضرورت در هنگام کار بر روی هر سیستم برای خروجی مورد نظر است. بنابراین ، اتصالات مورد نیاز به شرح زیر است:
HTS221 از طریق I2C کار خواهد کرد. در اینجا مثال نمودار سیم کشی است که نحوه اتصال هر رابط سنسور را نشان می دهد.
خارج از جعبه ، برد برای یک رابط I2C پیکربندی شده است ، بنابراین توصیه می کنیم در غیر این صورت آگنوستیک از این اتصال استفاده کنید.
تنها چیزی که نیاز دارید چهار سیم است! فقط چهار اتصال نیاز به پین های Vcc ، Gnd ، SCL و SDA دارد و این اتصالات با کمک کابل I2C متصل می شوند.
این اتصالات در تصاویر بالا نشان داده شده است.
مرحله 3: کد اندازه گیری رطوبت و دما:
بیایید اکنون با کد آردوینو شروع کنیم.
هنگام استفاده از ماژول سنسور با آردوینو ، ما کتابخانه Wire.h را شامل می شود. کتابخانه "Wire" شامل عملکردهایی است که ارتباط i2c بین سنسور و برد آردوینو را تسهیل می کند.
برای راحتی کاربر ، کل کد آردوینو در زیر آورده شده است:
#عبارتند از
// آدرس HTS221 I2C 0x5F است
#تعریف Addr 0x5F
void setup ()
{
// راه اندازی ارتباط I2C به عنوان MASTER
Wire.begin ()؛
// برقراری ارتباط سریالی ، تنظیم نرخ باود = 9600
Serial.begin (9600)؛
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// میانگین ثبت نام پیکربندی را انتخاب کنید
Wire.write (0x10) ؛
// نمونه دما متوسط = 256 ، نمونه رطوبت متوسط = 512
Wire.write (0x1B) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// control control1 را انتخاب کنید
Wire.write (0x20) ؛
// روشن ، به روز رسانی مداوم ، سرعت خروجی داده = 1 هرتز
Wire.write (0x85) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
تأخیر (300) ؛
}
حلقه خالی ()
{
اطلاعات int بدون علامت [2] ؛
بدون امضا int val [4]؛
بدون علامت int H0، H1، H2، H3، T0، T1، T2، T3 ، خام ؛
// مقادیر بارندگی رطوبت
برای (int i = 0 ؛ i <2؛ i ++)
{
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write ((48 + i)) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
داده = Wire.read ()؛
}
}
// تبدیل داده های رطوبت
H0 = داده [0] / 2 ؛
H1 = داده [1] / 2 ؛
برای (int i = 0 ؛ i <2؛ i ++)
{
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write ((54 + i)) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
داده = Wire.read ()؛
}
}
// تبدیل داده های رطوبت
H2 = (داده [1] * 256.0) + داده [0] ؛
برای (int i = 0 ؛ i <2؛ i ++)
{
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write ((58 + i)) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
داده = Wire.read ()؛
}
}
// تبدیل داده های رطوبت
H3 = (داده [1] * 256.0) + داده [0] ؛
// مقادیر فراخوانی دما
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write (0x32) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
T0 = Wire.read ()؛
}
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write (0x33) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
T1 = Wire.read ()؛
}
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write (0x35) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
raw = Wire.read ()؛
}
خام = خام & 0x0F؛
// مقادیر فراخوانی دما را به 10 بیت تبدیل کنید
T0 = ((خام و 0x03) * 256) + T0 ؛
T1 = ((خام و 0x0C) * 64) + T1 ؛
برای (int i = 0 ؛ i <2؛ i ++)
{
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write ((60 + i)) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
داده = Wire.read ()؛
}
}
// تبدیل داده ها
T2 = (داده [1] * 256.0) + داده [0] ؛
برای (int i = 0 ؛ i <2؛ i ++)
{
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write ((62 + i)) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 1 بایت داده
سیم. درخواست از (Addr، 1)؛
// 1 بایت داده را بخوانید
if (Wire.available () == 1)
{
داده = Wire.read ()؛
}
}
// تبدیل داده ها
T3 = (داده [1] * 256.0) + داده [0] ؛
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ارسال ثبت داده
Wire.write (0x28 | 0x80) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 4 بایت داده
سیم. درخواست از (Addr، 4)؛
// خواندن 4 بایت داده
// رطوبت msb ، رطوبت lsb ، دما msb ، دما lsb
if (Wire.available () == 4)
{
val [0] = Wire.read ()؛
val [1] = Wire.read ()؛
val [2] = Wire.read ()؛
val [3] = Wire.read ()؛
}
// تبدیل داده ها
رطوبت شناور = (val [1] * 256.0) + val [0]؛
رطوبت = ((1.0 * H1) - (1.0 * H0)) * (1.0 * رطوبت - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0) ؛
int temp = (val [3] * 256) + val [2]؛
float cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0) ؛
float fTemp = (cTemp * 1.8) + 32 ؛
// خروجی داده ها به مانیتور سریال
Serial.print ("رطوبت نسبی:") ؛
Serial.print (رطوبت) ؛
Serial.println ("٪ RH")؛
Serial.print ("دما در سانتیگراد:") ؛
Serial.print (cTemp) ؛ Serial.println ("C") ؛
Serial.print ("دما در فارنهایت:") ؛
Serial.print (fTemp) ؛
Serial.println ("F") ؛
تأخیر (500) ؛
}
در کتابخانه سیم Wire.write () و Wire.read () برای نوشتن دستورات و خواندن خروجی سنسور استفاده می شود.
Serial.print () و Serial.println () برای نمایش خروجی سنسور در مانیتور سریال Arduino IDE استفاده می شود.
خروجی سنسور در تصویر بالا نشان داده شده است.
مرحله 4: برنامه های کاربردی:
HTS221 را می توان در محصولات مختلف مصرفی مانند رطوبت ساز هوا و یخچال و غیره استفاده کرد. این سنسور همچنین کاربرد خود را در عرصه وسیع تری از جمله اتوماسیون خانه هوشمند ، اتوماسیون صنعتی ، تجهیزات تنفسی ، ردیابی دارایی و کالا پیدا می کند.
توصیه شده:
اندازه گیری رطوبت و دما با استفاده از HIH6130 و آردوینو نانو: 4 مرحله
اندازه گیری رطوبت و دما با استفاده از HIH6130 و آردوینو نانو: HIH6130 یک سنسور رطوبت و دما با خروجی دیجیتال است. این سنسورها سطح دقت ± 4 R RH را ارائه می دهند. با ثبات بلند مدت در صنعت ، I2C دیجیتال واقعی با جبران دما ، قابلیت اطمینان پیشرو در صنعت ، بهره وری انرژی
اندازه گیری دما و رطوبت با استفاده از HDC1000 و آردوینو نانو: 4 مرحله
اندازه گیری دما و رطوبت با استفاده از HDC1000 و آردوینو نانو: HDC1000 یک سنسور رطوبت دیجیتالی با سنسور دمای یکپارچه است که دقت اندازه گیری عالی را در توان بسیار کم فراهم می کند. این دستگاه رطوبت را بر اساس سنسور خازنی جدید اندازه گیری می کند. سنسورهای رطوبت و درجه حرارت
اندازه گیری رطوبت با استفاده از HYT939 و آردوینو نانو: 4 مرحله
اندازه گیری رطوبت با استفاده از HYT939 و Arduino Nano: HYT939 یک سنسور رطوبت دیجیتال است که بر روی پروتکل ارتباطی I2C کار می کند. رطوبت یک پارامتر مهم در مورد سیستم های پزشکی و آزمایشگاه ها است ، بنابراین به منظور دستیابی به این اهداف ما سعی کردیم HYT939 را با آردوینو نانو ارتباط دهیم. من
اندازه گیری رطوبت و دما با استفاده از HTS221 و Raspberry Pi: 4 مرحله
اندازه گیری رطوبت و دما با استفاده از HTS221 و Raspberry Pi: HTS221 یک حسگر دیجیتالی خازنی فوق العاده جمع و جور برای رطوبت و درجه حرارت نسبی است. این شامل یک عنصر حسگر و یک مدار سیگنال مختلط مخصوص مدار مجتمع (ASIC) برای ارائه اطلاعات اندازه گیری از طریق سریال دیجیتال است
اندازه گیری رطوبت و دما با استفاده از HTS221 و ذره فوتون: 4 مرحله
اندازه گیری رطوبت و دما با استفاده از HTS221 و ذره فوتون: HTS221 یک سنسور دیجیتالی خازنی فوق العاده جمع و جور برای رطوبت و دما نسبی است. این شامل یک عنصر حسگر و یک مدار سیگنال مختلط مخصوص مدار مجتمع (ASIC) برای ارائه اطلاعات اندازه گیری از طریق سریال دیجیتال است