Iniziamo la descrizione dei componenti del sistema: Il Ricevitore.
Eccolo ancora in versione "prototipo"
E' composto da una scheda Arduino Uno, a cui è collegato lo shield ethernet per l'accesso alla rete locale e il ricevitore wireless RF433.
FUNZIONAMENTO e PROTOCOLLO
Il ricevitore wireless riceve i messaggi inviati dai diversi sensori e li rigira al server WEP/APP tramite chiamata HTTP; in sostanza agisce da semplice router.
I protocolli di comunicazione sono molto semplici e attualmente non sicuri, quindi per adesso il sistema non può girare su rete pubblica.
Il messaggio che il sensore invia al ricevitore è una stringa composta nel seguente modo:
SENSORE;VALORE;STATO|
dove SENSORE è il nome del sensore, VALORE è il valore corrente rilevato dal sensore e STATO e una particolare condizione del sensore (ALLARME, WARNING etc etc)
Il ricevitore prende questa stringa e la invia al server WEB/APP tramite la seguente chiamata HTTP GET:
http://NOMESERVER/data.php?u=PASSWORD&d=STRINGA
dove NOMESERVER è il dominio dove gira l'applicazione WEB di acquisizione dati, PASSWORD è una parola segreta conosciuta anche dal server WEB/APP e STRINGA è il dato del sensore.
Come già detto prima, il protocollo di comunicazione è molto banale e non esiste meccanismo di ACK...per adesso è solo un prototipo per verificarne il funzionamento logico...
HARDWARE
Schema Fritzling (approssimato)
PIN 2 in OUTPUT per il led di stato RF (ROSSO), indicante attività su ricevitore Wireless;
PIN 3 in OUTPUT per il led di stato ETH (VERDE), indicante attività su scheda di rete;
PIN 5V per alimentare il ricevitore Wireless e i led;
PIN GND per dare la massa al ricevitore Wireless;
PIN 7 in INPUT per i dati del ricevitore;
L'ethernet shield è collegato all'Arduino UNO, il tutto alimentato con 5V esterni.
SOFTWARE
Routine di inizializzazione:
- viene inizializzato il ricevitore wireless RF433 utilizzando la libreria RadioHead;
- viene configurata la scheda di rete utilizzando la libreria standard Ethernet; in questo particolare caso viene assegnato un indirizzo IP statico (ma nulla vieta di usare il DHCP se la rete locale lo prevede);
- vengono inizializzati i led di stato;
corpo principale del programma:
- il processo si mette in attesa di ricevere un segnale sul ricevitore wireless RF433;
- non appena viene ricevuto un messaggio viene acceso il led di stato RF e viene inviato il messaggio al server tramite chiamata HTTP;
- durante l'invio viene acceso il led di stato ETH che si spegne al termine della chiamata HTTP;
Qui potete trovare il codice sorgente dello sketch del ricevitore: DOWNLOAD
Ecco un video del ricevitore in azione...
Nessun commento:
Posta un commento