IoT: un semplice metal detector con MCU

Un altro esempio di IoT con Cisco Packet Tracer e il suo simulatore di MCU con Python e JavaScript. Un semplice esercizio che simula un metal detector che avvisa della presenza di un metallo accedendo un allarme.

I vari componenti li troviamo ancora una volta in [Component->Board] per la basetta, gli attuatori e i sensori in  [Components->Actuators][Components->Sensors] rispettivamente.

Il codice Python del nostro Arduino è molto semplice. Come sempre, suggerisco il lettore di leggere le descrizioni/specifiche degli elementi e dispositivi che abbiamo nel nostro pannello di lavoro. Sono fondamentali per scoprire come collegarli, che tipo di segnale inviano se analogico o digitale, se hanno una scrittura con digitalWrite o customWrite ecc. In questo caso, il sensore di metallo restituisce una lettura sulla porta analogica A0 che andremo prontamente ad intercettare con la chiamata gpio analogRead(#letteraenumeroporta). Ricorda bene la differenza tra analogRead da effettuare su una porta A0, A1… che non è molto diversa dalla digitalRead(numeroporta) però attesa dalle porte digitali D0, D1 ecc. Se il valore è positivo, semplicemente mandiamo il classico segnale digitale al nostro allarme.

from gpio import *
from time import *

allarme = 0

if __name__ == "__main__":
	pinMode(allarme,OUT)
	
	while True:
		livelloferro = analogRead(A0)
		print livelloferro
		if livelloferro > 0:
			digitalWrite(allarme,HIGH)
		else:	
			digitalWrite(allarme,LOW)
		sleep(1)

Lo stesso codice se preferiamo la versione JavaScript, decisamente più simile al codice standard di Arduino.

var allarme = 0;
var sensore = A0;


function setup() 
{
	pinMode(allarme, OUTPUT);
	pinMode(sensore, INPUT);
}

function loop() 
{
	var livelloFerro = analogRead(sensore);
	Serial.println(livelloFerro);
	
	if (livelloFerro > 0)
	{
		digitalWrite(allarme, HIGH);	
	}
	else
	{
		digitalWrite(allarme, LOW);
	}
	
	delay(1000);

}

Per testare, spostate il corpo di metallo verso il sensore o viceversa. Se tutto è configurato a dovere, si accenderà di rosso l’allarme.

Altri esercizi

Il lettore può personalizzare ulteriormente il codice e l’esercizio aggiungendo una porta che simula la possibilità di passare un varco: no metallo -> porta aperta; metallo presente -> porta chiusa.

Simuliamo un parcheggio completo/libero. Colleghiamo quattro sensori di metallo e due led rosso/verde. Se i sensori rilevano contemporaneamente tutti metallo, vuol dire che il parcheggio è occupato e accendo il led rosso, altrimenti accendo il verde.

Ultima modifica 7 Novembre 2023