آردوینو پروژه های آردوینو

SHT15 رطوبت و دماسنج دیجیتال آردوینو

دماسنج و رطوبت سنج آردوینو sht 15
نوشته شده توسط علیرضا قربانی

SHT15 یک سنسور دیجیتال ساخت کمپانی Sensirion برای اندازه‌گیری رطوبت است که میزان رطوبت را به صورت کاملا کالیبره شده اندازه‌گیری می‌کند. به خاطر این که چیزی که توسط این سنسور اندازه‌گیری می‌شود ، رطوبت نسبی محیط است و رطوبت نیز به دما وابسته است پس  می‌توان به وسیله‌ی SHT15 علاوه بر اندازه‌گیری میزان رطوبت نسبی محیط ، دما را نیز اندازه‌گیری نمود در واقع  با استفاده از این سنسور دیگر نیاز به استفاده از سنسور دما به صورت جداگانه نخواهد بود. در این آموزش قصد داریم طریقه‌ اتصال سنسور SHT 15 به آردوینو و کدنویسی آن را آموزش دهیم پس در ادامه‌ی آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

سخت افزار مورد نیاز

آردوینو UNO

سنسور دما و رطوبت دیجیتال SHT15

ویژگی‌های سنسور تشخیص رطوبت و دما SHT15

  • ولتاژ کاری ۲٫۴ الی ۵٫۵٫ ولت
  • رنج اندازه گیری رطوبت ۰ تا ۱۰۰ درصد RH
  • دقت اندازه‌گیری رطوبت  مثبت و منفی ۲ درصد RH (در بازه ۱۰ تا ۹۰ درصد RH)
  • رنج اندازه‌گیری دما : منفی ۴۰ الی ۱۲۳٫۸ درجه سانتی‌گراد
  • دقت اندازه گیری دما: ۰٫۳± درجه سانتی‌گراد
  • توان متوسط ۱۵۰ میکرووات
  •  زمان پاسخ‌گویی رطوبت ۸ ثانیه
  • زمان پاسخ‌گویی  سریع

 

 

اتصال SHT15 به آردوینو

sht-arduino

اتصال sht15 به آردوینو

 

sht15 برای برقراری ارتباط  با میکروکنترلر از اتصال دو سیمه شبیه I2C بهره می‌گیرد ولی پروتکل I2C نمی‌باشد(فقط شبیه I2C). بنابراین ما قادر نخواهیم بود تا از خطوط اختصاصی I2C آردوینو برای برقراری بین سنسور و آردوینو استفاده کنیم. جنبه‌ی منفی این کار این است که گرفتن اطلاعات از این  سنسور کمی کند می‌باشد و جنبه‌ی مثبت این است که می‌توانید به طور دلخواه آن را به هر کدام از دو پین دیجیتال  که می‌خواهید متصل کنید که ما در این پروژه از پین‌های دیجیتال ۲ و ۳ استفاده می‌کنیم.

 

اتصال sht15 به میکروکنترلر

اتصال sht15 به میکروکنترلر

 

 

قبل از اینکه SHT15 را لحیم کنید…

اگر این سنسور را به صورت مازول در اختیار  ندارید و قصد لحیم کردن آن را بر روی برد را دارید  باید توجه داشته باشید که این سنسور به هیچ عنوان قابلیت شت و شو ندارد! در واقع برای لحیم کردن این برد نباید از روغن لحیم و محلول پاک کننده‌ی برد استفاده کنید و باید شدیدا مراقب باشید تا تحت هیچ شرایطی نگذارید این سنسور خیس شود.

 

 

بعد از اینکه sht15 را لحیم کردید …

برای اینکه بنوانید مقداری دقیق و کالیبره از این سنسور دریافت کنید ، لازم است سنسور حداقل ۱۲ ساعت در رطوبت بالای ۷۵٪ نگهداری شود تا به پلیمر درون سنسور اجازه‌ی آب‌رسانی داده شود. اگر شما این کار را انجام ندهید ، ممکن است هنگامی که سنسور شما در معرض شرایط محیطی قرار گیرد نتیجه‌ای  نادرستی از خود نشان دهد. همچنین برای بهبود عمل‌کرد این سنسور توصیه می‌شود که سنسور را به مدت ۵ روز در محیطی با رطوبت بالای ۴۰٪ قرار دهید.( من نمیدانم که شما چگونه قصد دارید این کار را انجام دهید اما به گفته‌ی یک نفر از  از دوستان : آن را در یک محفظه‌ی فشرده‌ی قفل شده با یک حوله‌ی مرطوب بدون هیچ‌گونه تماسی به مدت ۱۲ ساعت قرار دهید ?   )

 

 

کد نویسی

کتابخانه‌ی مخصوص سنسور‌های SHT10 , SHT11 , SHT15 را از لینک  زیر دانلود کنید و طبق آموزش آن را به نرم افزار آردوینو خود اضافه کنید.

دانلود کتابخانه سنسور SHT1x

آموزش نصب کتابخانه در arduino

 

 

معرفی توابع و کلاس ها

 

قبل از هر کاری می‌بایست از کلاس 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);
}

 

درباره نویسنده

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۰ دیدگاه