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] e [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



