ماژول دما رطوبت SHT20 برد آبی - بدون پین هدر
توجه: این ماژول در حال حاضر از نوع برد آبی و بدون پین هدر است.
ماژول دما رطوبت SHT20
ماژول SHT20 یک سنسور رطوبت و دما مبتنی بر تکنولوژی حسگر ظرفیتی است که توسط شرکت Sensirion AG سوئیس طراحی و تولید شده است. این ماژول دارای خروجی دیجیتال با استفاده از پروتکل I2C است و میتواند دما را با دقت ۰.۵ درجه سانتیگراد و رطوبت را با دقت ۳ درصد اندازهگیری کند.ماژول SHT20 دارای ساختاری بسیار کوچک و مناسب برای کاربردهایی است که نیاز به اندازهگیری دقیق دما و رطوبت در فضای محدود دارند. برخی از کاربردهای این ماژول شامل اتوماسیون خانگی، کنترل خودکار هواشناسی، اندازهگیری دما و رطوبت در داخل ساختمانها و اندازهگیری دما و رطوبت در کشت و صنعتی میباشد.
ویژگی های ماژول SHT20
برخی از مشخصات فنی ماژول SHT20 عبارتند از:
- ولتاژ تغذیه: 2.1 تا 3.6 ولت DC
- دمای عملکرد: -40 تا 125 درجه سانتیگراد
- دقت اندازهگیری دما: ±0.5 درجه سانتیگراد
- دقت اندازهگیری رطوبت: ±3 درصد
- خروجی: دیجیتال با پروتکل I2C
- سرعت انتقال داده: تا 100 کیلوبیت بر ثانیه
- مصرف جریان: کمتر از 1 میلیآمپر
مقادیر بالا مشخصات عمومی ماژول SHT20 هستند. به علاوه، این ماژول دارای ویژگیهای دیگری نیز است که بسته به نیاز کاربر قابل استفاده هستند.
بررسی پایه های ماژول SHT20
ماژول SHT20 دارای پایههایی برای اتصال به برد یا سیستم الکترونیکی میباشد. پایههای این ماژول به شرح زیر است:
- VDD: ولتاژ تغذیه
- SDA: خط دادهی سریال I2C
- SCL: خط ساعت سریال I2C
- GND: زمین
به همراه ماژول SHT20 چه اقلامی باید خریداری شود؟
- برد آردوینو Arduino
- سایر میکروکنترلرها مانند ESP32, ESP8266
- کابل فلت
- برد بورد
- نمایشگر OLED
- نمایشگر LCD
راه اندازی ماژول SHT20 با آردوینو
برای اتصال با ماژول SHT20 با استفاده از آردوینو، باید کتابخانه آردوینو SHT2x را دانلود و نصب کنید. در ادامه، یک کد مثال برای دریافت دما و رطوبت از ماژول SHT20 آمده است.در این کد، ابتدا کتابخانه Wire و کتابخانه SHT2x را وارد میکنیم. سپس در تابع setup()، ارتباط سریال و کتابخانه Wire را مقداردهی اولیه میکنیم. در تابع loop()، با استفاده از تابع SHT2x.ReadTemperatureAndHumidity()، مقادیر دما و رطوبت را از ماژول SHT20 خوانده و در متغیرهای temp و humi ذخیره میکنیم. سپس این مقادیر را با استفاده از تابع Serial.print() به مانیتور سریال چاپ میکنیم. در صورتی که خواندن سنسور با مشکل مواجه شود، پیام خطایی را در مانیتور سریال چاپ میکنیم. در نهایت، قبل از شروع دورهی بعدی با تابع delay() با زمان ۲ ثانیه تاخیر اضافه میکنیم.
#include <Wire.h>
#include "SHT2x.h"
void setup() {
Serial.begin(9600);
Serial.println("SHT20 Test");
Wire.begin();
}
void loop() {
float temp, humi;
if (SHT2x.ReadTemperatureAndHumidity(&temp, &humi)) {
Serial.print("Temperature: ");
Serial.print(temp);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humi);
Serial.println(" %");
Serial.println();
} else {
Serial.println("Error reading sensor");
}
delay(2000);
}
راه اندازی ماژول SHT20 با میکروپایتون و ESP32
برای اتصال به ماژول SHT20 با استفاده از Micropython، باید کتابخانه Micropython SMBus را نصب کنید. در زیر مثالی برای دریافت داده های دما و رطوبت از ماژول SHT20 آورده شده است:در این کد، ابتدا کتابخانه های لازم را import کرده و یک instance از رابط I2C با استفاده از تابع machine.I2C() ایجاد می کنیم. سپس یک instance از کلاس SHT2x با استفاده از instance رابط I2C ایجاد می کنیم. در حلقه while، با استفاده از روش های sensor.temperature() و sensor.humidity() به ترتیب داده های دما و رطوبت را از ماژول SHT20 می خوانیم و با استفاده از تابع print() آنها را در کنسول چاپ می کنیم. در نهایت، با استفاده از تابع time.sleep(2) یک تاخیر 2 ثانیه در اجرای حلقه قبلی ایجاد می کنیم.توجه داشته باشید که شماره پین های مورد استفاده در تابع machine.I2C() بسته به برد و تنظیمات خاص شما ممکن است متفاوت باشد ، بنابراین اطمینان حاصل کنید که آنها را مطابق با آن تنظیم کنید. همچنین، اطمینان حاصل کنید که فایل کتابخانه SHT2x.py را در همان دایرکتوری فایل کد اصلی خود دارید.
import machine
import time
import SHT2x
i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
sensor = SHT2x.SHT2x(i2c)
while True:
temp = sensor.temperature()
humi = sensor.humidity()
print("Temperature: %.2f C" % temp)
print("Humidity: %.2f %%" % humi)
time.sleep(2)
راه اندازی ماژول SHT20 با میکروپایتون و RP2040
در این کد، ابتدا کتابخانه های لازم را وارد کرده و یک نمونه از رابط I2C با استفاده از تابع machine.I2C() ایجاد می کنیم. پارامترهای scl و sda مشخص می کنند که پین های SCL و SDA برای رابط I2C به ترتیب چیستند. پارامتر freq نیز فرکانس ساعت I2C را به 100 کیلوهرتز تنظیم می کند.سپس، یک نمونه از کلاس SHT2x با استفاده از نمونه رابط I2C ایجاد می شود. کلاس SHT2x در فایل کتابخانه sht2x.py تعریف شده است که باید در همان پوشه با فایل کد اصلی شما حضور داشته باشد.در حلقه while، از متدهای sensor.temperature() و sensor.humidity() برای خواندن مقادیر دما و رطوبت از ماژول SHT20 استفاده می شود. سپس این مقادیر را با استفاده از تابع print() به کنسول چاپ می کنیم. در صورت بروز خطا در خواندن داده های سنسور، پیام خطایی به کنسول چاپ می شود.در نهایت، با استفاده از تابع time.sleep(2) یک تاخیر 2 ثانیه اضافه می کنیم قبل از شروع حلقه بعدی.
import machine
import time
from sht2x import SHT2x
i2c = machine.I2C(0, scl=machine.Pin(21), sda=machine.Pin(20), freq=100000)
sensor = SHT2x(i2c)
while True:
try:
temperature = sensor.temperature()
humidity = sensor.humidity()
print("Temperature: {:.2f} °C, Humidity: {:.2f} %".format(temperature, humidity))
except OSError:
print("Error reading sensor data.")
time.sleep(2)
مشخصات
- ابعاد
- 18x18mm
- ولتاژ مورد نياز
- 2.1 الی 3.6
- پروتکل ارتباطی
- I2C
- نوع سنسور
- دما رطوبت
این برد یک ترموستات دمایی است. برای درخواست مورد نظرتان قابل استفاده است. ولتاژ AC همان برق 220 است.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.