چه طور با SHT31 دماسنج و رطوبتسنج بسیار دقیق بسازیم؟
معرفی و راه اندازی سنسور فوق دقیق دما و رطوبت سری SHT3x-DIS از طریق پروتکل I2C با میکروکنترلر AVR و همچنین آردوینو...
شاید با نمونه های قدیمی تر سری SHTxx آشنا باشید، اگر غیر این است می توانید از اینجا به آموزش راه اندازی سنسور دما و رطوبت SHT1x دسترسی داشته باشید؛ اکنون قصد داریم به معرفی و آموزش راه اندازی نسل جدید سنسورهای فوق دقیق دماسنج و رطوبت سنج شرکت Sensirion بپردازیم که با CMOSens توانسته دقت بالا و قابلیت اطمینان بالایی را ارائه دهد ، به حق شرکت Sensirion خدمت شایانی به این حوزه کرده است.
دماسنج و رطوبت سنج محیطی سری SHT3x ویژگیهای جدیدی را نظیر افزایش قدرت پردازش سیگنال، محدوده ولتاژی وسیع 2.4 الی 5.5 ولت، رابط کاربری دیجیتال I2C با سرعت ارتباط بیش از 1MHz (اگرچه خروجی نسخه ARP این سنسورها ولتاژ آنالوگ است) و … را ارائه داده است.
نکته: سنسور قدرتمند و حساس سری SHT3x در مدل های مختلف SHT31 ، SHT30 و SHT35 ارائه شده است که در این آموزش اگرچه براساس جزییات SHT31 که در بازار ایران یافت میشود صحبت می کنیم ولی اکثر مطالب برای هر سه مدل اشتراک دارد.
ویژگی ها
- کالیبره کامل، بدون نیاز به کالیبراسیون
- داده کاملا خطی
- رنج اندازه گیری دما 40- الی 125 درجه سانتی گراد با خطای کمتر از 0.2 درجه
- رنج اندازه گیری رطوبت 0-100 درصد با خطای کمتر از 2%
- رنج وسیع تغذیه از 2.4 تا 5.5 ولت
- رابط کاربری I2C با سرعت ارتباط بیش 1MHz
- دو آدرس I2C قابل انتخاب 0x44 و 0x45 (امکان استفاده همزمان از دو سنسور در یک مدار)
- بسیار سریع در زمان راه اندازی و زمان اندازه گیری
- مجهز به خروجی هشدار ALERT برای استفاده از قابلیت watchdog
دقت سنسورهای خانواده SHT3x :
سنسورهای سری SHT3x شهرت بسیاری دارند و دلیل این شهرت چیزی جز دقت و پایداری عملکرد در اندازه گیری دما و رطوبت نیست. در جدول زیر دقت اندازه گیری دما و رطوبت در خانواده های مختلف سری SHT3x نشان داده شده است.
سری | دقت اندازه گیری رطوبت (برحسب %) | دقت اندازه گیری دما (برحسب °C) | محدوده ولتاژ کاری | رابط کاربری | ابعاد بر حسب میلیمتر |
---|---|---|---|---|---|
SHT30-DIS | ±3 | ±0.2 | 2.4 – 5.5 | I2C | 2.5×2.5×0.9 |
SHT31-DIS | ±2 | ±0.2 | 2.4 – 5.5 | I2C | 2.5×2.5×0.9 |
SHT35-DIS | ±1.5 | ±0.1 | 2.4 – 5.5 | I2C | 2.5×2.5×0.9 |
برای مثال دقت اندازه گیری دما در سنسور SHT31 برابر 0.2 درجه و در سنسور SHT35 برابر با 0.1 درجه و دقت اندازه گیری رطوبت در سنسور SHT31 برابر 2% و در سنسور SHT35 برابر با 1.5% می باشد.
پروتکل ارتباطی سنسورهای خانواده SHT3x :
زمانی که دقت خروجی یک سنسور بالا باشد لاجرم رابط کاربری آن نیز دیجیتال بوده تا حافظ اطلاعات آن باشد و از هرگونه نویز و خطا در انتقال داده پیشگیری کند، لذا سنسور SHT3x سری DIS از پروتکل I2C بهره می برد که سرعت تبادل اطلاعات آن حدود 1MHz است و قابلیت گرفتن دو آدرس متفاوت را نیز دارد.
در ادامه به شرح کارایی هر کدام از پایه های سنسور می پردازیم:
پایه SDA : از این پایه برای ارسال فرمان به سنسور و همچنین خواندن مقدار و داده ها استفاده میشود.
پایه SCL : پایه سریال کلاک برای همگان سازی ارتباط بین میکروکنترلر و سنسور استفاده میشود.
پایه VSS : تغذیه منفی یا زمین سنسور.
پایه R : این پایه نیز باید به زمین سنسور متصل شود.
پایه VDD : تغذیه مثبت سنسور که می تواند بین 2.4 الی 5.5 ولت باشد.
پایه ADDR : از این پایه جهت تغییر آدرس سنسور استفاده می شود. ( اگر این پایه به زمین متصل شود آدرس سنسور برابر 0x44 و اگر این پایه به VCC متصل شود آدرس سنسور برابر 0x45 می شود ).
نکته : آدرس پیشفرض سنسور برابر 0x44 است.
پایه nRESET : از این پایه برای ریست کردن سنسور استفاده می شود.
پایه ALERT : پایه آلارم خروجی که می تواند به اینتراپت میکرو متصل شود.
نحوه اتصال پایه های SHT3x را مشاهده می کنید که در آن پایه های SCL و SDA باید به میکروکنترلر متصل شود یادتان نرود این دوپایه باید Pull-Up نیز بشوند.
کاربرد کد CRC8 در سنسورهای SHT3x :
CRC یک روش تشخیص خطا برپایه تشخیص تغییرات تصادفی دادهها است.
اغلب این فرض غلط وجود دارد که وقتی پیامی به همراه CRC آن از یک کانال آزاد دریافت میشود و CRC دریافتی با CRC محاسبه شده مطابقت میکند، پس امکان تغییر پیام در حین دریافت وجود ندارد. این درست نیست چراکه این امکان وجود دارد که هر دوی آنها تغییر کرده باشند، به طوری که CRC جدید با پیام جدید مطابقت کند؛ بنابراین CRCها میتوانند جهت بررسی درستی دادهها استفاده شوند ولی نه برای اطمینان از تمامیت آنها.
ساختار الگوریتم CRC8ها در سنسورهای SHT3x به صورت زیر است.
معمولا محاسبه CRC برای افرادی که حرفه ای نیستند کار پیچیده ای است و معمولا از محاسبه آن صرف نظر می کنند اما با برنامهای که تیم فنی پژوهشگران الکترونیک و رباتیک آماده کرده است داده های دریافتی بر اساس الگوریتم تشخیص خطا CRC محاسبه شده و شما می توانید به مقادیر اندازه گیری شده توسط سنسورهای SHT3x اعتماد کامل کنید.
راه اندازی سنسورهای SHT3x با آردوینو UNO :
راه اندازی این سنسورها با آردوینو بسیار ساده است. کافی است ابتدا سنسور را به آردوینو متصل کنید، سپس با نصب کتابخانه راه اندازی این سنسور حرفه ای و دقیق آن را راه اندازی کنید.
نحوه اتصال سنسورهای SHT3x با آردوینو
نصب کتابخانه و راه اندازی سنسورهای SHT3x با آردوینو
ابتدا نرم افزار آردوینو را اجرا کرده و بعد از اتصال به اینترنت مراحل زیر را انجام دهید.
بعد از اجرای مثال راه اندازی سنسور SHT31، کد را روی برد آردوینو پروگرم کنید. ادامه برای دیدن خروجی دما و رطوبت مراحل زیر را انجام دهید.
راه اندازی سنسورهای SHT3x با کدویژن :
برای راه اندازی این سنسور و خواندن مقدار دما و رطوبت باید ابتدا ماژول را پیکربندی کنیم، سپس مقدار دما و رطوبت را خوانده و طبق فرمول ارائه شده در دیتاشیت به دما و رطوبت واقعی تبدیل کنیم. به این منظور تیم فنی پژوهشگران جهت برنامه نویسی آسان و حرفه ای توابعی آماده کرده است که استفاده از سنسورهای SHT3x را بسیار راحت کرده است.
در زیر نمونه ی برنامه راه اندازی دقیق سنسورهای SHT3x را مشاهده می کنید که البته برای دسترسی به توابع موجود در آن کافی است دانش فنی آن را خریداری نمایید.
while(1) { Check=SHT3x_ReadSensor(SHT3X_MEAS_HIGHREP); if(Check) { sprintf(Buf,"Humidity: %0.0f%% ",SHT3x_Humidity); lcd_gotoxy(0,0); lcd_puts(Buf); sprintf(Buf,"Temp: %0.1f\xDF C ",SHT3x_Temp); lcd_gotoxy(0,1); lcd_puts(Buf); } else { lcd_clear(); lcd_putsf("Invalid Data ! "); } LEDR=1; delay_ms(100); LEDR=0; delay_ms(900); }
دانش فنی:
لازم به ذکر است که کتابخانه کامل و استاندارد راه اندازی سنسور مطابق فیلمی که در ادامه آمده است در بخش فروش فایل، قابل خرید است.
نکته: بدیهی حق نشر این دانش فنی صرفا برای پژوهشگران و خریداران این محصول دانش فنی محفوظ است؛ هرگونه انتقال به غیر و استفاده تجاری شرعاً و قانوناً حرام و قابل پیگیری است.
در ادامه از عملکرد مدار فیلم تهیه کردیم که می توانید آن را مشاهده کنید: