부하기 완성
이제 유정란만 구하면 된다.
다음은 아두이노 소스 코드
#include "LCD4884.h"
#include <Wire.h>
#define ON 1
#define OFF 0
#define TARGET_TEMP 38.0
#define ALPHA 0.5
const int light = 13;
unsigned int day;
unsigned int hour;
unsigned int minute;
unsigned int sec;
void setup()
{
Serial.begin(9600);
Wire.begin(); // join i2c bus (address optional for master)
lcd.LCD_init();
lcd.LCD_clear();
lcd.LCD_backlight(0);
pinMode(light, OUTPUT);
digitalWrite(light, ON);
day = 0;
hour = 4;
minute = 10;
sec = 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 sendPlotData(String seriesName, float data)
{
Serial.print("{");
Serial.print(seriesName);
Serial.print(",T,");
Serial.print(data);
Serial.print("}");
}
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);
if(temp > TARGET_TEMP+ALPHA)
digitalWrite(light, OFF); // off
else if (temp < TARGET_TEMP-ALPHA)
digitalWrite(light, ON);
sendPlotData("TEMP", temp);
sendPlotData("HUMI", humi);
delay(1000);
sec++;
if(sec == 60 ) {
sec = 0;
minute ++;
}
if(minute == 60) {
minute = 0;
hour ++ ;
}
if(hour == 24) {
hour = 0;
day ++ ;
}
lcd.setCursor(0,4);
lcd.print("DAY :");
lcd.print(day);
lcd.setCursor(0,5);
lcd.print("TIME:");
lcd.print(hour);
lcd.print(":");
lcd.print(minute);
lcd.print(":");
lcd.print(sec);
lcd.print(" ");
}
'OldStory > Makes' 카테고리의 다른 글
Raffaello D'Andrea: The astounding athletic power of quadcopters (0) | 2013.07.09 |
---|---|
Reprap (0) | 2013.07.06 |
계란부화기 - 온습도 센서 테스트 (0) | 2013.06.27 |
계란부화기 - 부품 구입 (0) | 2013.06.26 |
쿼드콥터 (0) | 2013.06.22 |