#include #define DHT_SENSOR_TYPE DHT_TYPE_11 #define LIGHT_SENSOR A14 #define SOUND_SENSOR A15 #define FLASH_LED 25 #define LED_RED 9 #define LED_YELLOW 10 #define LED_GREEN 11 #define LED_BLUE 6 #define LED_WHITE 5 #define DO_SOUND 52 #define LED_STATE 4 #define DHT_SENSOR_PIN 33 #define MOTOR_LEFTDIR 13 #define MOTOR_RIGHTDIR 12 #define MOTOR_POWER 8 DHT_nonblocking dht_sensor( DHT_SENSOR_PIN, DHT_SENSOR_TYPE ); int led_value,led_color,led_procedures,led_gradual,led_intermittence,proc_alarm,light_value,sound_value,sound_led; String led_color_str,led_value_str,led_procedures_str,proc_alarm_str; void setup() { Serial.begin(9600); pinMode(DO_SOUND, INPUT); pinMode(LED_STATE, INPUT); pinMode(FLASH_LED, OUTPUT); pinMode(MOTOR_POWER,OUTPUT); pinMode(MOTOR_LEFTDIR,OUTPUT); pinMode(MOTOR_RIGHTDIR,OUTPUT); } static bool measure_environment( float *temperature, float *humidity ) { static unsigned long measurement_timestamp = millis( ); if( millis( ) - measurement_timestamp > 200ul ) { if( dht_sensor.measure( temperature, humidity ) == true ) { measurement_timestamp = millis( ); return( true ); } } return( false ); } void loop() { float temperature; float humidity; if (digitalRead(LED_STATE) == HIGH) light_value = analogRead(LIGHT_SENSOR); light_value = map(light_value,0,1023,100,0); sound_value = analogRead(SOUND_SENSOR); sound_value = constrain(sound_value,600,750); sound_value = map(sound_value,600,750,0,100); sound_value = constrain(sound_value,0,100); {if( measure_environment( &temperature, &humidity ) == true ) { Serial.print( temperature ); Serial.print("|"); Serial.print( humidity ); Serial.print("|"); Serial.print(light_value, DEC); Serial.print("|"); Serial.print(sound_value, DEC); Serial.println(); } } if (Serial.available()) { led_procedures_str = Serial.readStringUntil('.'); int led_procedures = led_procedures_str.toInt(); led_color_str = Serial.readStringUntil(';'); int led_color = led_color_str.toInt(); led_value_str = Serial.readStringUntil('\n'); int led_value = led_value_str.toInt(); switch(led_procedures){ case 0: switch(led_color){ case 1: led_value = map(led_value,0,100,0,255); analogWrite(LED_RED,led_value); break; case 2: led_value = map(led_value,0,100,0,255); analogWrite(LED_YELLOW,led_value); break; case 3: led_value = map(led_value,0,100,0,255); analogWrite(LED_GREEN,led_value); break; case 4: led_value = map(led_value,0,100,0,255); analogWrite(LED_BLUE,led_value); break; case 5: led_value = map(led_value,0,100,0,255); analogWrite(LED_WHITE,led_value); break; case 6: if(led_value == 1){ digitalWrite(FLASH_LED, led_value); } else { digitalWrite(FLASH_LED, led_value); } break; } break; case 1: switch(led_color){ case 1: led_value = map(led_value,0,100,0,255); for(led_gradual=0;led_gradual=0;led_gradual--){ analogWrite(LED_RED,led_gradual); delay(10); } delay(500); break; case 2: led_value = map(led_value,0,100,0,255); for(led_gradual=0;led_gradual=0;led_gradual--){ analogWrite(LED_YELLOW,led_gradual); delay(10); } delay(500); break; case 3: led_value = map(led_value,0,100,0,255); for(led_gradual=0;led_gradual=0;led_gradual--){ analogWrite(LED_GREEN,led_gradual); delay(10); } delay(500); break; case 4: led_value = map(led_value,0,100,0,255); for(led_gradual=0;led_gradual=0;led_gradual--){ analogWrite(LED_BLUE,led_gradual); delay(10); } delay(500); break; case 5: led_value = map(led_value,0,100,0,255); for(led_gradual=0;led_gradual=0;led_gradual--){ analogWrite(LED_WHITE,led_gradual); delay(10); } delay(500); break; } break; case 2: switch(led_color){ case 1: for(led_intermittence=0;led_intermittence<3;led_intermittence++){ analogWrite(LED_RED,led_value); delay(500); analogWrite(LED_RED,0); delay(500); } break; case 2: for(led_intermittence=0;led_intermittence<3;led_intermittence++){ analogWrite(LED_YELLOW,led_value); delay(500); analogWrite(LED_YELLOW,0); delay(500); } break; case 3: for(led_intermittence=0;led_intermittence<3;led_intermittence++){ analogWrite(LED_GREEN,led_value); delay(500); analogWrite(LED_GREEN,0); delay(500); } break; case 4: for(led_intermittence=0;led_intermittence<3;led_intermittence++){ analogWrite(LED_BLUE,led_value); delay(500); analogWrite(LED_BLUE,0); delay(500); } break; case 5: for(led_intermittence=0;led_intermittence<3;led_intermittence++){ analogWrite(LED_WHITE,led_value); delay(500); analogWrite(LED_WHITE,0); delay(500); } break; } break; case 3: switch(led_color){ case 1: switch(led_value){ case 75: for(led_intermittence=0;led_intermittence<5;led_intermittence++){ analogWrite(LED_RED,led_value); delay(500); analogWrite(LED_RED,0); delay(500); } break; case 100: for(led_intermittence=0;led_intermittence<5;led_intermittence++){ analogWrite(LED_RED,led_value); delay(500); analogWrite(LED_RED,0); delay(500); } break; } } break; // case 4: switch(led_color){ // // case 1: sound_led = sound_value; // sound_led = map(sound_led,0,100,0,255); // analogWrite(LED_RED,sound_led); // // break; // // } // break; } } }