데이터 시트 참고 해서 바로 온습도 센서 테스트
LCD 는 LCD4884 모듈을 사용하였다.
정상 동작 확인
현재온도 29.56도
상대습도 59.52%
온습도센서 모듈 아두이노 코드 예제
[cpp]
#include "LCD4884.h"
#include "DFrobot_bmp.h"
#include "DFrobot_chinese.h"
#include "Wire.h"
void setup()
{
Wire.begin(); // join i2c bus (address optional for master)
lcd.LCD_init();
lcd.LCD_clear();
lcd.LCD_backlight(0);
}
#define SHT20_I2C_ADDRESS 0x40
#define SHT20_I2C_CMD_MEASURE_TEMP 0xe3
#define SHT20_I2C_CMD_MEASURE_HUMI 0xe5
void sht20_cmd(byte cmd)
{
Wire.beginTransmission(SHT20_I2C_ADDRESS); // transmit to device
Wire.write(byte(cmd)); // sends instruction byte
Wire.endTransmission(); // stop transmitting
}
unsigned int sht20_cmd_read()
{
byte msb,lsb;
byte checksum;
unsigned int measure;
Wire.requestFrom(SHT20_I2C_ADDRESS, 3); // read request for measure msb, lsb and checksum
msb = Wire.read();
lsb= Wire.read();
checksum = Wire.read();
measure = msb<<8 | (lsb & 0xfc);
return measure;
}
void loop()
{
float temp = 0.0; // temperature
float humi = 0.0; // releative humidity
sht20_cmd(SHT20_I2C_CMD_MEASURE_TEMP);
temp = -46.85 + 175.72 * sht20_cmd_read()/65536;
lcd.setCursor(0,1);
lcd.print("TEMP : ");
lcd.print(temp);
sht20_cmd(SHT20_I2C_CMD_MEASURE_HUMI);
humi = -6.0 + 125.0 * sht20_cmd_read()/65536;
lcd.setCursor(0,2);
lcd.print("HUMI : ");
lcd.print(humi);
}
[/cpp]
'OldStory > Makes' 카테고리의 다른 글
Reprap (0) | 2013.07.06 |
---|---|
부화기 (0) | 2013.06.29 |
계란부화기 - 부품 구입 (0) | 2013.06.26 |
쿼드콥터 (0) | 2013.06.22 |
씨디 케이스와 가베를 이용한 멀티콥터 프레임 (0) | 2013.05.29 |