Possiamo realizzare un allarme anti-incendio con Arduino UNO
Dopo aver visto come realizzare un allarme gas con Arduino UNO, vediamo come costruirne uno che rilevi la presenza di fiamme e avvisi gli abitanti. Come nel precedente esempio, ci assisteremo di un segnale luminoso ed uno sonoro.
Cosa Serve?
Similmente a quello visto nello scorso esempio, per creare questo allarme fatto in casa abbiamo bisogno del nostro Arduino UNO (va bene anche un Arduino Nano), un led, una resistenza da 200 OHM, un buzzer attivo e un rilevatore di Fiamma, noto anche come KY-026.
- Arduino UNO: https://amzn.to/2LjKWvg
- Arduino UNO (clone): https://amzn.to/2LfJhH0
- LED: https://amzn.to/2Wl9YAv
- Resistenze da 220 OHM: https://amzn.to/3bku2qR
- Buzzer attivo: https://amzn.to/3gNNHTW
- Sensore KY-026: https://amzn.to/2U2GFkD
Collegamenti
Per far funzionare il nostro sistema di rilevamento gas, colleghiamo il led al pin 12 di Arduino, ricordando di inserire una resistenza da 220 OHM, il buzzer lo colleghiamo al pin 8, mentre il rilevatore di fiamma va connesso al pin analogico A0, dal quale rileveremo i valori analogici. Il rilevatore di fiamma verrà alimentato a 5V, mentre il led ed il buzzer si attiveranno ricevendo il segnale dai rispetti pin.
Codice
Il codice è strutturato in maniera differente dall’ultima volta. Nel VOID SETUP invece diamo la direzione ai pin del led e del buzzer, avviando poi il monitor seriale. Nel VOID LOOP rileviamo il gas dal pin analogico A0 e lo stampiamo sul seriale, creando poi un IF/ELSE che controlla che il valore rilevato non superi la soglia di 350 e se ciò avviene vengono avviate due funzioni che abbiamo creato, una chiamata alarm() che fa lampeggiare il led al pin 12, l’altra chiamata sound() che fa suonare il buzzer al pin 8. La funzione tone() non è necessaria per il buzzer attivo che va programmato come un LED. Se il valore rilevato è al di sotto del limite, non accade nulla.
void setup() { pinMode (8, OUTPUT); // direzione del pin buzzer pinMode (12, OUTPUT); // direzione del pin led Serial.begin (9600); // avvio del monitor seriale } void loop() { int fiamma = analogRead(A0); // rilevo il valore da A0 Serial.println(fiamma); // stampo su monitor seriale if (fiamma > 350) { // se il valore supera 350... alarm(); // faccio lampeggiare il led e faccio suonare il buzzer sound(); } else { // altrimenti non fa nulla } } void alarm(){ digitalWrite (12, HIGH); delay (500); digitalWrite (12, LOW); delay (500); } void sound(){ digitalWrite (8, HIGH); delay (1000); digitalWrite (8, LOW); delay (1000); }