//------------------------------------------------------------------- // DHT12_ex2 //------------------------------------------------------------------- #include "OLED.h" // OLED OLED myOLED; //------------------------------------------------------------------- #include "DHT12.h" // DHT12 #define DATA_PIN PA1 DHT12 dht; //------------------------------------------------------------------------------ #define LS_PIN PA0 #define LED_W PB1 //------------------------------------------------------------------- int SetLSMax=900; int SetLSMin=50; void Flash_LED(int n, int finv); int main(void) { //setup SystemClock_Config(); // OLED myOLED.begin(FONT_8x16); // or FONT_6x8 myOLED.println("DHT12_99"); // DHT12 dht.begin(DATA_PIN); // LED pinMode(LED_W, OUTPUT); digitalWrite(LED_W,LOW); // LED Red OFF //-------Declare- Buzzer ------------------------------- #define buzzerPIN PA0 // CN1 void Beep(int n, int finv); //loop while (1) { int LS_Val = analogRead(LS_PIN); float h,t; digitalWrite(LED_R,HIGH);// LED Red ON dht.startConvert(); delay(18); // wait DHT12 dht.getConvert(&h,&t); myOLED.setPosi(2,0); myOLED.print("Humidity:"); myOLED.println(h); myOLED.setPosi(4,0); myOLED.print("Temp.:"); myOLED.println(t); myOLED.print("LS:"); myOLED.println(LS_Val); //=======Smart Processing============= //map(value, fromLow, fromHigh, toLow, toHigh) int duty=map(LS_Val, SetLSMax, SetLSMin, 0,255); myOLED.setPosi(6,0); myOLED.print("Duty: "); if(LS_ValSetLSMax) { analogWrite(LED_W, 0); myOLED.print(0); } else { myOLED.print(duty); analogWrite(LED_W, duty); } delay(500); digitalWrite(LED_R,LOW);// LED Red OFF delay(250);// wait next convert } } //------------------------------------------------------------------------------ void Flash_LED(int n, int finv) { int i; digitalWrite(LED_W, LOW); for(i=0;i