// EMERGENCYNET IoT - VERSAO MINIMA
// Arduino Uno - Wokwi
#define LED_R 6
#define LED_G 9
#define LED_B 10
#define LED_SIREN 11
#define LED_COMM 12
int state = 0;
unsigned long timer = 0;
int emergencies = 0;
void setup() {
Serial.begin(9600);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(LED_SIREN, OUTPUT);
pinMode(LED_COMM, OUTPUT);
Serial.println("EmergencyNet Started");
timer = millis();
}
void loop() {
unsigned long now = millis();
// Mudar estado a cada 3 segundos
if (now - timer > 3000) {
state++;
if (state > 3) {
state = 0;
emergencies++;
}
timer = now;
printState();
}
// Controlar LEDs
controlLEDs();
delay(100);
}
void controlLEDs() {
// Apagar todos primeiro
digitalWrite(LED_R, LOW);
digitalWrite(LED_G, LOW);
digitalWrite(LED_B, LOW);
digitalWrite(LED_SIREN, LOW);
digitalWrite(LED_COMM, LOW);
bool blink = (millis() % 500) < 250;
switch(state) {
case 0: // STANDBY
// Tudo apagado
break;
case 1: // EMERGENCY
digitalWrite(LED_R, HIGH);
if (blink) digitalWrite(LED_SIREN, HIGH);
break;
case 2: // COMMUNICATING
digitalWrite(LED_B, HIGH);
if (blink) digitalWrite(LED_COMM, HIGH);
break;
case 3: // CONTROLLED
digitalWrite(LED_G, HIGH);
break;
}
}
void printState() {
Serial.print("State: ");
Serial.print(state);
Serial.print(" | Emergencies: ");
Serial.print(emergencies);
Serial.print(" | Time: ");
Serial.println(millis()/1000);
// JSON simples
Serial.print("{\"state\":");
Serial.print(state);
Serial.print(",\"count\":");
Serial.print(emergencies);
Serial.println("}");
}