ویژگی های ماژول سنسور دما و رطوبت SI7021 با رابط I2C
سنسور دما و رطوبت SI7021 یک آیسی CMOS یکپارچه با پروتکل ارتباطی I2C میباشد. این سنسور کالیبره میباشد و اطلاعات کالیبراسیون آن بر روی یک حافظه غیر فرار بر روی تراشه ذخیره شدهاست. دقت اندازهگیری سنسور رطوبت %3 و دقت سنسور دما 4 درجه سانتیگراد است.
از این سنسور در کاربردهای گوناگون مانند ترموستات و رطوبتسنج، تنفس درمانی، ایستگاههای هواشناسی، تبلت، موبایل و …. استفاده میشود.
- رنج اندازه گیری رطوبت : 0 تا %100
- رنج اندازه گیری دما : 40- درجه سانتیگراد تا 125+ درجه سانتیگراد
- ولتاژ کاری سنسور: 1.9 ولت تا 3.6 ولت
دیتاشیت سنسور SI7021 را می توانید از اینجا دانلود کنید.
معرفی پایه ها (Pinout) ماژول سنسور دما و رطوبت SI7021 با رابط I2C
ماژول سنسور SHT31 دارای 4 پایه به شرح زیر است:
- VCC: تغذیه ماژول – 9 تا 3.6 ولت
- GND: زمین
- SDA: پایه دیتا پروتکل I2C
- SCL: پایه کلاک پروتکل I2C
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول سنسور دما و رطوبت SI7021 با رابط I2C
گام اول: سیم بندی
مطابق مدار زیر، سنسور را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
مانند شکل زیر، در بخش کتابخانهی آردوینو عبارت SI7021 را سرچ کرده و آن را نصب کنید.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید.
/*
SI7021-Temperature-Humidity-Sensor
modified on 08 Nov 2020
by Amir Mohammad Shojaee @ Electropeak
Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="“Home” — Electropeak" src="https://electropeak.com/learn/embed/#?secret=t3YbHce9dc" data-secret="t3YbHce9dc" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
Based on Adafruit Si7021-library Example
*/
#include "Adafruit_Si7021.h"
bool enableHeater = false;
uint8_t loopCnt = 0;
Adafruit_Si7021 sensor = Adafruit_Si7021();
void setup() {
Serial.begin(9600);
// wait for serial port to open
while (!Serial) {
delay(10);
}
Serial.println("Si7021 test!");
if (!sensor.begin()) {
Serial.println("Did not find Si7021 sensor!");
while (true)
;
}
Serial.print("Found model ");
switch(sensor.getModel()) {
case SI_Engineering_Samples:
Serial.print("SI engineering samples"); break;
case SI_7013:
Serial.print("Si7013"); break;
case SI_7020:
Serial.print("Si7020"); break;
case SI_7021:
Serial.print("Si7021"); break;
case SI_UNKNOWN:
default:
Serial.print("Unknown");
}
Serial.print(" Rev(");
Serial.print(sensor.getRevision());
Serial.print(")");
Serial.print(" Serial #"); Serial.print(sensor.sernum_a, HEX); Serial.println(sensor.sernum_b, HEX);
}
void loop() {
Serial.print("Humidity: ");
Serial.print(sensor.readHumidity(), 2);
Serial.print("\tTemperature: ");
Serial.println(sensor.readTemperature(), 2);
delay(1000);
// Toggle heater enabled state every 30 seconds
// An ~1.8 degC temperature increase can be noted when heater is enabled
if (++loopCnt == 30) {
enableHeater = !enableHeater;
sensor.heater(enableHeater);
Serial.print("Heater Enabled State: ");
if (sensor.isHeaterEnabled())
Serial.println("ENABLED");
else
Serial.println("DISABLED");
loopCnt = 0;
}
}
این کد دما و رطوبت خوانده شده را در پنجره ی سریال نمایش میدهد. پس از فراخوانی کتابخانه مربوطه، بایستی سنسور را نصب و فعال کنیم. در گام بعدی دیتاهای دما و رطوبت ذخیره شده و بر روی Serial Monitor نمایش داده میشود.
خروجی کد به شکل زیر است. دمای محیط 24 درجه سانتیگراد و رطوبت 39% است.