STM32کدویژن

آموزش راه اندازی سنسور دما و رطوبت SHT با کدویژن و STM32

دما و رطوبت نسبی دو پارامتر بسیار مهم محیط هستند که ارتباط مستقیمی با راحتی انسان دارند. در بعضی مواقع ، اگر رطوبت نسبی محیط کمتری داشته باشید ، مانند محیط بیابانی گرم و خشک ، ممکن است بتوانید دمای بیشتری را تحمل کنید .

با این حال ، قرار گرفتن در یک مکان مرطوب و با درجه حرارت نه چندان زیاد ممکن است احساس گرمای شدید کنید (سونای بخار) . دلیل این امر این است که اگر رطوبت نسبی زیادی وجود داشته باشد ، عرق بدن ما کمتر در هوا تبخیر می شود و ما احساس گرما بسیار بیشتری نسبت به دمای واقعی داریم.

آموزش راه اندازی سنسور رطوبت و دما SHT1x/7x

امروز ما در مورد سنسورهای دیجیتال کمپانی Sensirion’s SHT ، به طور خاص SHT11 و SHT75 بحث خواهیم کرد ، که قادر به اندازه گیری دما و رطوبت نسبی هستند و خروجی های دیجیتال کاملاً کالیبره شده را ارائه می دهند.

ما هر دو سنسور را توسط میکروکنترلر اندازه خواهیم گرفت و دو مجموعه اندازه گیری را با هم مقایسه می کنیم تا دقت و اختلاف بین دو سنسور را ببینیم.

شرکت Sensirion چندین سنسور دیجیتال SHT را برای اندازه گیری رطوبت نسبی و دما ارائه می دهد. دما با استفاده از یک سنسور band-gap اندازه گیری می شود ، در حالی که سنسور رطوبت از نوع خازنی است و وجود رطوبت در هوا باعث تغییر ثابت دی الکتریک مواد در بین دو صفحه خازن صفحه موازی می شود و از این رو ظرفیت را تغییر می دهد .

مدارهای مورد نیاز تبدیل آنالوگ به دیجیتال و مدارهای رابط دیجیتال همه در تراشه سنسور ادغام شده اند و در بسته بندی SMD عرضه شده است . سنسورهای مختلف سری SHT دارای دقت مختلفی برای اندازه گیری رطوبت و دما هستند ، همانطور که در زیر توضیح داده شده است .

سری سنسورهای SHT1X , SHT2X , SHT7X
سری سنسورهای SHT1X , SHT2X , SHT7X

SHT1x در نوع نصب سطحی وجود دارد در حالی که SHT7x با پین هدر چهار پایه ارائه می شود که امکان اتصال آسانتر را دارد. سنسورهای SHT11 و SHT75 هر دو خروجی دیجیتال کاملاً کالیبره شده ای دارند که از طریق رابط سریال دو سیمه (SDA برای داده ها و SCK برای پالس ساعت) قابل خواندن است که شبیه I2C است اما در واقع با I2C سازگار نیست.

برای HIGH کردن سیگنال روی خط SDA ، یک مقاومت pull up خارجی لازم است. با این حال ، خط SCK می تواند بدون هیچ مقاومت pull up بکار گرفته شود . جزئیات سیگنالینگ گذرگاه سریال در  دیتاشیت شرح داده شده است . دامنه عملکرد هر دو سنسور برای رطوبت نسبی 0 تا 100٪ و برای دما 40.0- تا 123.8+ درجه سانتی گراد است. این سنسور هنگام اندازه گیری 3 میلی وات و در حالت خواب 5 میکرو وات مصرف می کند.

در بازار ماژولها یا هدر بوردهایی برای سنسور SHT11 وجود دارد که سنسور (SMD) را بر روی یک بورد کوچک با هر چهار پایه از طریق یک پین هدر نری قابل دسترس است . اکثر این هدر بوردها دارای مقاومت های pull up هم هستند که به هر دو خط SDA و SCK متصل شده اند .

یک نگرانی در این نوع چیدمان این است که اگر مقاومت ها و سنسور بر روی بورد نزدیک هم باشند ، گرمای دفع شده توسط مقاومت های pull up می تواند روی اندازه گیری ها تأثیر بگذارد . بعداً در مورد این موضوع بحث خواهیم کرد . ماژول SHT75 از Sensirion ، هیچ مقاومت pull up برای خط SDA را ندارد و باید به مقاومت pull up خارجی متصل شود .

pcb طراحی شده برای سنسور sht11
pcb طراحی شده برای سنسور sht11
توضیحات پینهای سنسور SHT75
توضیحات پینهای سنسور SHT75

شرح مختصر سنسورهای SHT1x / 7x

اطلاعات دقیق در مورد سنسورهای SHT1x و SHT7x را از طریق دیتاشیت بخوانید . ما در اینجا فقط خلاصه ای مختصر ارائه می دهیم.

SHT11 و SHT75 از نظر عملکرد یکسان هستند ، اما سنسور SHT75 در اندازی گیری دارای دقت بیشتری می باشد . هر دو سنسور می توانند با ولتاژ تغذیه 2.4 الی 5.5 ولت کار کنند ، با این حال دیتاشیت ، استفاده از 3.3 ولت را برای بالاترین دقت توصیه می کند.

وضوح اندازه گیری پیش فرض برای دما 14 بیت و برای رطوبت نسبی 12 بیت است که می توان با تغییر تنظیمات رجیستر وضعیت (که بعداً بحث خواهد شد) داخل تراشه سنسور به ترتیب به 12 و 8 بیت کاهش داده شوند . ما از تنظیمات پیش فرض برای اندازه گیری ها استفاده خواهیم کرد.

SCK خط پالس ساعت یا کلاک است که برای همگام سازی ارتباط بین میکروکنترلر و سنسور استفاده می شود. این فقط یک پین ورودی در سمت سنسور است و بنابراین میکروکنترلر باید مسئول تولید سیگنال کلاک باشد . DATA یا SDA یک پین انتقال داده ای دو طرفه برای ارسال داده به داخل و خارج از سنسور است.

برای شروع اندازه گیری دما یا رطوبت نسبی ، سنسور باید یک فرمان تبدیل از میکروکنترلر دریافت کند. دستورات اندازه گیری برای رطوبت و دمای نسبی به ترتیب 00000101 (05H) و 0000011 (03H) است [سه بیت مهم اول در واقع بیت های آدرس هستند که برای سنسورهای SHT1x و SHT7x همیشه صفر هستند و 5 بیت باقیمانده بیتهای دستور می باشند ].

قبل از ارسال دستور ، توالی انتقال شروع دیتا یا Transmission Start باید توسط میکروکنترلر صادر شود که شامل LOW کردن خط DATA در حالی که خط SCK بالا یا HIGH است ، به دنبال آن ایجاد یک پالس ساعت یا کلاک توسط خط SCK و HIGH کردن مجدد خط DATA ، در حالی که خط SCK HIGH است .

سیگنال شروع ارسال سنسور sht
سیگنال شروع ارسال سنسور sht

پس از دریافت دستور از میکروکنترلر ، سنسور با پایین آوردن یا LOW کردن خط DATA برای یک کلاک ساعت ، پالس تأیید یا acknowledge pulse صادر می کند . پس از لبه پایین رونده یا falling از پالس ساعت 8 ام در خط SCK (مربوط به بیت 8 فرمان ارسال شده) وضعیت خط DATA تا پایان پالس ساعت 9 ام در وضعیت LOW قرار می گیرد .

پس از صدور دستور اندازه گیری (“00000101” برای رطوبت نسبی ، “00000011” برای دما) میکروکنترلر باید منتظر بماند تا اندازه گیری به پایان برسد ، که حداکثر 20/80/320 میلی ثانیه برای وضوح  8bit/12bit/14bit  طول می کشد . در طول این مدت زمان اندازه گیری ما می توانیم توسط میکروکنترلر کلاک توقف یا پایان را بر روی خط SCK ایجاد کنیم و خط DATA را نیز آزاد کنیم .

پس از اتمام اندازه گیری ، سنسور با پایین آوردن یا LOW کردن خط DATA یک سیگنال Data Ready تولید می کند. با دریافت سیگنال Data Ready ، میکروکنترلر می تواند کلاک را روی خط SCK دوباره راه اندازی کند تا داده های اندازه گیری را بازخوانی کند. داده های اندازه گیری تا زمان بازخوانی در حافظه سنسور ذخیره می شوند.

بازخوانی شامل دو بایت داده اندازه گیری و یک بایت CRC checksum است. صحت انتقال داده ها توسط یک بایت یا 8 بیت checksum تأمین می شود که اختیاری است . میکروکنترلر باید با پایین آوردن خط DATA هر بایت را تأیید کند. بایت ها ابتدا با MSB منتقل می شوند . برای اندازه گیری 8 بیتی ، اولین بایت استفاده نمی شود.

در صورت استفاده نشدن CRC-8 ، میکروکنترلر پس از دریافت LSB داده های اندازه گیری ، می تواند با بالا نگه داشتن ACK ارتباطات را قطع کند. بعد از اتمام اندازه گیری و برقراری ارتباط ، دستگاه به طور خودکار به حالت خواب برمی گردد. شکل زیر از دیتاشیت SHT7x گرفته شده و توالی اندازه گیری رطوبت نسبی را نشان می دهد.

توالی سیگنال دیتا و کلاک سنسور sht
توالی سیگنال دیتا و کلاک سنسور sht

هنگام ارسال فرمان به سنسور SHT ، وضعیت خط DATA در لبه بالارونده پالس ساعت خط SCK  و زمانی که SCK ثابت است معتبر می باشد . با این حال ، برای خواندن داده ها از سنسور ، خط DATA تا لبه بالا رونده پالس ساعت بعدی معتبر است .

رجیستر وضعیت سنسور SHT

این یک رجیستر 8 بیتی در داخل سنسورهای SHT1x / SHT7x است که برخی از عملکردهای پیشرفته مانند انتخاب رزولوشن اندازه گیری ، اخطار پایان باتری ، بارگیری مجدد OTP یا استفاده از heater روی تراشه را کنترل می کند . این رجیستر از طریق دستورات مناسب قابل خواندن و نوشتن است. تعریف بیت فردی از رجیستر وضعیت در زیر نشان داده شده است:

رجیستر وضعیت سنسور sht
رجیستر وضعیت سنسور sht

دستورات خواندن و نوشتن در Status Register به ترتیب 00000111 (07H) و 00000110 (06H) است. برای نوشتن یک بایت به Status Register ، میکروکنترلر باید دستور نوشتن (06H) و به دنبال آن بایت داده را ارسال کند. سنسور باید همزمان با دریافت دستور و بایت داده ، سیگنال تأیید ایجاد کند.

ضرایب کالیبراسیون سنسور در داخل یک حافظه کوچک یکبار قابل برنامه ریزی (OTP) کوچک از قبل برنامه ریزی شده است. در هنگام اندازه گیری از این ضرایب توسط سنسور استفاده می شود. پاک کردن بیت 1 از رجیستر وضعیت ، بارگذاری ضرایب کالیبراسیون در هر اندازه گیری را غیرفعال می کند و بنابراین روند تبدیل را تسریع می کند.

این سنسور همچنین دارای یک عنصر گرمایش روی تراشه است که می تواند با تنظیم بیت 2 از رجیستر وضعیت روشن شود . اگر بخاری یا Heater سنسور روشن باشد ، ممکن است دمای سنسور 5 الی 10 درجه سانتیگراد افزایش یابد . بخاری روی تراشه می تواند برای بررسی تأثیر افزایش دما در اندازه گیری رطوبت نسبی مفید باشد . بیت 6 رجیستر وضعیت یک پرچم فقط خواندنی است که با کاهش ولتاژ تغذیه سنسور به زیر 2.47 ولت ، مقدار آن به 1 تغییر می کند .

توالی تنظیم مجدد اتصال یا Connection Reset 

اگر به دلایلی ارتباط بین میکروکنترلر و سنسور مختل شود ، ممکن است از توالی سیگنال زیر برای تنظیم مجدد ارتباط استفاده شود . به یاد داشته باشید که فقط ارتباط یا کانکشن بین سنسور و میکروکنترلر تنظیم مجدد می شود و مقدار Status Register  حفظ می شود و تغییر نمی کند . توالی تنظیم مجدد شامل تغییر وضعیت خط SCK نه بار(9) یا بیشتر است ، در حالی که خط DATA را بالا نگه می دارد.

ضرایب تبدیل برای رطوبت و دما نسبی سنسور SHT

به منظور تبدیل مقدار دیجیتال خوانده شده از سنسور به مقادیر فیزیکی مناسب (رطوبت و دما نسبی) ، دیتاشیت ضرایب و معادلات تبدیل بهینه را ارائه می دهد . سنسور رطوبت از نظر طراحی غیر خطی است و بنابراین به یک معادله تبدیل نیاز دارد ، در حالی که سنسور دما کاملاً خطی است. در دماهای متفاوت از 25 درجه سانتیگراد (~ 77 درجه فارنهایت) سیگنال رطوبت برای جبران اثر دما نیاز به اصلاح دارد. ضرایب تصحیح و معادله نیز در دیتاشیت ارائه شده است.

معادله محاسبه رطوبت نسبی (از دیتا شیت SHT7x)
معادله محاسبه رطوبت نسبی (از دیتا شیت SHT7x)
ضرایب جبران دما برای RH (از دیتاشیت SHT7x)
ضرایب جبران دما برای RH (از دیتاشیت SHT7x)
ضرایب تبدیل دما (از دیتاشیت SHT7x)
ضرایب تبدیل دما (از دیتاشیت SHT7x)

تست عملی و مقایسه سنسورهای SHT11 , SHT75

به طور همزمان سنسورهای SHT11 و SHT75 را به پایه های یک میکروکنترلر متصل می کنیم و مقادیر اندازه گیری شده رطوبت و درجه حرارت نسبی را از هر دو در یک LCD  کاراکتری 16X2 نمایش می دهیم . این دو سنسور در کنار یکدیگر قرار گرفته اند و قرار است مقادیر یکسانی را برای رطوبت و دما نسبی اندازه گیری کنند.

نکته مهم
دیتا شیت توصیه می کند از یک مقاومت پول آپ 10K در خط DATA استفاده کنید و خط SCK ممکن است بدون مقاومت پول آپ هم به خوبی کار کند. با این حال ، بر روی بوردهای  SHT11 موجود در بازار مقاومتهای پول آپ برای هر دو خط SCL و SDA وجود دارد .مقاومت ها هنگام پایین آمدن خطوط ، مقداری گرما را پراکنده می کنند . این ممکن است خطایی را در اندازه گیری دما و رطوبت نسبی ایجاد کند ، زیرا مقاومت ها در نزدیکی سنسور بر روی یک بورد قرار دارند .

به منظور به حداقل رساندن این اتلاف گرما ، پین های پورت میکروکنترلر که خطوط SCK و SDA را کنترل می کند ، باید موقعی که پایه ها در حالت بیکار هستند به عنوان پایه های ورودی تعریف شوند . اگر آنها را به عنوان خروجی با حالت 0  منطقی بگذارید ، جریان مداومی از طریق مقاومت های پول آپ جریان می یابد که گرمای بیشتری را پراکنده می کند و دمای سنسور را افزایش می دهد.

تصویر زیر دو مجموعه قرائت دما و رطوبت نسبی نشان داده شده روی LCD را نشان می دهد که توسط سنسورهای SHT11 و SHT75 اندازه گیری شده اند . این قرائت ها بلافاصله پس از روشن شدن مدار انجام شده است .

قرائت دما و رطوبت نسبی از دو سنسور sht11 , sht75
قرائت دما و رطوبت نسبی از دو سنسور sht11 , sht75

قرار است سنسورها اندازه گیری ها را در هر 2 ثانیه انجام دهند. بخاطر اتلاف گرما در مقاومتهای پول آپ کنار سنسور ، اندازه گیری دما از ماژول SHT11 به آرامی افزایش یافته و از مقدار SHT75 دور می شود.

اختلاف SHT11 به دلیل اتلاف گرما از SHT75
اختلاف SHT11 به دلیل اتلاف گرما از SHT75

در صورت عدم تغییر جهت پین SCK به ورودی ، مقدار SHT11 افزایش می یابد . تصویر زیر را ببینید که اندازه گیری دما SHT11 بیش از 2 درجه سانتیگراد بالاتر از SHT75 است. این افزایش در کمتر از دو دقیقه اول پس از روشن شدن مدار رخ داده است. در اینجا می توانید رابطه معکوس دما و رطوبت را نیز مشاهده کنید. با افزایش دما ، رطوبت نسبی کاهش می یابد.

دمای ماژول SHT11 به دلیل اتلاف توان در مقاومتهای پول آپ در شرایط بیکار ، به طور قابل توجهی افزایش می یابد
دمای ماژول SHT11 به دلیل اتلاف توان در مقاومتهای پول آپ در شرایط بیکار ، به طور قابل توجهی افزایش می یابد

نتیجه گیری

سری سنسورهای رطوبت Sensirion در اندازه گیری رطوبت و دما نسبی به دلیل پردازش سیگنال داخل خود سنسور و ارائه خروجی های کاملاً کالیبره شده بسیار مفید هستند. سنسور با یک میکروکنترلر از طریق دو سیم سریال DATA و SCK ارتباط برقرار می کنند.

خط DATA به مقاومت pull-up خارجی نیاز دارد که با پایین آمدن خط DATA مقداری از انرژی را به عنوان گرما پراکنده می کند . بنابراین ، به خصوص برای سنسور نوع SMD مانند SHT1x ، باید در قرار دادن مقاومت همراه با سنسور روی همان ماژول دقت شود . پایه های پورت میکروکنترلر که SCK و DATA را کنترل می کند باید به عنوان ورودی در شرایط بیکار تنظیم شود تا اتلاف حرارت در مقاومت های pull-up به حداقل برسد.

محاسبه نقطه شبنم یا dew point در سنسور sht

سنسورهای SHT1x / 7x نمی توانند نقطه شبنم یا dew point را مستقیماً اندازه گیری کنند ، اما می توانند از اندازه گیری مقدار رطوبت و دما و محاسبه توسط معادله ریاضی محاسبه شود . دیتاشیت معادله و ضرایب لازم مورد نیاز برای محاسبه نقطه شبنم را فراهم می کند. برخی از جزئیات دیگر مانند پایداری سنسور ، شرایط عادی کار ، ملاحظات سیم کشی و غیره وجود دارد که در اینجا بحث نشده است ، اما خوانندگان می توانند این اطلاعات را در دیتاشیت مطالعه کنند.

همچنین بخوانید >> آموزش راه اندازی سنسور dht22

پروژه راه اندازی سنسور رطوبت و دما sht11 , sht75 توسط stm32 و نمایش بر روی lcd کاراکتری

  • پروژه شامل کتابخانه و مثال برای راه اندازی سنسورهای رطوبت و دما sht10,sht11,sht15 sht71,sht75 می باشد .
  • پروژه در محیط نرم افزار stm32cubeide ایجاد شده و توسط توابع HAL نوشته شده است و درون کامپایلر keil نیز قابل پیاده سازی می باشد .
  • پیکربندی و اتصال پایه های سنسور SHT و LCD کاراکتری بر روی پایه های دلخواه میکروکنترلر توسط نرم افزار stm32cubemx ، بدون نیاز به تغییرات در فایل کتابخانه انجام می شود .
راه اندازی سنسور رطوبت و دما sht11
راه اندازی سنسور رطوبت و دما sht11

  نویسنده : حسین غیاثوند
 خرید و دانلود در لحظه :

Admin

در حال حاضر در زمینه الکترونیک ، طراحی PCB و برنامه نویسی فعالیت می کنم . علاقه مند به یادگیری و اشتراک گذاری آموخته های خود هستم .
guest
4 دیدگاه
قدیمی ترین
جدیدترین محبوب ترین
بازخورد داخلی
مشاهده همه نظرات