SHT15 یک سنسور دیجیتال ساخت کمپانی Sensirion برای اندازهگیری رطوبت است که میزان رطوبت را به صورت کاملا کالیبره شده اندازهگیری میکند. به خاطر این که چیزی که توسط این سنسور اندازهگیری میشود ، رطوبت نسبی محیط است و رطوبت نیز به دما وابسته است پس میتوان به وسیلهی SHT15 علاوه بر اندازهگیری میزان رطوبت نسبی محیط ، دما را نیز اندازهگیری نمود در واقع با استفاده از این سنسور دیگر نیاز به استفاده از سنسور دما به صورت جداگانه نخواهد بود. در این آموزش قصد داریم طریقه اتصال سنسور SHT 15 به آردوینو و کدنویسی آن را آموزش دهیم پس در ادامهی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.
سنسور دما رطوبت SHT15
سنسور SHT15 یک سنسور دما و رطوبت دیجیتال است که توسط شرکت Sensirion AG توسعه داده شده است، یک شرکت سوئیسی متخصص در فناوری سنسورها. این سنسور قسمتی از سری سنسورهای SHTxx شرکت Sensirion میباشد که در بسیاری از برنامهها برای اندازهگیری شرایط محیطی استفاده میشود.سنسور SHT15 به خاطر دقت، قابلیت اعتماد و مصرف کم انرژیاش شناخته میشود. این سنسور از یک سنسور رطوبت ظرفیتی و یک سنسور دمای بازهٔ گپی برای اندازهگیری رطوبت نسبی (RH) و دما به ترتیب استفاده میکند. خروجی این سنسور به صورت دیجیتال است، که باعث میشود ارتباط با میکروکنترلرها و دستگاههای الکترونیکی سادهتر شود.سنسور SHT15 از طریق پروتکل I2C (Inter-Integrated Circuit) ارتباط برقرار میکند که اجازه میدهد به راحتی در سیستمهای الکترونیکی یکپارچه شود. این سنسور خروجی کالیبره و خطیسازی شده را ارائه میدهد و نیازی به مدارهای کالیبراسیون اضافی ندارد که فرآیند یکپارچهسازی را سادهتر میکند.سنسور SHT15 در محیطهای مختلفی از جمله ایستگاههای هواشناسی، سیستمهای نظارت محیطی، کنترل HVAC (گرمایش، تهویه و تهویه هوا)، اتوماسیون صنعتی و انواع الکترونیک مصرفی مورد استفاده قرار گرفته است.
ویژگیهای سنسور تشخیص رطوبت و دما SHT15
- ولتاژ کاری ۲٫۴ الی ۵٫۵٫ ولت
- رنج اندازه گیری رطوبت ۰ تا ۱۰۰ درصد RH
- دقت اندازهگیری رطوبت مثبت و منفی ۲ درصد RH (در بازه ۱۰ تا ۹۰ درصد RH)
- رنج اندازهگیری دما : منفی ۴۰ الی ۱۲۳٫۸ درجه سانتیگراد
- دقت اندازه گیری دما: ۰٫۳± درجه سانتیگراد
- توان متوسط ۱۵۰ میکرووات
- زمان پاسخگویی رطوبت ۸ ثانیه
- زمان پاسخگویی سریع
اتصال SHT15 به آردوینو
sht15 برای برقراری ارتباط با میکروکنترلر از اتصال دو سیمه شبیه I2C بهره میگیرد ولی پروتکل I2C نمیباشد(فقط شبیه I2C). بنابراین ما قادر نخواهیم بود تا از خطوط اختصاصی I2C آردوینو برای برقراری بین سنسور و آردوینو استفاده کنیم. جنبهی منفی این کار این است که گرفتن اطلاعات از این سنسور کمی کند میباشد و جنبهی مثبت این است که میتوانید به طور دلخواه آن را به هر کدام از دو پین دیجیتال که میخواهید متصل کنید که ما در این پروژه از پینهای دیجیتال ۲ و ۳ استفاده میکنیم.
قبل از اینکه SHT15 را لحیم کنید…
اگر این سنسور را به صورت مازول در اختیار ندارید و قصد لحیم کردن آن را بر روی برد را دارید باید توجه داشته باشید که این سنسور به هیچ عنوان قابلیت شت و شو ندارد! در واقع برای لحیم کردن این برد نباید از روغن لحیم و محلول پاک کنندهی برد استفاده کنید و باید شدیدا مراقب باشید تا تحت هیچ شرایطی نگذارید این سنسور خیس شود.
بعد از اینکه sht15 را لحیم کردید …
برای اینکه بنوانید مقداری دقیق و کالیبره از این سنسور دریافت کنید ، لازم است سنسور حداقل ۱۲ ساعت در رطوبت بالای ۷۵٪ نگهداری شود تا به پلیمر درون سنسور اجازهی آبرسانی داده شود. اگر شما این کار را انجام ندهید ، ممکن است هنگامی که سنسور شما در معرض شرایط محیطی قرار گیرد نتیجهای نادرستی از خود نشان دهد. همچنین برای بهبود عملکرد این سنسور توصیه میشود که سنسور را به مدت ۵ روز در محیطی با رطوبت بالای ۴۰٪ قرار دهید.( من نمیدانم که شما چگونه قصد دارید این کار را انجام دهید اما به گفتهی یک نفر از از دوستان : آن را در یک محفظهی فشردهی قفل شده با یک حولهی مرطوب بدون هیچگونه تماسی به مدت ۱۲ ساعت قرار دهید ? )
کد آردوینو
کتابخانهی مخصوص سنسورهای SHT10 , SHT11 , SHT15 را از لینک زیر دانلود کنید و طبق آموزش آن را به نرم افزار آردوینو خود اضافه کنید.
معرفی توابع و کلاس ها
قبل از هر کاری میبایست از کلاس SHT یک کلاس بسازیم و dataPin , clockPin را طبق اتصالات مدار به عنوان آرگمان ورودی به آن وارد کنید.
SHT1x sht1x(dataPin, clockPin);
برای خواندن دما دوتابع وجود دارد که یکی دما را بر حسب درچه فارنهایت و دیگیری بر حسب درجه سانتی گراد برمیگرداند برای مثال:
float tempC = sht1x.readTemperatureC(); float tempF = sht1x.readTemperatureF();
اکنون برای تست سنسور کدهای زیر را بر روی آردوینو خود آپلود کنید و نتیجه را بر روی سریال مانیتور نرم افزار آردوینو مشاهده کنید.
#include <SHT1x.h> // Specify data and clock connections and instantiate SHT1x object #define dataPin 10 #define clockPin 11 SHT1x sht1x(dataPin, clockPin); void setup() { Serial.begin(38400); // Open serial connection to report values to host Serial.println("Starting up"); } void loop() { float temp_c; float temp_f; float humidity; // Read values from the sensor temp_c = sht1x.readTemperatureC(); temp_f = sht1x.readTemperatureF(); humidity = sht1x.readHumidity(); // Print the values to the serial port Serial.print("Temperature: "); Serial.print(temp_c, DEC); Serial.print("C / "); Serial.print(temp_f, DEC); Serial.print("F. Humidity: "); Serial.print(humidity); Serial.println("%"); delay(2000); }
تحلیل کد آردوینو SHT
- #include <SHT1x.h>: این دستور، کتابخانه SHT1x را به برنامه اضافه میکند تا از توابع مربوط به خواندن دما و رطوبت از سنسور استفاده کنیم.
- #define dataPin 10 و #define clockPin 11: این دو دستور، پینهای مورد استفاده برای ارتباط با سنسور SHT1x را تعریف میکنند.
- SHT1x sht1x(dataPin, clockPin);: این دستور یک شیء از کلاس SHT1x با استفاده از پینهای تعریف شده میسازد که از آن برای انجام خواندن دما و رطوبت استفاده میشود.
- در تابع setup(): اتصال سریال با سرعت ۳۸۴۰۰ بیت بر ثانیه برای ارتباط با کامپیوتر تعریف میشود.
- در تابع loop(): دما و رطوبت از سنسور خوانده میشود و مقادیر آنها به صورت دسیمال (اعشاری) و با واحد درجه سانتیگراد و فارنهایت نمایش داده میشود. سپس مقدار رطوبت نیز نمایش داده میشود. این عملکرد به طور متناوب تکرار میشود و بین هر بار تکرار، دستور delay(2000) میگذارد که یک تاخیر حدوداً ۲ ثانیهای ایجاد میکند تا دادهها با فاصلههای زمانی تکرار شوند.
سخت افزار مورد نیاز
سنسور دما و رطوبت دیجیتال SHT15
سلام ببخشید میشه پروژه نشون دادن دما ورطوبت رو با همین سنسور رو LCDبزارید
ممنون میشم
با سلام و تشکر از شما
کاربر گرامی در این خصوص لطفا به آموزش ماژول دما و رطوبت DHT11 از پکیج ۳۷ سنسور آردوینو با LCD مراجعه کنید. موارد شبیه هستند، کافیست کمی خودتان تلاش کنید.
سلام خسته نباشید این به جای سنسور sht15 می شود sht 11 بگذاریم
با سلام و تشکر از شما
دیتاشیتها را باید بررسی کنید. در صورتی که از یک کتابخانه استفاده میکنند و همسان هستند، ممکن است با همین کدها کار کند.
سلام ببخشید این کد ها را می توان روی اردوینو مگا نیز نصب کرد و باید به کدام پایه ها متصل باشد. ممنون
با سلام
بله محدودیتی وجود ندارد. از پایه ۱۰ و ۱۱ طبق کدها جهت اتصال به برد آردوینو Mega2560 استفاده کنید.
سلام میشه برای همین برنامه گزینه کالیبره گذاشت اگر میشه ممنون میشم راهنمایی کنید
با سلام
خیر، کدها را بایستی تغییر دهید.
با سلام و عرض خسته نباشید.
ببخشید میشه از همین کتابخانه برای سنسور معروف sht 20 استفاده کرد؟
با سلام
این مورد تست نشده است اما برای هر سنسور کتابخانه ی منحصر به فردی توسعه داده شده است که میتوانید از آن ها استفاده کنید.