برد آردوینو نانو ARDUINO NANO 33 SENSE BLE از مجموع چندین سنسور امبدد داخلی تشکیل شده است که هر کدام یکی از بهترین و دقیق ترین سنسورهای اندازه گیری پارامترهای محیطی هستند. در بخش دوم از سری آموزش های آردوینو نانو به معرفی سنسور امبدد HTS221 دما رطوبت و راه اندازی آن خواهیم پرداخت. در ادامه بامرجع تخصصی آردوینو نانو به زبان فارسی، دیجی اسپارک همراه باشید.
سنسور دما رطوبت HTS221
سنسور دما رطوبت HTS221 با ابعاد ۲X2X0.9 میلی متری یکی از سنسورهای بسیار دقیق برای اندازه گیری وضعیت هوا AIR CONDITIONING، گرمایش HEATING، تهویه ventilation استفاده میشود. از این سنسور در ساخت طراحی یخچال فریز، دستگاه های پوشیدنی، اتوماسیون خانه هوشمند، اتوماسیون صنعتی، تجهیزات تنفسی استفاده میشود. سنسور HTS221 یک سنسور فوق فشرده برای اندازه گیری دما و رطوبت است. سنسور دارای یک المنت حسگر و سیگنال ASIC برای ارائه ی دیتای دیجیتال دریافتی است. عنصر حسگر به کار رفته در سنسور از یک پلیمر تشکیل شده است که ساختار خازن مسطح دی الکتریک قادر به تشخیص تغییرات رطوبت نسبی خواهد بود. رنج اندازه گیری رطوبت نسبی صفر تا صد درصد است. ولتاژ کاری سنسور از ۱٫۷ ولت تا ۳٫۶ ولت است. حساسیت رطوبت بسیار دقیق و در حدود ۰٫۰۰۴% rH/LSB است. دقت اندازه گیری رطوبت ± ۳٫۵% rH, 20 to +80% rH است. دقت اندازه گیری دما ± ۰٫۵ °C,15 to +40 °C است. در ساختار سنسور از یک ADC امبدد ۱۶ بیتی تشکیل شده است. خروجی سنسور به صورت I2C , SPI است. کالیبره شده است.
سنسور داخلی رطوبت مشخص میکند که محیطی که در آن هستیم، خشک یا مرطوب است و به همین دلیل اهمیت دقت اندازه گیری برای ما مشخص میشود. برد آردوینو با به کارگیری سنسور HTS221 اندازه گیری پارامترهای محیطی را برای ما آسان کرده است. این سنسور همچنین قابلیت اندازه گیری دما بین – ۴۰ تا + ۱۲۰ با رزولوشن ۰٫۰۱۶°C و دقت ±۰٫۵ °C دارد. این سنسور ۲ میلی متری با استفاده از رابط I2C با میکروکنترلرها ارتباط برقرار میکند.
راه اندازی HTS221 با آردوینو NANO 33
به تصویر زیر نگاه کنید. سنسور HTS221 بر روی برد آردوینو NANO 33 SENSE BLE مشخص شده است.
برای راه اندازی سنسور HTS221 در نرم افزار آردوینو ARDUINO IDE در ابتدا بایستی کتابخانه سنسور را نصب کنید. برای نصب کتابخانه عبارت Arduino_HTS221 را در مسیر نصب کتابخانه ها تایپ و فیلتر کنید.
در قدم بعدی نوع برد را ARDUINO NANO 33 SENSE BLE انتخاب میکنیم.
سپس برد را به سیستم وصل کرده و پورت را مشخص کنید.
کد آردوینو سنسور دما رطوبت NANO 33 SENSE BLE
در این بخش میخواهیم سنسور HTS221 را تست کنیم. در بخش قبل کتابخانه سنسور را نصب کردیم. کد برنامه به صورت زیر است. آن را کپی و به نرم افزار آردوینو انتقال دهید. این برنامه دیتای دما و رطوبت را از سنسور داخلی HTS221 برد خوانده و سپس بر روی سریال مانیتور نمایش میدهد.
#include <Arduino_HTS221.h> //فراخوانی کتابخانه void setup() { Serial.begin(9600); //فراخوانی سریال مانیتور // با شرط WHILE بررسی میکنی اگر ارتباط سنسور برقرار نباشد و دیتا ارسال نشود با پیغام FAILD مشخص کند. while (!Serial); if (!HTS.begin()) { Serial.println("Failed"); while (1); } } void loop() { float temperature = HTS.readTemperature(); //خواندن دیتای دما از سنسور float humidity = HTS.readHumidity(); // خواندن دیتای رطوبت از سنسور // نمایش دیتا در سریال مانیتور Serial.print("Temperature = "); Serial.print(temperature); Serial.println(" °C"); Serial.print("Humidity = "); Serial.print(humidity); Serial.println(" %"); Serial.println(); delay(1000); }
نتیجه در سریال مانیتور همانند تصویر است که هر یک ثانیه یک بار دیتای جدید دریافتی از محیط نمایش داده میشود. با دو رنگ مختلف دیتا نمایش داده شده است.
تحلیل کد آردوینو Nano33
- در قدم اول کتابخانه را فراخوانی میکنیم.
#include <Arduino_HTS221.h> //فراخوانی کتابخانه
- در مرحله دوم تابع SET UP اولیه را مینویسیم. در این تابع سریال مانیتور فراخوانی و توسط WHILE شرط عدم برقراری ارتباط سنسور را مینویسم که اگر نبود با پیغام FAILED به ما هشدار دهد.
void setup() { Serial.begin(9600); //فراخوانی سریال مانیتور // با شرط WHILE بررسی میکنی اگر ارتباط سنسور برقرار نباشد و دیتا ارسال نشود با پیغام FAILD مشخص کند. while (!Serial); if (!HTS.begin()) { Serial.println("Failed"); while (1); } }
- در مرحله سوم حلقه تکرار برنامه را مینویسیم. دو تابع مهم نیاز داریم. یکی از کلاس ها برای خواندن دیتای دما از سنسور HTS221 و کلاس دیگر برای خواندن دیتای رطوبت است. اگر بخواهیم دیتا را به صورت اعشاری دریافت کنید، از دیتا تایپ FLOAT استفاده کنید. در غیر اینصورت از INT استفاده کنید. دو اسم دلخواه برای ذخیره دیتای دریافتی از سنسور یکی برای رطوبت و یکی برای دما انتخاب کنید.
float temperature = HTS.readTemperature(); //خواندن دیتای دما از سنسور float humidity = HTS.readHumidity(); // خواندن دیتای رطوبت از سنسور
- در مرحله ی نهایی از توابع سریال مانیتور برای نمایش دیتا استفاده میکنیم.
Serial.print("Temperature = "); Serial.print(temperature); Serial.println(" °C"); Serial.print("Humidity = "); Serial.print(humidity); Serial.println(" %"); Serial.println();
به همین ترتیب در خروجی سریال مانیتور دما رطویت از محیط اطراف هر یک ثانیه یکبار خوانده شده و نمایش داده میشود. بازه زمانی را توسط تابع DELAY در برنامه میتوانید تغییر دهید.
وسایل مورد نیاز
برد آردوینو ARDUINO NANO 33 SENSE BLE
جمع بندی لیدی پای
در بخش دوم از سری آموزش های راه انداز برد آردوینو مدل ARDUINO NANO 33 SENSE BLE سنسور دما رطوبت داخلی امبدد را با هم تست کردیم. در این آموزش دیتا از سنسور خوانده شده و سپس تفکیک شده بر روی سریال مانیتور نمایش میدهیم. به راحتی میتوانید از تمامی کتابخانه های نمایشگرهای مختلف برای این برد هم استفاده کنید و دیتا را بر روی نمایشگر LCD و یا نمایشگر OLED نمایش دهید. سنسور HTS221 یکی از سنسورهای بسیار دقیق محیطی با قابلیت اندازه گیری دما و رطوبت به صورت همزمان است که در ساخت برد نانو ۳۳ نقش داشته است. از این سنسور برای پروژه های متعددی مانند مدیریت دما و رطوبت منزل، دفاتر اداری ، کارگاه ها و اتاق ها میتوان استفاده کرد و بی نیاز از کابل و اتصالات اضافی میتوان دیتای بسیار دقیقی را دریافت و مانیتورینگ کرد.
چنانچه در مراحل راه اندازی برد رزبری پای پیکو Picro و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
دما و رطوبت همزمان نمایش داده میشه ؟ دقت اندازه گیری چقدره؟ تا چه دمایی ؟
با سلام
بله همزمان نمایش داده میشود. دقت اندازه گیری دما ±۰٫۵ °C است و در دمای -۱۵ تا + ۴۰ درجه کار میکند.
سلام آیا قابلیت اضافه شدن نمایشگر هم هست؟
با سلام
ساختار برد همان آردوینو نانو است و از i2c spi و uart پشتیبانی میکند. هر نوع نمایشگری که از بردهای آردوینو پشتیبانی میکند را میتوانید به برد متصل کنید.
سپاس از توضیح شما
با سلام
کاربر گرامی از اینکه تجربه خود را با دیگر کاربران به اشتراک میگذارید، صمیمانه سپاسگزاریم.
سپاس از شما برای انتشار آموزش های به روز
با سلام
کاربر گرامی
سپاس از همراهی شما امیدوارم مفید واقع شده باشد.