ویژگیهای ماژول سنسور دما و رطوبت SHT31
ماژول سنسور دما و رطوبت SHT31 یک ماژول بسیار دقیق و با سرعت پاسخ بسیار بالاست. این ماژول توانایی اندازه گیری دما را در محدوده وسیع 40– تا 90+ درجه سلیسیوس و با دقت 0.3 درجه سلیسوس دارد. همچنین رطوبت هوا را در محدوده 0 تا %100 و با دقت %2 محاسبه میکند. پروتکل ارتباطی این ماژول نیز I2C است که می تواند تا فرکانس 1Mhz اطلاعات را انتقال دهد. همچنین این ماژول یک پایه آدرس نیز دارد که با آن میتوان آدرس پروتکل I2C را تنظیم نمود.
معرفی پایه ها (Pinout) ماژول سنسور دما و رطوبت SHT31
ماژول سنسور دما و رطوبت SHT31 دارای 6 پایه به شرح زیر است:
- GND: زمین
- VCC: تغذیه ماژول – 5 ولت
- SCL: پایه کلاک برای پروتکل I2C
- SDA: پایه دیتا برای پروتکل I2C
- RST: پایه ریست
- ADD: پایه تنظیم آدرس برای پروتکل I2C (در حالت LOW بودن این پایه، آدرس 0x44 و در حالت HIGH، آدرس 0x45 خواهد بود.)
پین اوت (Pinout) این سنسور را میتوانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول سنسور دما و رطوبت SHT31
گام اول: سیم بندی
مطابق مدار زیر، ماژول را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
به Library manager رفته و کتابخانه Adafruit SHT31 Library را نصب کنید.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید. پس از آپلود کد، پنجره Serial Monitor را باز کنید.
/*
modified on Dec 30, 2020
Modified by MehranMaleki from Arduino Examples
Home
*/
#include <Arduino.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"
Adafruit_SHT31 sht31 = Adafruit_SHT31();
void setup() {
Serial.begin(9600);
while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("SHT31 test");
//Set to 0x45 for alternate i2c addr
if (! sht31.begin(0x44)) {
Serial.println("Couldn't find SHT31");
while (1) delay(1);
}
}
void loop() {
float t = sht31.readTemperature();
float h = sht31.readHumidity();
// check if 'is not a number'
if (! isnan(t)) {
Serial.print("Temperature = ");
Serial.print(t);
Serial.print("*C");
Serial.print("\t\t");
}
else {
Serial.println("Failed to read temperature");
}
// check if 'is not a number'
if (! isnan(h)) {
Serial.print("Humidity = %");
Serial.println(h);
}
else {
Serial.println("Failed to read humidity");
}
delay(1000);
}
در کد بالا، اطلاعات دما و رطوبت در هر ثانیه از سنسور دریافت شده و در پنجره Serial Monitor نمایش داده میشود.
خروجی کد به شکل زیر است.