Cảm biến nhiệt độ và độ ẩm SHT3x được sử dụng để đo nhiệt độ và độ ẩm với chuẩn giao tiếp I2C rất dễ dàng để kết nối và giao tiếp với vi điều khiển. SHT30 là bản nâng cấp của họ SHT10 của hãng Sensirion với độ ổn định và chính xác cao. Đây là sự thay thế tốt đối với dòng DHTxx rẻ tiền.
SHT dùng trong công nghiệp có vỏ chống thấm PE được làm từ vật liệu polyme, chống bụi, chống thấm nước, thoáng khí tốt. Cảm biến có cấu tạo gồm cảm biến SHT30 phía trong, bên ngoài là lớp vỏ bảo vệ cảm biến khỏi các tác động vật lý từ môi trường như bụi, nước….
Dây của cảm biến nhiệt độ và độ ẩm SHT30 HT533 sử dụng cáp PVV đồng nguyên chất, điện trở thấp, điện áp ổn định, chống mài mòn, mềm và chống cháy. Cảm biến thường được sử dụng trong nhà kính nông nghiệp, môi trường độ ẩm cao, ngoài trời và hầu hết các loại môi trường, có thể kiểm tra độ ẩm không khí trong đất, khuếch tán nước.
Thông số kỹ thuật của Cảm biến nhiệt độ và độ ẩm SHT30
- Điện áp làm việc: 2.4 ~ 5.5 VDC
- Phạm vi nhiệt độ: -40 ~ 125 độ C
- Phạm vi độ ẩm: 0 ~ 100% RH
- Sai số nhiệt độ: +- 0.3 độ C
- Sai số độ ẩm: +- 3% RH
- Năng lượng tiêu thụ: 4.8 uW
- Giao tiếp: I2C
- Chiều dài dây: 1 mét
- Chức năng dây:
- Dây đỏ: VCC
- Dây đen: GND
- Dây vàng: SCL
- Dây xanh lá: SDA
Sử dụng SHT3x rất đơn giản bởi tiêu chuẩn I2C. Thư viện cho SHT3x cũng rất phổ biến. Trong ví dụ sau chúng ta sử dụng thư viện chuẩn của Adafruit.
Kết nối với Arduino đơn giản bởi có sẵn điện trở treo cao. Điện áp linh hoạt 3,3v hoặc 5v đều sử dụng được.
// SHT30, SHT31
#include <Arduino.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"
bool enableHeater = false;
uint8_t loopCnt = 0;
Adafruit_SHT31 sht31 = Adafruit_SHT31();
void setup()
{
Serial.begin(9600);
while (!Serial)
delay(10);
Serial.println("SHT31 test");
if (! sht31.begin(0x44))
{ // Set to 0x45 for alternate i2c addr
Serial.println("Couldn't find SHT31");
while (1)
delay(1);
}
Serial.print("Heater Enabled State: ");
if (sht31.isHeaterEnabled())
Serial.println(" Heater ON");
else
Serial.println("Heater Off");
}
void loop()
{
float t = sht31.readTemperature();
float h = sht31.readHumidity();
if (! isnan(t))
{ // check if 'is not a number'
Serial.print("Temp *C = ");
Serial.print(t);
Serial.print("\t\t");
}
else
{
Serial.println("Failed to read temperature");
}
if (! isnan(h))
{ // check if 'is not a number'
Serial.print("Hum. % = ");
Serial.println(h);
}
else
{
Serial.println("Failed to read humidity");
}
delay(1000);
// An ~3.0 degC temperature increase
//sht31.heater(enableHeater);
//Serial.print("Heater Enabled State: ");
//if (sht31.isHeaterEnabled())
//Serial.println("ENABLED");
//else
//Serial.println("DISABLED");
}
Trong cảm biến có thiết bị gia nhiệt giúp cảm biến không bị đọng nước khi hoạt động trong môi trường ẩm ướt. Tuy nhiên, ở điều kiện hoạt động bình thường thì chúng ta không cần tính năng này.