본문 바로가기
OldStory/Makes

계란부화기 - 온습도 센서 테스트

by Alnilam 2013. 6. 27.

image

데이터 시트 참고 해서 바로 온습도 센서 테스트

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