آموزش راه اندازی ماژول سنسور دما و رطوبت SI7021 با رابط I2C با آردوینو

ویژگی های ماژول سنسور دما و رطوبت 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) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو UNO R3 × 1
ماژول سنسور دما و رطوبت SI7021 × 1
سیم جامپر نری-مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول سنسور دما و رطوبت 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="&#8220;Home&#8221; &#8212; 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;
  }
}
Arduino

این کد دما و رطوبت خوانده شده را در پنجره ی سریال نمایش می‌دهد. پس از فراخوانی کتابخانه مربوطه، بایستی سنسور را نصب و فعال کنیم. در گام بعدی دیتاهای دما و رطوبت ذخیره شده و بر روی Serial Monitor  نمایش داده می‌شود.

خروجی کد به شکل زیر است. دمای محیط 24 درجه سانتی‌گراد و رطوبت 39% است.

آموزش های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.