Blog di simon1970

Un nuovo sito targato WordPress

Il Routing: Fondamenti della Comunicazione tra Dispositivi

Il routing è un aspetto fondamentale della comunicazione tra dispositivi in una rete informatica. In questo articolo esploreremo i concetti chiave legati al routing, compresi gli indirizzi IP, i router e i protocolli di routing.

Che cos’è un indirizzo IP?

L’indirizzo IP (Internet Protocol) è un numero univoco assegnato a ogni dispositivo connesso a una rete che utilizza il protocollo Internet per la comunicazione. Funge da identificatore per i dispositivi, consentendo loro di comunicare tra loro all’interno della rete. Gli indirizzi IP sono suddivisi in due versioni principali: IPv4 e IPv6. Mentre IPv4 utilizza indirizzi a 32 bit, IPv6 utilizza indirizzi a 128 bit, offrendo una vasta gamma di indirizzi per soddisfare la crescente domanda di connettività su Internet.

Router e Routing Table

I router sono dispositivi di rete che instradano il traffico di dati tra reti diverse. Determinano in modo intelligente il percorso ottimale per inviare pacchetti di dati tra reti diverse, utilizzando le informazioni contenute nella loro tabella di routing. Questa tabella contiene dettagli sulle reti circostanti e le vie ottimali per raggiungerle. Quando un router riceve un pacchetto, esamina la sua tabella di routing per determinare il percorso più efficiente e inoltrare il pacchetto lungo tale percorso.

Tipi di Routing

Esistono due tipi principali di routing: statico e dinamico. Nel routing statico, gli operatori di rete configurano manualmente le rotte di rete nei router, mentre nel routing dinamico i router si scambiano automaticamente informazioni sulla topologia di rete utilizzando protocolli di routing dinamico come OSPF e RIP. Il routing dinamico si adatta in tempo reale ai cambiamenti nella rete, aggiornando le tabelle di routing automaticamente.

Protocollo OSPF/RIP

Il protocollo OSPF (Open Shortest Path First) è un protocollo di routing avanzato che consente ai router di comunicare tra loro per determinare il percorso più breve attraverso una rete per la trasmissione dei dati. Questo protocollo suddivide la rete in zone più gestibili, agevolando la gestione e l’ottimizzazione del traffico di rete. Al contrario, il protocollo RIP (Routing Information Protocol) è una soluzione più semplice che valuta il numero di “salti” necessari per raggiungere una destinazione, adatto per reti di dimensioni ridotte e meno complesse.

In conclusione, il routing svolge un ruolo cruciale nella comunicazione tra dispositivi in una rete. Comprendere i concetti fondamentali legati agli indirizzi IP, ai router e ai protocolli di routing è essenziale per la progettazione e la gestione efficace delle reti informatiche.

Machine Learning

La rapidità con cui l’intelligenza artificiale sta evolvendo è sorprendente e le sue implicazioni sono sempre più evidenti. Il Machine Learning, che permette alle macchine di apprendere da sole senza dover essere programmate esplicitamente per ogni compito, rappresenta un passo importante in questa evoluzione. Questo significa che, in futuro, le intelligenze artificiali potranno apprendere e migliorare in modo autonomo, senza bisogno dell’intervento umano.

Per comprendere meglio questa realtà, tre diversi TEDTalk sono stati selezionati per offrire una panoramica completa sull’argomento. Il primo è tenuto da Jeremy Howard, CEO di Enlitic, che spiega come il Deep Learning, una tecnica che consente ai computer di imparare in modo autonomo, possa essere utilizzata per scopi molto interessanti come il riconoscimento degli oggetti nelle foto o l’aiuto nella formulazione di diagnosi mediche.

Il secondo TEDTalk è tenuto da Fei-Fei Li, direttrice dei laboratori di intelligenza artificiale e visione a Stanford. La scienziata si concentra sul riconoscimento delle immagini e l’apprendimento del linguaggio da parte delle macchine. Utilizzando algoritmi di apprendimento e Big Data, Fei-Fei e il suo team hanno ottenuto risultati sorprendenti, portando i computer ad apprendere e migliorare in modo autonomo.

L’ultimo TEDTalk è tenuto dal filosofo Nick Bostrom, che affronta il tema delle implicazioni sociali ed etiche dell’intelligenza artificiale. Bostrom invita alla riflessione sul futuro della tecnologia e sull’importanza di valutare attentamente le conseguenze che la creazione di una super intelligenza artificiale potrebbe avere sulla nostra specie.

In sintesi, questi tre TEDTalk offrono una panoramica completa sulle implicazioni dell’intelligenza artificiale e sul suo futuro. Mentre le macchine diventano sempre più autonome e in grado di apprendere in modo autonomo, è importante porre attenzione alle conseguenze che questo potrebbe avere sulla società e sulle nostre vite. È necessario, pertanto, un costante dialogo tra gli esperti del settore, le istituzioni e la società civile, per garantire che la tecnologia continui a essere al servizio dell’umanità e dei suoi valori.

Ecco il sito da cui ho preso le informazioni:

https://www.techeconomy2030.it/2017/07/25/3-ted-talk-machine-learning/

Mappa concettuale

Ecco qui una mappa concettuale per riassumere l’argomento.

Arduino che scrive la temperatura su un file

L’esercizio che svolgeremo oggi con Arduino è abbastanza semplice in quanto ci basta fare in modo che il nostro Arduino legga delle temperature casuali prese ovviamente dall’esterno in caso questo progetto vogliamo realizzarlo realmente se no basta premere il sensore di temperatura e muovere il cursore così da scegliere quali temperature stampare nel monitor seriale (in questo lavoro sono state stampate 120 temperature comprese tra i -40°C e i 120°C).

Ecco qui di seguito il progetto e le relative immagine del codice e del file con stampate le temperature casuali con qui creeremo un grafico):

Arduino che scrive sul file la temperatura

Ecco il codice funzionante:

#include <SD.h>

File FileTemp;

int Temperatura = 0;
int TempCelsius = 0;
int TempFahrenheit = 0;
int A;
int Contatore=0;

void setup(){
Serial.begin(9600);
  pinMode(A0, INPUT);

    
  FileTemp = SD.open("file.csv", FILE_WRITE);

  FileTemp.println("Temperatura = ");

  
  FileTemp.close();
}
void loop()
{
  Temperatura = 40;

  TempCelsius = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);
  
  TempFahrenheit = ((TempCelsius * 9) / 5 + 32);
  Serial.print(TempCelsius);
    Serial.print(" C, \n");
    delay(1000);
    
  
   FileTemp = SD.open("test.csv", FILE_WRITE);
   FileTemp.print(TempCelsius);
   FileTemp.print(" C, \n");
  
    FileTemp.close();
}   

Ecco l’elenco delle temperature generate con Arduino e il relativo grafico:

-10
70
42
115
-35
85
20
100
-20
65
32
90
-15
75
55
105
-25
80
10
95
-5
60
38
110
-30
88
18
98
-8
68
40
120
-38
83
25
102
-12
73
50
112
-28
77
15
93
-2
58
35
108
-32
86
23
99
-6
63
45
118
-37
81
30
97
-9
71
47
114
-33
87
28
101
-4
62
43
118
-36
84
22
104
-11
74
52
116
-27
79
12
94
-1
57
33
109
-31
89
20
96
-7
66
48
121
-39
82
27
103
-13
72
37
111
-29
76
17
100
-3
61
41
120
-34
88
24
106
-16
78
14
92

WAN, MAN e LAN: Approfondimento sulle Reti e le Loro Applicazioni

Introduzione: Le reti informatiche svolgono un ruolo fondamentale nella nostra società moderna, consentendoci di comunicare, condividere informazioni e accedere a risorse digitali. Tra i vari tipi di reti, ci sono tre concetti chiave che vale la pena comprendere: WAN (Wide Area Network), MAN (Metropolitan Area Network) e LAN (Local Area Network). In questo articolo, esploreremo le definizioni di queste reti e forniremo esempi specifici per illustrare le loro applicazioni nella vita di tutti i giorni.

Definizione di WAN: Una Wide Area Network (WAN) è una rete che copre un’ampia area geografica, collegando diverse località distanti tra loro, come città, stati o addirittura continenti. Le WAN sono progettate per consentire la comunicazione e la condivisione di risorse tra siti remoti. Utilizzano solitamente infrastrutture di telecomunicazioni, come cavi in fibra ottica, linee telefoniche o connessioni satellitari. Ecco un esempio di WAN: una grande azienda che ha sedi in diverse parti del mondo e utilizza una rete WAN per collegare i suoi uffici centrali, consentendo la comunicazione e la condivisione di dati tra di loro.

WAN

Definizione di MAN: Una Metropolitan Area Network (MAN) è una rete che copre un’area metropolitana, come una città o una regione urbana. Le MAN sono di dimensioni più limitate rispetto alle WAN, ma più ampie rispetto alle LAN. Sono progettate per consentire la connessione di diverse organizzazioni, come aziende o istituti di ricerca, all’interno di un’area geografica specifica. Le MAN utilizzano spesso tecnologie di rete ad alta velocità, come la fibra ottica, per garantire prestazioni elevate. Ad esempio, una MAN potrebbe essere utilizzata per collegare diverse università all’interno di una città, consentendo loro di condividere risorse e collaborare in progetti di ricerca.

Definizione di LAN: Una Local Area Network (LAN) è una rete che copre un’area geografica limitata, come un edificio, un ufficio o una casa. Le LAN sono progettate per consentire la comunicazione e la condivisione di risorse tra dispositivi vicini tra loro, come computer, stampanti o dispositivi di archiviazione. Di solito, le LAN utilizzano cavi Ethernet o tecnologie wireless come il Wi-Fi per collegare i dispositivi. Un esempio comune di LAN è la rete domestica, in cui diversi dispositivi come computer, smartphone, tablet e smart TV sono collegati tra loro per condividere file, stampanti e connessione Internet.

Differenze tra WAN, MAN e LAN: Ora che abbiamo esaminato le definizioni di WAN, MAN e LAN, vediamo le differenze tra queste tre reti:

  1. Copertura geografica:
  • WAN: Copre un’ampia area geografica, come città, stati o continenti.
  • MAN: Copre un’area metropolitana, come una città o una regione urbana.
  • LAN: Copre un’area geografica limitata, come un edificio, un ufficio o una casa.
  1. Estensione e numero di dispositivi:
  • WAN: Collega siti remoti, come uffici aziendali o filiali, distribuiti in diverse località geografiche. Può collegare un grande numero di dispositivi in diverse sedi.
  • MAN: Collega organizzazioni all’interno di un’area metropolitana. Può connettere un numero moderato di dispositivi tra organizzazioni diverse.
  • LAN: Collega dispositivi locali in un’area limitata. Di solito, connette un numero relativamente ridotto di dispositivi, come computer, stampanti o dispositivi di archiviazione.
  1. Tecnologie di connessione:
  • WAN: Utilizza tecnologie di connessione come cavi in fibra ottica, linee telefoniche o connessioni satellitari per coprire distanze lunghe e garantire la connettività affidabile.
  • MAN: Spesso utilizza la fibra ottica per garantire una connessione ad alta velocità tra le organizzazioni all’interno di un’area metropolitana.
  • LAN: Utilizza cavi Ethernet o tecnologie wireless come il Wi-Fi per collegare i dispositivi all’interno di un’area limitata.
  1. Scopo e applicazioni:
  • WAN: Utilizzata per consentire la comunicazione e la condivisione di risorse tra siti remoti di un’organizzazione, come sedi aziendali o filiali. È essenziale per la connettività globale e la collaborazione tra diverse sedi.
  • MAN: Utilizzata per connettere organizzazioni all’interno di un’area metropolitana, come università, aziende o istituti di ricerca, per la condivisione di risorse e la collaborazione in progetti specifici.
  • LAN: Utilizzata per collegare dispositivi locali in un’area limitata, come una rete domestica o un’azienda di piccole dimensioni, per la condivisione di file, la stampa e l’accesso a risorse comuni.

Conclusione: Le reti WAN, MAN e LAN sono fondamentali per la comunicazione e la condivisione di risorse in diversi contesti. Mentre le reti WAN coprono distanze geografiche lunghe, le reti MAN sono più limitate a un’area metropolitana e le reti LAN sono focalizzate su un’area geografica ancora più ristretta. Comprendere le differenze tra queste reti aiuta a creare infrastrutture di rete efficaci e a soddisfare le esigenze specifiche di connettività di diverse organizzazioni e contesti.

Le Topologie di Rete: Vantaggi e Svantaggi per una Connessione Efficiente

Introduzione: Le topologie di rete definiscono il modo in cui i dispositivi di una rete informatica sono collegati tra loro. Esistono diverse topologie, o configurazioni, ognuna con i suoi vantaggi e svantaggi. In questo articolo, esploreremo quattro delle topologie di rete più comuni, accompagnate da immagini esplicative, per aiutarti a comprendere quale potrebbe essere la scelta migliore per le tue esigenze.

1. Topologia a Bus: La topologia a bus è caratterizzata da un’unica linea di comunicazione condivisa, alla quale tutti i dispositivi si connettono. Questa topologia offre un’installazione semplice e un basso costo, ma se la linea principale si guasta, tutta la rete potrebbe subire interruzioni. Inoltre, la larghezza di banda può essere condivisa tra tutti i dispositivi collegati, portando a una potenziale congestione di rete.

Topologia a Bus

2. Topologia a Stella: La topologia a stella prevede che ogni dispositivo sia collegato a un punto centrale, come uno switch o un hub. Questo approccio semplifica l’individuazione e l’isolamento dei problemi di connessione, poiché ogni dispositivo è collegato separatamente. Tuttavia, richiede un maggior numero di cavi rispetto ad altre topologie e dipende fortemente dal funzionamento del punto centrale: se questo smette di funzionare, tutta la rete potrebbe essere compromessa.

Topologia a Stella

3. Topologia ad Anello: La topologia ad anello collega i dispositivi in una configurazione ad anello chiuso, in cui ogni dispositivo è collegato direttamente ai suoi vicini. Questa topologia offre un’alta affidabilità, poiché i dati possono seguire percorsi alternativi in caso di guasti. Tuttavia, l’aggiunta o la rimozione di un dispositivo può interrompere l’intera rete, e la gestione e il monitoraggio delle connessioni possono risultare complessi.

Topo0logia ad Anello

4. Topologia ad Albero: La topologia ad albero organizza i dispositivi in una struttura gerarchica a forma di albero, in cui ogni dispositivo si connette a un nodo superiore fino ad arrivare a un nodo centrale. Questo tipo di topologia offre una scalabilità ottimale e una gestione efficiente delle reti di grandi dimensioni. Tuttavia, dipende fortemente dalla disponibilità del nodo centrale e può richiedere un maggiore cablaggio rispetto ad altre topologie.

Topologia ad Albero

Conclusione: Tra le tecnologie di rete più utilizzate, la topologia ad albero ha raggiunto un grande successo grazie alla sua scalabilità e alla capacità di gestire reti di grandi dimensioni in modo efficiente. Tuttavia, è importante considerare le specifiche esigenze di connettività e gli obiettivi della rete per determinare quale topologia sia più adatta in ogni scenario. La scelta della topologia di rete corretta può migliorare notevolmente le prestazioni, l’affidabilità e la gestione complessiva della rete informatica.

Problema Arduino temperatura e luminosità e dati in FILE CSV

L’analisi dei dati è il processo di estrazione di informazioni utili e significative da grandi quantità di dati grezzi, attraverso l’utilizzo di tecniche e strumenti statistici e informatici. Questo campo è ampiamente utilizzato in informatica, dove i dati vengono raccolti e analizzati per comprendere e migliorare il funzionamento dei sistemi informatici.

L’analisi dei dati viene utilizzata in diverse aree dell’informatica, come il machine learning, la business intelligence, la sicurezza informatica, la gestione dei dati, la visualizzazione dei dati e molto altro ancora. Grazie all’analisi dei dati, le organizzazioni possono prendere decisioni informate basate sui dati, identificare trend e modelli, migliorare i loro prodotti e servizi, ridurre i costi e aumentare l’efficienza dei loro processi.

In sintesi, l’analisi dei dati è un’attività essenziale in informatica che permette di trarre informazioni significative da grandi quantità di dati, fornendo una base solida per prendere decisioni informate e migliorare il funzionamento dei sistemi informatici.

Finita l’introduzione all’analisi dei dati e ai suoi utilizzi nel campo informatico vediamo come, con un semplice progettino, possiamo usare questo semplice concetto con una prova. Vediamo il progetto per primo:

Ecco il codice per far funzionare l’Arduino sopra:

#include <Wire.h>

void setup() {
  Serial.begin(9600);
}
int cont = true;
void loop() {
  if(cont)
  {
  for( int tempo = 1; tempo < 2001; tempo++)
  {
  Serial.print(String(tempo) + ", " + String(((analogRead(0) * 0.00488) - 0.5) * 100) + ", " +  String(analogRead(1)) + "\n");
  delay(1000);
  }
    cont = false;
  }
}

Questo codice stampa nel monitor seriali i dati presi dai sensori ogni secondo che noi prenderemo e caricheremo nel file .csv, dopo aver messo tutti i dati il risultato del grafico sara più a meno così:

Per esempio potremmo analizzare la temperatura, vedere come varia in un periodo di tempo (in questo esempio circa 30 min) e capire quando c’e magari bisogno di riscaldare o raffreadre l’ambiente o vedere la luminosità per vedere magari dove può essere migliore posizionare una pianta o per esempio si potrebbe confrontare la luce e la temperatura per capire la relazione tra esse. Questo è solo un esempio ipotetico e molto semplice ma analizzando i dati si possono fare cosa importanti, un esempio è Whatsapp un applicazione largamente usata un Italia completamente gratuita e senza pubblicità eppure se esiste è perche i creatori ci guadagnagno, grazie a i dati che raccolgono. Questo ci fà capire l’importanza dei dati che sono pagati addirittura pagati da altre azione per ottenerli e trarne vantaggio.

L’IA

L’intelligenza artificiale (IA) è una tecnologia che sta rivoluzionando il mondo degli affari, consentendo alle imprese di migliorare la produttività, ridurre i costi e fornire servizi migliori ai propri clienti. In una conferenza TED del 2017, l’esperto di IA Andrew Ng ha presentato il potenziale dell’IA nell’empowerment delle imprese di qualsiasi dimensione.

Ng ha iniziato il suo discorso spiegando come l’IA funzioni: la tecnologia consiste in modelli matematici complessi che possono apprendere dai dati e migliorare continuamente le loro prestazioni. Questi modelli possono essere addestrati per svolgere una vasta gamma di compiti, dai più semplici ai più complessi.

Secondo Ng, l’IA può essere utilizzata dalle imprese per risolvere problemi difficili e migliorare l’efficienza operativa. Ad esempio, un’azienda può utilizzare l’IA per analizzare i dati dei clienti e fornire suggerimenti personalizzati sulla base dei loro comportamenti di acquisto. L’IA può anche essere utilizzata per ottimizzare la catena di approvvigionamento, prevedere la domanda e ridurre gli sprechi.

Ng ha sottolineato che l’IA non è solo per le grandi imprese; le piccole e medie imprese possono anche beneficiarne. L’IA può aiutare le PMI a competere con le grandi aziende fornendo loro accesso a tecnologie avanzate a prezzi accessibili. Ad esempio, un’impresa manifatturiera può utilizzare l’IA per migliorare l’efficienza della produzione e ridurre i costi di produzione.

Tuttavia, Ng ha anche sottolineato che l’adozione dell’IA non è semplice. Le imprese devono affrontare diverse sfide, tra cui la mancanza di competenze tecniche, la complessità dell’implementazione dell’IA e la necessità di proteggere i dati sensibili.

MEMORIE

Mappa concettuale delle memorie presenti in un’architettura von Neumann:

  • Memorie:
    • Memoria cache: memoria a accesso rapido utilizzata per ridurre i tempi di accesso alla memoria principale.
    • Memoria principale: memoria contenente tutte le istruzioni del programma e i dati su cui tali istruzioni operano.
    • Memoria di massa: memoria non volatile utilizzata per memorizzare permanentemente i dati.
  • Politiche di indirizzamento:
    • Accesso diretto: l’indirizzo di memoria corrisponde direttamente all’indirizzo di un’area di memoria fisica.
    • Accesso casuale: l’indirizzo di memoria non corrisponde direttamente all’indirizzo di un’area di memoria fisica, ma viene mappato attraverso una tabella di indirizzamento.
    • Accesso sequenziale: l’indirizzo di memoria viene generato in modo sequenziale e il processore accede alla memoria in base all’ordine degli indirizzi generati.
  • Memorie utilizzate dal sistema operativo Android:
    • Memoria flash: memoria di massa utilizzata per archiviare i dati e le applicazioni.
    • Memoria RAM: memoria principale utilizzata per l’esecuzione delle applicazioni.
    • Memoria cache: memoria a accesso rapido utilizzata per ridurre i tempi di accesso alla memoria principale.

La scelta delle politiche di indirizzamento e delle tipologie di memoria utilizzate ha un impatto significativo sulle prestazioni del sistema. L’utilizzo di una memoria cache ad esempio, può ridurre notevolmente i tempi di accesso alla memoria principale e migliorare le prestazioni generali del sistema.

Simulazione nastro trasportatore con braccio robotico (arduino e componenti)

Realizzare un progetto con le tecnologie e con il modello Asf teorico che preferisci 
che simula un nastro trascorritore dove passano 4 diversi prodotti di diversa tipologia
A B C D 
quando passano due A A li impacchetto  con la scatola SA2
quando passano due BB li impacchetto con la scatola SB2
e cosi via

se arriva un solo prodotto….attendi il secondo prima di inscatolarlo
conta quanti prodotti complessivi hai valutato
e conta anche i prodotti per tipologia.

Realizzare la simulazione del processo di impacchettamento  con i sensori (led pir motori e altro).

CODICE:

const int LED_1 = 2;
const int LED_2 = 3;
const int LED_3 = 4;
const int LED_4 = 5;
const int LED_5 = 6;
const int LED_6 = 7;
const int LED_7 = 8;
const int LED_8 = 9;
void setup() {
Serial.begin(9600);
pinMode(LED_1, OUTPUT);
pinMode(LED_2, OUTPUT);
pinMode(LED_3, OUTPUT);
pinMode(LED_4, OUTPUT);
pinMode(LED_5, OUTPUT);
pinMode(LED_6, OUTPUT);
pinMode(LED_7, OUTPUT);
pinMode(LED_8, OUTPUT);
}
void loop() {
int randomNumber = random(1, 9);
switch (randomNumber) {
case 1:
digitalWrite(LED_1, HIGH);
break;
case 2:
digitalWrite(LED_2, HIGH);
break;
case 3:
digitalWrite(LED_3, HIGH);
break;
case 4:
digitalWrite(LED_4, HIGH);
break;
case 5:
digitalWrite(LED_5, HIGH);
break;
case 6:
digitalWrite(LED_6, HIGH);
break;
case 7:
digitalWrite(LED_7, HIGH);
break;
case 8:
digitalWrite(LED_8, HIGH);
break;
}
delay(1000);
digitalWrite(LED_1, LOW);
digitalWrite(LED_2, LOW);
digitalWrite(LED_3, LOW);
digitalWrite(LED_4, LOW);
digitalWrite(LED_5, LOW);
digitalWrite(LED_6, LOW);
digitalWrite(LED_7, LOW);
digitalWrite(LED_8, LOW);
static int count1 = 0;
static int count2 = 0;
static int count3 = 0;
static int count4 = 0;
if (randomNumber == 1 || randomNumber == 2) {
count1++;
if (count1 == 2) {
//Serial.print(“Scatola A”);
count1 = 0;
}
} else if (randomNumber == 3 || randomNumber == 4) {
count2++;
if (count2 == 2) {
//Serial.print(“Scatola B”);
count2 = 0;
}
} else if (randomNumber == 5 || randomNumber == 6) {
count3++;
if (count3 == 2) {
//Serial.print(“Scatola C”);
count3 = 0;
}
} else if (randomNumber == 7 || randomNumber == 8) {
count4++;
if (count4 == 2) {
//Serial.print(“Scatola D”);
count4 = 0;
}
}
}


Riconoscitore PIN con pir e led

Dato un sensore di presenza PIR
data una persona che si avvicina al dispositivo
fari iniziare a lampeggiare i 5 led collegati ai pin

e permettere di inserire i pin 5 pin da 0 a 6

il lampeggiamento finisce se il pin inserito è corretto e mette i led a luce fissa

se il pin è errato il lampeggiamento dei 5 pin è più veloce per il secondo tentativo

al terzo tentativo il lampeggiamento è molto più veloce…

il sistema conta i tentativi e ad ogni errore azzera l’inserimento

sono permessi solo 3 tentativi.

in base a quello che avete letto sopra potete intuire che oggi vedremmo come realizzare tale progetto: per simulare il tutto useremo la piattaforma Tinkerkad per utilizzare ana scheda Arduino.

una cosa importante da da specificare e che per questo progetto useremo un componente chiamato PIR

Ecco cui il progetto finale realizzato con Tinkerkad: l’oggetto rotondo bianco circondato da un quadrato verde è il nostro nuovo oggetto il PIR

Una volta fatto ciò non resta che aggiungerci il codice

    #include <Keypad.h>
    #define riga 4
    #define colonna 4
    #include <Adafruit_NeoPixel.h>
    
    char keymap[riga][colonna] = {
      
      {'1', '2', '3', 'A'},
      {'4', '5', '6', 'B'},
      {'7', '8', '9', 'C'},
      {'*', '0', '#', 'D'},
    };
    
    byte rigaPins[riga] = {13, 12, 11, 10};
    byte colonnaPins[colonna] = {9, 8, 7, 6};
     
    Keypad keypad = Keypad(makeKeymap(keymap),rigaPins,colonnaPins,riga,colonna);
     
    int conta = 0 ;
    
    
    void setup()
    {
    pinMode(13,OUTPUT);
      pinMode(0,OUTPUT);
      pinMode(2,OUTPUT);
      pinMode(3,OUTPUT);
      pinMode(12,OUTPUT); 
    bool valPIR = 0;   
     pinMode(8,OUTPUT) ;
    }
    
    
    bool stato0 () {
     char key = keypad.getKey();
     if (key == '3') { 
      return true ;
     }
     else {
      return false ;
     }
    }
      
    bool stato1 () { 
     char key = keypad.getKey();
     if (key == '4'){  
      return true ;
     }
     else {
      return false ;
     }
    }  
     
    bool stato2 ()  { 
     char key = keypad.getKey();
     if (key == '1') {
      return true ;
     }
     else {
      return false ;
     } 
    }
     
    bool stato3 () {
     char key = keypad.getKey();
     if (key == '2') {
      return true ;
     }
     else {
      return false ;
     }
    }
    
    void stato4() {
     digitalWrite(13,HIGH);
      digitalWrite(3,HIGH);
        digitalWrite(2,HIGH);
        digitalWrite(0,HIGH);
        digitalWrite(12,HIGH);
    }  
    
    void stato5(){
      digitalWrite(13,HIGH);
      delay(600);
        digitalWrite(3,HIGH);
      delay(600);
      
        digitalWrite(2,HIGH);
      delay(600);
      
        digitalWrite(0,HIGH);
      delay(600);
      
        digitalWrite(12,HIGH);
      delay(600);
    }
    void loop()
    {   
     if (stato0() == true) {
      if (stato1() == true) {
       if (stato2() == true) { 
        if (stato3() == true) {
         stato4 ; 
          
      if (stato0() == false) {
      if (stato1() == false) {
       if (stato2() == false) { 
        if (stato3() == false) {
         stato5 ; 
          
        
        
        
        }
       }
      }
     } 
    }
         }
       }
      }
     } 
    

    Fatto ciò vi lasci anche il link per un video dove potrete conoscere di più sul PIR

    https://www.maffucci.it/2021/02/28/arduino-usare-un-pir-hc-sr501/

    Page 1 of 4

    Powered by WordPress & Theme by Anders Norén