#include #include #include #define DHT_PIN 7 #define DHT_MODEL DHT11 LiquidCrystal_I2C lcd(0x27,16,2); DHT dht(DHT_PIN, DHT_MODEL); int BH1750 = 0x23; byte buff[2]; void setup() { dht.begin(); lcd.init(); lcd.backlight(); lcd.setCursor(0, 0); lcd.print("COSMOLIGHT"); lcd.setCursor(0, 1); lcd.print("Project Arduino"); Wire.begin(); // BH1750FVI reset Wire.beginTransmission(BH1750); Wire.write(0x07); Wire.endTransmission(); // BH1750FVI mode set Wire.beginTransmission(BH1750); Wire.write(0x10); Wire.endTransmission(); Serial.begin(9600); // message ---> RasPi Serial.println("Start!"); delay(3000); } void loop(){ float temperature = dht.readTemperature(); float humidity = dht.readHumidity(); lcd.clear(); lcd.setCursor(0, 0); // DHT11 access if (isnan(temperature) || isnan(humidity)) { lcd.setCursor(0, 0); lcd.print("ERROR"); return; } // data ---> RasPi Serial.print("Temperature: "); Serial.print(String(temperature, 1)); Serial.println(" *C"); Serial.print("Humidity: "); Serial.print(String(humidity, 1)); Serial.println(" %"); // data ---> LCD lcd.setCursor(0, 0); lcd.print("Temp("); lcd.write(0xdf); lcd.print("C): " + String(temperature, 1)); lcd.setCursor(0, 1); lcd.print("Hum(%): " + String(humidity, 1)); delay(5000); float dt = 0; float lxData = 0; int i = 0; // BH1750FVI access start Wire.beginTransmission(BH1750); Wire.requestFrom(BH1750, 2); // byte read while(Wire.available()){ buff[i] = Wire.read(); i++; } // access end Wire.endTransmission(); // illuminance get dt = ((buff[0] << 8) | buff[1]); lxData = dt / 1.2; // data ---> RasPi Serial.print("Illuminance: "); if(lxData < 0){ Serial.print("> 65535F Overflow"); } else{ //Serial.print((int)lxData, DEC); Serial.print(String(lxData, 1)); } Serial.println(" lx"); Serial.print("\n\r"); // data ---> LCD lcd.clear(); lcd.setCursor(0, 0); lcd.print("Illuminance(lx):"); lcd.setCursor(0, 1); if(lxData < 0){ lcd.print("Data Overflow"); } else{ lcd.print(String(lxData, 1)); } delay(5000); }