در این قسمت از آموزش های آردوینو سعی بر آن داریم، پروژه ای را طراحی کنیم که بتواند به طور همزمان رطوبت و دما را اندازه گیری کند. در واقع سنسوری را برای این کار انتخاب کردیم که بتواند همزمان دما و رطوبت را با دقت بالا اندازه گیری کند. که ما در این پروژه از ماژول SHT15 استفاده کرده ایم. این سنسور علاوه بر اندازه گیری رطوبت نسبی قادر به اندازه گیری دما نیز است و دیگر نیازی به یک سنسور جداگانه برای اندازه گیری دما نیست. این پروژه به معرفی سنسور SHT15، نحوه اتصال آن به آردوینو، برنامه نویسی با نرم افزار آردوینو، نصب کتابخانه، معرفی دیتا شیت SHT1X و …. پرداخته است. اگر به دنبال راه حلی ساده و در عین حال دقیق جهت اندازه گیری رطوبت و دما محیط خود هستید، پیشنهاد می کنیم متن آموزشی زیر را با دقت مطالعه کنید.
سنسور رطوبت و دماسنج SHT15
سنسور SHT15 برای اندازه گیری رطوبت نسبی محیط، دما و ثبت داده ها بسیار ایداه آل و مفید است و از آن می توانید در ایستگاه های هواشناسی استفاده کنید.
ویژگی های سنسور SHT15
1. ولتاژ کاری بین 2.4 ولت تا 5.5 ولت
2. دارای دو فاکتور اندازه گیری دما و رطوبت
3. خروجی دیجیتال
4. رنج اندازه گیری رطوبت بین 0 تا 100 درصد RH
5. دقت اندازه گیری رطوبت 2± درصد RH (یا 10 تا 90 درصد RH)
6. تکرارپذیری RH برابر است با؛ 1± درصد RH
7. دقت اندازه گیری دما 0.3± درجه سانتی گراد
8. رنج اندازه گیری دما بین 40- درجه سانتی گراد تا 123.8+ درجه سانتی گراد
9. توان متوسط 150 میکرووات
10. زمان پاسخ گویی سریع
اتصال سنسور SHT15 به برد آردوینو
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
سنسور اندازه گیری دما و رطوبت دیجیتال SHT15 | 1 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
نحوه اتصال ماژول SHT15 به برد آردوینو
1. پین VCC سنسور را به پین 3.3 ولت یا 5 ولت آردوینو متصل کنید.
2. پین GND سنسور را به پین GND آردوینو اتصال دهید.
3. پین Data سنسور را به پین A4 آردوینو وصل کنید.
4. پین SCK سنسور را به پین A5 آردوینو متصل نمائید.
سنسور SHT15 برای تبادل اطلاعات با دستگاه های خارجی از 2 خروجی دیجیتال استفاده می کند چیزی شبیه به پروتکل ارتباطی I2C، البته توجه داشته باشید پروتکل ارتباطی سنسور SHT15 ارتباط I2C نیست بلکه فقط شبیه آن است. به همین دلیل برای راه اندازی این سنسنور بهتر است از پایه های SDA و SCL که بر روی برد آردوینو قرار دارند استفاده کنید. پایه های SDA و SCL در برد آردوینو مدل UNO به ترتیب پایه های A4 و A5 هستند.
برنامه نویسی پروژه
قبل از برنامه نویسی در نرم افزار آردوینو ابتدا کتابخانه SHT1X را دانلود نموده و طبق توضیحات زیر، آن را به زیرمجموعه های کتابخانه خود در نرم افزار آردوینو اضافه کنید.
نصب کردن کتابخانه SHT1X
لازم به ذکر است که نرم افزار برنامه نویسی آردوینو به صورت پیش فرض توانایی پشتیبانی از SHT1X را ندارد بنابراین ما باید library (کتابخانه یا برنامه) مورد نیاز را بر روی آن نصب کنیم. این فرآیند بسیار ساده و راحت است که در زیر نحوه استفاده از آن را توضیح داده ایم.
1. در مرحله اول ابتدا آخرین (جدیدترین) نسخه کتابخانه (SHT1X) را از لینک فوق دانلود کنید.
2. پس از دانلود فایل، نرم افزار آردوینو را باز کنید.
3. مسیر زیر را دنبال کنید و در پنجره باز شده فایل کتابخانه SHT1X را که قبلا دانلود کرده اید را انتخاب نمائید:
…Sketch > Include Library > Add .ZIP Library
بعد از اتصال قطعات به یکدیگر و نصب کتابخانه، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
/********************************* SHT15 Example This example shows how to get the temperature in F or C and humidity Connections: GND -> A2 Vcc -> A3 DATA -> A4 SCK -> A5 ******************/ #include <SHT1X.h> //variables for storing values float tempC = 0; float tempF = 0; float humidity = 0; //Create an instance of the SHT1X sensor SHT1x sht15(A4, A5);//Data, SCK //delacre output pins for powering the sensor int power = A3; int gnd = A2; void setup() { Serial.begin(9600); // Open serial connection to report values to host pinMode(power, OUTPUT); pinMode(gnd, OUTPUT); digitalWrite(power, HIGH); digitalWrite(gnd, LOW); } //---------- void loop() { readSensor(); printOut(); delay(1000); } //---------- void readSensor() { // Read values from the sensor tempC = sht15.readTemperatureC(); tempF = sht15.readTemperatureF(); humidity = sht15.readHumidity(); } //---------- void printOut() { Serial.print(" Temp = "); Serial.print(tempF); Serial.print("F, "); Serial.print(tempC); Serial.println("C"); Serial.print(" Humidity = "); Serial.print(humidity); Serial.println("%"); } |