Conrad Components 10215 Profi Lernpaket Internet of Things Course material 14 years and over Istruzioni per l'uso

Tipo
Istruzioni per l'uso
PRIMA DI INIZIARE
La prima volta che si collegano le schede WiFi per IoT (Internet of Things) (di
seguito chiamate anche NanoESP), può accadere che il computer non trovi
automaticamente i driver necessari per il convertitore USB seriale. Se ciò accade,
scaricare i driver dalla pagina www.iot.fkainka.de/driver e installarli
manualmente. Il software di Arduino consente di selezionare la porta e la scheda
Arduino Nano (processore: Atmega328). A questo punto il controller dovrebbe
essere pienamente operativo.
Anche per utilizzare il monitor seriale è necessario effettuare alcune impostazioni.
La velocità di trasmissione utilizzata in questo caso è di 19200 baud. Per poter
inviare comandi, è inoltre necessario selezionare le opzioni CR e NL accanto al
menu del baudrate.
Impostazioni corrette per l'ambiente Arduino
Ho utilizzato le versioni IDE per Arduino 1.6.5 e 1.6.6. Le versioni precedenti
possono causare problemi. La versione corrente dell'IDE per Arduino è disponibile
sul sito www.arduino.cc,+++
In caso di difficoltà o problemi con la scheda o il kit di apprendimento, può essere
utile consultare la pagina www.iot.fkainka.de. Oltre al forum, la pagina offre
nuovi progetti degli utenti e l'ultima versione dei programmi presentati.
Il kit di apprendimento è una breadboard alla quale è possibile collegare la scheda
NanoESP, come mostrato nella foto seguente. Questo lascia ampio spazio di
sperimentazione, mentre il modulo WLAN si estende dietro, sopra la breadboard.
Quindi è possibile inserire il cavo Micro-USB, che interferisce minimamente, come
illustrato nella figura della sezione seguente. Per immagini più dettagliate della
struttura, vedere il capitolo corrispondente.
La scheda WiFi per IoT (NanoESP)
L'elemento principale di questo kit di apprendimento è la scheda WiFi per IoT
(NanoESP). Come si può vedere abbastanza bene sul lamierino, la scheda è
costituita da due componenti. Nella metà a sinistra c'è un sistema a
microcontroller compatibile con Arduino e simile ad Arduino Nano. Sul lato destro
c'è il modulo WLAN con l'etichetta ESP8266,
Questi due componenti comunicano per mezzo di un'interfaccia seriale generata
tramite software.
La scheda NanoESP sulla breadboard
Disposizione dei pin della scheda
Sulla scheda sono presenti molti elementi diversi, come ad esempio i pin, alcuni
dei quali hanno una funzione speciale, o anche i LED le cui funzioni non sono
sempre evidenti a prima vista. La figura seguente offre una panoramica delle
funzioni e degli identificatori principali dei singoli elementi.
I pin e gli identificatori più importanti della scheda
Il modulo WLAN è controllato dai cosiddetti comandi AT. La parte Arduino della
scheda è quindi collegata al modulo WLAN tramite i pin 11 e 12. Un piccolo
circuito converte il livello di 5 V nel livello compatibile di 3,3 V. I pin 11 e 12 non
devono essere utilizzati nei propri progetti.
Altre importanti caratteristiche hardware della scheda sono elencate brevemente
nella tabella seguente.
Specifiche tecniche
Microcontroller: ATmega328
Memoria Flash 32 KB (di cui 0,5 KB per il bootloader)
SRAM: 2 KB
EEPROM 1 kB
Frequenza di clock: 16 MHz
Pin di I/O: 20 (di cui 2 per la comunicazione con il modulo
WLAN)
U
di cui PWM: 6
U
di cui ingressi analogici: 6
Chip USB-seriale: CH340G
Tensione di esercizio: 5 V
Tensione in ingresso consigliata: 7-12 V
Corrente massima per pin di I/O: 40 mA
Resistenza uscita da 3,3 V: 50 mA
Modulo WLAN: ESP8266
SPI-Flash 4 Mbit
Tensione di esercizio: 3,3 V
Standard WLAN: 802.11 b/g/n
Modalità WLAN: Wi-Fi Direct (P2P), Soft-AP
Firmware: Firmware AT versione 00:22
Varie: Stack TCP/IP integrato
Potenza di uscita di 19,5 dBm in modalità 802.11b
CPU a 32 bit integrata a bassa potenza
Comunicazione tramite UART
COMPONENTI DEL KIT DI
APPRENDIMENTO
Di seguito viene offerta una panoramica dei componenti inclusi nel kit di
apprendimento.
1 Scheda WiFi per IoT (NanoESP)
1 Breadboard
1 m Filo di collegamento
2 Pulsanti
1 Clip da 9V
1 LED (rosso)
1 LED RGB (4 terminali)
1 Resistenza da 10 kOhm (marrone-nero-arancio)
1 Resistenza da 1 kOhm (marrone-nero-rosso)
1 Fototransistor (2 terminali)
1 NTC da 10 kOhm
1 Altoparlante piezoelettrico
1 Potenziometro da 10 kOhm con pomello rosso
DESCRIZIONE DEL
MODULO
In questo primo capitolo vengono descritte le funzioni base del modulo WLAN. Il
modulo è controllato dai cosiddetti comandi AT. Tutti i programmi di esempio qui
utilizzati, così come la guida e ulteriori informazioni sono reperibili sul sito
www.iot.fkainka.de
Il modo più semplice è quello di scaricare l'intera cartella compressa (.zip), quindi
copiarla e decomprimerla nella propria cartella dei disegni. Quindi è possibile
aprire facilmente tutti i programmi uno dopo l'altro dall'interfaccia Arduino.
1.1
|
Comandi AT base
Una prima impressione sull'uso dei comandi AT si ottiene semplicemente
provandoli. Ecco perché in questa sezione vengono descritti alcuni dei comandi
base del modulo.
Aprire il programma P01_SoftwareSerial nell'IDE di Arduino. Si tratta di un
programma molto semplice, che non fa altro che filtrare tutti i dati ricevuti tramite
l'interfaccia hardware seriale del microcontroller attraverso l'interfaccia software
definita dall'utente sul controller ESP. Il tutto funziona anche in senso inverso.
Come si può vedere nel codice sorgente, le due connessioni dell'interfaccia
software sono i pin 11 e 12. Questi non devono essere utilizzati come pin GPIO
nei propri progetti. È inoltre necessaria la libreria di software seriale, già
installata sulla maggior parte delle versioni di Arduino in caso contrario,
scaricarla.
Una volta che il programma è stato caricato, è possibile avviare il monitor seriale
dell'interfaccia di Arduino. Prima di procedere, è necessario effettuare ancora due
importanti impostazioni sul monitor seriale, ovvero, nell'angolo in basso a destra
selezionare il baudrate di 19200 e nella casella a sinistra selezionare CR e NL.
Ora si può già vedere un messaggio, vale a dire AT e poche righe sotto OK. Il
comando AT è stato inviato dal microcontroller al modulo ESP e il modulo ha
risposto con OK. In questo modo viene indicato che il modulo WLAN funziona ed
è pronto all'uso.
Impostazioni del terminale: CR e NL e una velocità di trasmissione di 19200
baud
1.1.1 | Comandi base
Per testare alcuni comandi base del modulo, è sufficiente digitare il comando e
premere
[Enter]
per inviarlo al modulo. Viene fatta distinzione tra lettere
maiuscole e minuscole. È possibile inviare il primo comando digitando
AT
sul monitor seriale e premendo
[Enter]
. Il programma caricato inoltra il comando
al modulo ESP, che a sua volta risponde con AT e quindi con OK. Il comando
successivo che è possibile testare è:
AT+GMR
Tramite questo comando è possibile visualizzare il firmware attuale e il numero di
versione.
Tramite il comando
AT+RST
è possibile ripristinare il modulo. Il terminale visualizza alcuni caratteri
incomprensibili e alla fine la parola ready per indicare che il modulo è pronto. Un
altro comando è:
ATE0
Esso consente di disattivare la cosiddetta eco del modulo. Questo significa che il
comando inviato non viene ritrasmesso, ma si riceve solo la risposta. Per
esempio, se si invia il comando AT, non si riceve prima AT e dopo OK, ma solo
OK. Per i primi tentativi, è consigliabile riattivare l'eco con
ATE1
.
Primi test con i comandi AT
1.1.2 | Comandi WLAN
I seguenti comandi WLAN consentono di modificare le funzioni WLAN del modulo.
Per alcuni comandi è possibile non solo definire uno stato, ma anche controllare lo
stato attuale. Questo viene fatto inserendo un punto interrogativo immediatamente
dopo il comando, per esempio
AT+CWMODE?
Il valore di ritorno è in genere
+CWMODE=2
seguito da OK. Se si immette
AT+CWMODE=?
il modulo risponde con i possibili parametri del comando, in questo caso 1-3.
CWMODE è il comando tramite il quale è possibile impostare la modalità WLAN.
Tre sono le modalità operative, descritte nel seguente ordine.
1
AT+CWMODE=2 il modulo come un punto di accesso (modalità AP)
Al momento della consegna, il modulo è un access point. Ciò significa che è
possibile abilitare una connessione diretta con il modulo tramite un dispositivo che
supporta la WLAN, come per esempio uno smartphone o un PC. È sufficiente
cercare la rete WLAN aperta denominata NanoESP e collegarsi ad essa. In
condizioni di lavoro non viene assegnata alcuna password, in modo che la
connessione sia agevole. Se quando si è collegati al modulo non si ha alcuna
connessione a Internet, significa che il modulo non è un router con una connessione
propria alla rete telefonica. Questa modalità WLAN è comunque utile se per
esempio è necessaria una rete sicura e chiusa. A proposito di sicurezza: Vi è anche
la possibilità di assegnare una password alla rete tramite il comando:
AT+CWSAP
Qui devono ancora essere specificati i parametri, in sequenza e separati dalla
virgola:
U
il nome della rete tra virgolette,
U
la password tra virgolette,
U
l'ID del canale (un valore qualsiasi tra 1 e 13),
U
e la modalità di crittografia (0-4).
Un'impostazione possibile sarebbe:
AT+CWSAP="MyNanoESP","MyPassword",5,3
Dopo qualche istante compare OK come conferma. Se viene visualizzato ERROR,
immettere nuovamente il comando facendo attenzione alle virgolette. Se compare
di nuovo la scritta ERROR, verificare se CWMODE è realmente 2.
Quando tutto funziona, è possibile collegarsi alla scheda tramite un dispositivo
abilitato per la WLAN. Tutti i dispositivi collegati al modulo possono essere
visualizzati con l'indirizzo IP e MAC utilizzando il comando
AT+CWLIF
.
Il modulo in modalità Station. L'IP del computer collegato è evidenziato.
2
AT+CWMODE=1 il modulo in modalità Stazione
Tramite il comando
AT+CWMODE=1
è possibile impostare il modulo in modalità Station. Questa modalità consente il
collegamento al router WLAN. Il modulo viene così collegato anche a Internet e
dispone di molte più opzioni.
Prima però occorre elencare tutte le reti presenti nel raggio di ricezione tramite il
comando
AT+CWLAP
e quindi verificare se la propria rete è presente. Per poter stabilire una
connessione con router, è necessario il comando
AT+CWJAP
Anche questo, come il comando CWSAP, ha parametri importanti, vale a dire il
nome della rete WLAN (chiamata anche SSID) e la password, entrambi racchiusi
tra virgolette e separati da una virgola. Una connessione a un secondo modulo,
impostato con i dati descritti nella sezione precedente sarebbe simile a questa:
AT+CWJAP="MyNanoESP","MyPassword"
La connessione può richiedere alcuni secondi e poi dovrebbe restituire OK. Tra
l'altro si può richiamare dal router l'indirizzo IP assegnato del modulo tramite il
comando
AT+CIFSR
. Questo sarà importante successivamente, quando si vorrà stabilire un
collegamento al server TCP del modulo. Tramite il comando
AT+CWQAP
è anche possibile disattivare nuovamente il collegamento dal router.
La scheda stabilisce una connessione a un secondo NanoESP.
3
AT+CWMODE=3 la doppia modalità
La terza opzione possibile delle impostazioni WLAN è la doppia modalità che,
come suggerisce il nome, consente il funzionamento del modulo sia in modalità
Station che AP. Questo significa che i dispositivi possono stabilire sia una
connessione WLAN diretta con il modulo oppure raggiungere il modulo come
stazione intermedia attraverso il router. Un'opzione utile, per esempio, quando si
pianifica una rete interna con più moduli, uno dei quali deve fungere da server che
fornisce i dati alla rete. Ma questa soluzione verrà descritta più avanti.
1.2 |
Configurazione automatica
I comandi base possono essere già testati manualmente. Questo capitolo affronta
solo la questione di come possono essere eseguiti automaticamente tramite il
controller. Viene descritto un ulteriore comando che consente di verificare se è
possibile raggiungere un PC collegato in rete o un server in Internet. In questo
esempio viene eseguito il ping al server di Google. Nel programma di esempio
P02_GooglePing le operazioni eseguite manualmente nel primo esempio ora
vengono in gran parte automatizzate. Il controller invia comandi in successione al
modulo ESP e crea quindi, tra l'altro, la connessione alla rete WLAN. I diversi
timeout offrono al modulo il tempo sufficiente per rispondere.
Affinché il programma possa funzionare correttamente, è necessario registrare i dati
della WLAN dopo #define SSID e PASSWORD #define all'inizio del codice sorgente
del programma. Il modulo richiede l'accesso a Internet per poter eseguire il suo ultimo
comando. Tramite il comando
AT+PING
è possibile eseguire il ping ad altri dispositivi sulla rete. Il ping è il segnale che
indica l'accessibilità generale di un computer. In questo caso al server di Google
viene inviato il comando AT+PING="www.google.de". Quando torna indietro la
risposta del server, sul monitor seriale viene visualizzato un messaggio di
conferma e il LED identificato con D3 sul pin D13 della scheda collegata si
accende. La prima comunicazione con Internet è stata stabilita.
Il programma
Di seguito vengono analizzate passo passo le funzioni del programma. Per iniziare
Panoramica dei comandi nell'appendice e sul sito
web
Tutti i comandi importanti sono comunque reperibili
nell'appendice e sul sito web www.iot.fkainka.de. Alcuni
comandi, come per esempio l'impostazione della velocità
di trasmissione, sono stati volutamente omessi
dall'elenco per evitare di rendere inutilizzabile il modulo.
viene descritta la comunicazione con il modulo.
1
Comunicazione seriale
La comunicazione avviene tramite l'interfaccia software seriale fornita insieme alla
libreria SoftwareSerial. Durante l'inizializzazione è necessario specificare anche i
pin utilizzati, in questo caso, 11 e 12.
001
#include <SoftwareSerial.h>
002
SoftwareSerial esp8266(11, 12);
Proprio come nel caso di un'interfaccia seriale normale, tramite i comandi
esp8266.print o esp8266.println si possono trasmettere byte o intere righe.
Particolarmente utili sono i comandi esp8266.find e esp8266.findUntiltramite i quali
è possibile controllare il flusso in entrata per determinate stringhe. Questo rende
molto facile intercettare la risposta appropriata del modulo. Tuttavia, se non arriva
una stringa prevista, la ripresa del programma può richiedere del tempo. Il tempo
di attesa (timeout) viene definito tramite esp8266.setTimeout. Con findUntil() si
può tuttavia definire una seconda stringa che abbandona la funzione di ricerca e
restituisce "false" come valore di ritorno. Questo è utile nella funzione sendCom ():
001
//-------Controll ESP--------
002
003
boolean sendCom(String command, char respond[])
004
{
005
esp8266.println(command);
006
if (esp8266.findUntil(respond, "ERROR"))
007
{
008
return true;
009
}
010
else
011
{
012
debug("ESP SEND ERROR: " + command);
013
return false;
014
}
015
}
Quando si richiama la funzione, è quindi necessario passare ad essa anche il
comando e il valore di ritorno previsto, per esempio AT e OK. Tramite println() il
comando viene trasmesso e si attende fino a quando viene ricevuto il valore di
ritorno previsto o il messaggio ERROR. Se l'attesa viene soddisfatta, la funzione
restituisce il valore "true". In caso contrario, il modulo invierà tramite la funzione
debug()-un messaggio ESP SEND ERROR e restituirà il comando inviato in modo
che sia possibile controllare facilmente quale comando sta causando problemi.
Non tutti i comandi AT hanno un valore di ritorno univoco o di una singola riga. Se
per esempio viene richiesto l'indirizzo IP, in genere non esiste un valore
precedentemente noto. Pertanto, esiste una seconda funzione sendCom() che
richiede solo il parametro command e restituisce l'intera stringa ricevuta. Tale
stringa tuttavia non dovrebbe essere troppo lunga, in quanto il buffer
dell'interfaccia SoftwareSerial può andare in overflow.
001
String sendCom(String command)
002
{
003
esp8266.println(command);
004
return esp8266.readString();
005
}
2
Risoluzione dei problemi
Lo sviluppo di programmi spesso implica errori e complicazioni. Esistono quindi
due funzioni di debug che vengono attivate o disattivate tramite un parametro
proprio all'inizio del programma.
#define DEBUG true
La prima funzione non rappresenta più un'edizione semplificata del testo tramite
l'interfaccia seriale definita come standard. Se la costante DEBUG è vera, viene
inviato il contenuto della stringa Msg.
001
void debug(String Msg)
002
{
003
if (DEBUG)
004
{
005
Serial.println(Msg);
006
}
007
}
La seconda funzione è altrettanto semplice. Se viene richiamata la funzione
serialDebug, il programma entra in un loop infinito e da quel momento in poi si
comporta come il primo programma SoftwareSerial testato. Ciò significa che tutti i
dati che vengono inviati al controller tramite il monitor seriale saranno inoltrati
direttamente al modulo e viceversa. In caso di errore, è possibile richiamare la
funzione e inviare i comandi manualmente per verificare dove si trova l'errore.
001
//---Debug Functions---
002
void serialDebug() {
003
while (true)
004
{
005
if (esp8266.available())
006
Serial.write(esp8266.read());
007
if (Serial.available())
008
esp8266.write(Serial.read());
009
}
010
}
3
Configurazione
Per rendere i programmi generalmente più chiari, la maggior parte delle
impostazioni è stata separata in funzioni proprie, soprattutto la funzione espConfigi
n cui vengono impostati i parametri più importanti per il programma.
001
//---Config ESP8266---
002
boolean espConfig()
003
{
004
boolean success = true;
005
esp8266.setTimeout(5000);
006
success &= sendCom("AT+RST", "ready");
007
esp8266.setTimeout(1000);
008
009
if (configStation(SSID, PASSWORD)) {
010
success &= true;
011
debug("WLAN Connected");
012
debug("My IP is:");
013
debug(sendCom("AT+CIFSR"));
014
}
015
else
016
{
017
success &= false;
018
}
019
020
success &= sendCom("AT+CIPMODE=0", "OK");
021
success &= sendCom("AT+CIPMUX=0", "OK");
022
023
return success;
024
}
All'inizio della funzione la variabile success viene prima impostata su true, perché
ora viene collegata a varie funzioni AND. Ciò significa che se anche solo una delle
funzioni restituisce il valore false, success diventa subito false e l'intera
configurazione non va a buon fine. Il primo comando AT di cui viene controllata la
corretta esecuzione è reset, eseguito quasi sempre all'inizio del programma per
garantire che i tentativi precedenti non abbiano ancora raggiunto il modulo.
Tuttavia, possono essere necessari fino a cinque secondi affinché il modulo
restituisca il messaggio ready. Pertanto poco prima della funzione
sendCom()viene impostato un timeout elevato per esp8266.findUtil. Dopo il reset il
timeout viene reimpostato sul valore predefinito di un secondo.
Successivamente viene richiamata una funzione definita dall'utente, denominata
configStation(), descritta nella prossima sezione. Questa funzione consente di
collegare il modulo alla rete domestica. Pertanto vengono trasmessi i parametri
SSID e PASSWORD , inseriti all'inizio del programma. Una volta che la
connessione è stata stabilita, il relativo messaggio e infine l'IP corrente del modulo
vengono trasmessi al monitor seriale. Alla fine della funzione vengono utilizzati
ancora dei parametri, che verranno trattati più avanti. Infine viene restituita la
variabile success che si spera abbia mantenuto il valore true.
001
boolean configStation(String vSSID, String vPASSWORT)
002
{
003
boolean success = true;
004
success &= (sendCom("AT+CWMODE=1", "OK"));
005
esp8266.setTimeout(20000);
006
success &= (sendCom("AT+CWJAP=\"" + String(vSSID) + "\",\""
+ String(vPASSWORT) + "\"", "OK"));
007
esp8266.setTimeout(1000);
008
return success;
009
}
La funzione configStation() è stata richiamata nella funzione espConfig(). Qui
viene eseguita l'impostazione della modalità WLAN sulla modalità Station tramite il
comando CWMODE e infine la connessione alla rete tramite il comando CWJAP.
La connessione può richiedere un po' di tempo, ragione per cui il timeout è stato
aumentato a 20 secondi. Qualora si preferisca la modalità WLAN doppia, per
CWMODE qui è possibile immettere 3.
001
boolean configAP()
002
{
003
boolean success = true;
004
005
success &= (sendCom("AT+CWMODE=2", "OK"));
006
success &= (sendCom("AT+CWSAP=\"NanoESP\",\"\",5,0",
"OK"));
007
008
return success;
009
}
In questo esempio la funzione configAP() non viene richiamata, ma è comunque
opportuno descriverla brevemente. Essa rappresenta, per così dire, la controparte
della funzione configStation()poiché qui il modulo viene impostato come access
point. Non è necessario un timeout più lungo, in quanto il modulo è in grado di
elaborare il comando CWSAP molto più velocemente. Nei tentativi successivi,
nella funzione espConfig()al posto della funzione configStation() viene richiamata
la funzione configAP().
001
void setup()
002
{
003
// Open serial communications and wait for port to open:
004
Serial.begin(19200);
005
// set the data rate for the SoftwareSerial port
006
esp8266.begin(19200);
007
008
if (!espConfig()) serialDebug();
009
else debug("Config OK");
010
011
if (sendCom("AT+PING=\"www.google.de\"", "OK"))
012
{
013
Serial.println("Ping OK");
014
digitalWrite(13, HIGH);
015
}
016
else
017
{
018
Serial.println("Ping Error");
019
}
020
}
021
022
void loop() // run over and over
023
{
024
//Start serial Debug Mode - Type Commandos over serial Monitor
025
serialDebug();
026
}
Vengono trattate le funzioni più importanti presenti in quasi tutti i programmi. Nelle
note funzioni Arduino setup() e loop() ora vengono utilizzate queste funzioni. In
primo luogo, tuttavia, vengono inizializzate le due interfacce seriali con 19200
baud. Solo a questo punto viene richiamata la funzione espConfig(). In caso di
guasto viene avviata immediatamente la funzione serialDebug(). Se tutto funziona
correttamente, viene inviato il relativo messaggio. Nei programmi successivi il LED
sul pin 13, contrassegnato sulla scheda con D3, si accende se la configurazione è
stata eseguita correttamente. Si dispone così di un feedback, se il modulo non è
collegato a un PC con il monitor seriale. In questo esperimento il LED è comunque
necessario per il feedback dello stato di ping. La query è uguale anche nella riga
successiva dopo la configurazione. Il comando AT+PING con l'indirizzo Google
viene inviato come parametro. Anziché questo indirizzo, si potrebbe eseguire una
query su un indirizzo IP della rete locale. Se la query viene eseguita
correttamente, viene visualizzato un messaggio e il LED D3 viene attivato. Come
azione finale, il programma passa alla funzione loop che a sua volta richiama la
funzione serialDebug(). È quindi possibile verificare ulteriori comandi a seconda
del programma e, per esempio, eseguire il ping su altri indirizzi.
1.3 | Rilevamento di una rete
In questo capitolo, tra le altre cose, viene esaminata per la prima volta una
configurazione hardware più piccola. Scopo del progetto è un tipo di impianto di
allarme che risponde quando una particolare rete entra nel raggio di copertura o
viene attivata.
Vengono utilizzati solo due componenti e del filo. La struttura precisa è riportata
nelle relative figure.
Componenti necessari
1 breadboard, 1 scheda NanoESP, 1 elemento
piezoelettrico, filo di collegamento
Collegamento dell'altoparlante piezoelettrico
Il codice sorgente per questo progetto è diverso da quello dell'esperimento
precedente soprattutto per quanto riguarda le seguenti funzioni:
001
void findSSID()
002
{
003
esp8266.println("AT+CWLAP");
004
if (esp8266.findUntil(ToFindSSID,"OK")) alarm();
005
else debug("SSID not found!");
006
}
007
008
void alarm()
009
{
010
debug("alarm!");
011
012
digitalWrite(LED_ALARM, HIGH);
013
014
for (int i; i <=30; i++)
015
{
016
tone(PIEZO, 400, 500);
017
delay(500);
018
tone(PIEZO, 800, 500);
019
delay(500);
020
}
021
022
digitalWrite(LED_ALARM, LOW);
023
}
La funzione findSSID() viene richiamata circa ogni 30 secondi nella routine loop e
cerca tutte le reti nella zona. Se viene trovata la rete desiderata, viene attivata la
funzione alarm() che accende il LED D3 ed emette un segnale acustico sul
componente piezoelettrico. Nel programma di esempio viene cercata una rete con
SSID NanoESP , quindi sostanzialmente altre reti NanoESP nel raggio di
copertura. Ma all'inizio del programma, in corrispondenza di #define ToFindSSID ,
si può semplicemente immettere un SSID diverso. Ciò consente di verificare, per
esempio, qual è la portata della propria WLAN.
UDP E IP
Questo capitolo descrive lo scambio di dati di base tra due sistemi su una rete
WLAN. Verranno trattati argomenti quali indirizzi IP, porte e protocollo UDP.
Questi concetti fondamentali devono essere spiegati prima.
Che cos'è un indirizzo IP?
Un indirizzo IP è simile a un indirizzo postale e consente di identificare e
indirizzare un computer in rete in modo univoco. Un indirizzo IP, in base allo
standard IPv4 ancora diffuso, per esempio ha il seguente aspetto:
192.168.4.1
È composto da quattro numeri, o più specificamente quattro byte. Questo significa
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65
  • Page 66 66
  • Page 67 67
  • Page 68 68
  • Page 69 69
  • Page 70 70
  • Page 71 71
  • Page 72 72
  • Page 73 73
  • Page 74 74
  • Page 75 75
  • Page 76 76
  • Page 77 77
  • Page 78 78
  • Page 79 79
  • Page 80 80
  • Page 81 81
  • Page 82 82
  • Page 83 83

Conrad Components 10215 Profi Lernpaket Internet of Things Course material 14 years and over Istruzioni per l'uso

Tipo
Istruzioni per l'uso