RFLink Gateway e Arduino Mega2560: trasmettere e ricevere a 433Mhz

Cos’è RFLink Gateway

RFLink Gatrway è un progetto gratuito che implementa la comunicazione via radio tra dispositivi, anche in modo bidirezionale.
Il progetto è sviluppato da Stuntteam che ha fondato il sito http://www.rflink.nl dalla quale è possibile scaricare un firmware già pronto per essere caricato su una scheda Arduino Mega 2560.

Gli sviluppatori di Stuntteam sono molto attivi, grazie anche ai continui feedback da parte della community che sono riusciti a costruire attorno al loro progetto. Questa combinazione vincente fa in modo che il team riesca a rilasciare versioni nuove del firmware quasi mensilmente, arricchendo il software di funzionalità ed espadendo la compatibilità dei protocolli gestiti. Per scaricare l’ultima versione del firmware bisogna accedere al loro sito http://www.rflink.nl

Come funziona RFLink Gateway?

RFLink Gateway è un firmware pronto all’uso che va caricato su una scheda Arduino Mega 2560. Gli sviluppatori di Stuntteam hanno deciso probabilmente di usare una scheda di prototipizzazione più evoluta del classico Arduino UNO perchè cosi ci sono più risorse hardware disponibili e quindi più libertà di implementazioni future.
Entriamo più sullo specifico.

Ricevere e trasmettere segnali modulati a 433.92Mhz

Il Firmware ha il compito di ricevere e trasmettere i segnali radio provenienti da diversi dispositivi che possiamo trovare in casa come ad esempio un telecomando apri cancello, spine intelligenti, sistemi di condizionamento,i sensori della nostra mini stazione meteo o sensori di sicurezza come rilevatori di gas e intrusione.
I dispositivi che scambiano dati via radio, hanno frequenze e potenze di trasmissione ben definite dalle autorità.
Normalmente le frequenze utilizzate dai radiocomandi europei sono “frequenze libere” a 433Mhz, ma si trovano radiocomandi a 315Mhz e 868Mhz.
Ad ogni modo, prima di usare o acquistare dispositivi radiotrasmittenti, consiglio sempre di consultare il Piano nazionale di ripartizione delle frequenze per evitare di infrangere la legge e/o interferire con altri dispositivi o enti come ad esempio aerei e aereoporti.
La frequenza ci spiega “in che canale” avviene la trasmissione radio, ma il modo con la quale trasmetto l’informazione è detta modulazione.
Nelle trasmissioni digitali, la modulazione più semplice e meno costosa è la ASK (Amplitude-shift keying) in italiano “modulazione d’ampiezza”. Un esempio pratico di modulazione d’ampiezza digtale che credo essere più comunemente conosciuto è la trasmissione di un messaggio via codice morse.
Altri principali tipi di modulazione radio digitate sono la FSK (Frequency-shift keying) e la PSK (Phase-shift keying) che non tratteremo in questo articolo.

Protocolli di comunicazione

Oltre alla frequenza, va individuato il protocollo con la quale trasmettitore e ricevitore dialogano. Il protocollo infatti definisce le regole con la quale un dispositivo può comunicare con un altro dispositivo. Non esiste purtroppo un linguaggio comune  tutti i costruttori di radiocomandi, quindi il firmware RFLink ha il compito di raccogliere questi frammenti di informazioni radio e cercare un pattern che gli permetta di riconoscere il protocollo con la quale un dispositivo sta trasmettendo. Se il protocollo è stato riconosciuto allora il Firmware può presentare in output una serie di informazioni decodificate.
Al contrario, quando si vuole trasmettere un messaggio a un dispositivo radio, dobbiamo codificare l’iformazione secondo il protocollo di quel determinato dispositivo e trasmetterlo con la frequenza e modulazione corretta.

Quale hardware è necessario?

RFLink Gateway ha bisogno di:

  • Una scheda Arduino Mega2560 (o compatibile)
  • Un ricevitore RF ASK della frequenza con la quale vogliamo lavorare. In questo tutorial useremo il modulo RXB6 a 433Mhz
  • Un trasmettitore RF ASK della frequenza con la quale vogliamo lavorare. In questo tutorial useremo il modulo FS1000A a 433Mhz

Questa configurazioe hardware è una delle possibili suggerite da Stuntteam, per maggiori info suggerisco di visitare la loro pagina dedicata Wiring.

Collegare Arduino Mega2560, ricevitore e trasmettitore

Cominciamo collegando il ricevitore RXB6  alla board Arduno Mega2560 nel seguente modo:

  • RXB6 GND -> GND Arduino Mega2560
  • RXB6 DATA -> PIN19 (RX1) Arduino Mega2560
  • RXB6 5V ->PIN16 (TX2) Arduino Mega2560
  • RXB6 ANT -> spezzone di filo lungo 17,3cm che fa da antenna ricevente
RXB6 Esempio modulo ricevitore 433Mhz
Esempio modulo ricevitore 433Mhz

Quindi colleghiamo il trasmettitore FS1000A alla board Arduno Mega2560 nel seguente modo:

  • FS1000A DATA -> PIN14 (TX3) Arduino Mega2560
  • FS1000A VCC -> PIN15 (RX3) Arduino Mega2560
  • FS1000A GND ->GND Arduino Mega2560
  • FS1000A ANT -> spezzone di filo lungo 17,3cm che fa da antenna trasmittente
Modulo FS1000A 433Mhz
Modulo FS1000A 433Mhz

Caricare il firmware RFLink Gateway su Arduino Mega2560

La procedura per caricare il firmware RFLink Gateway è davvero molto semplice.
Per prima cosa va scaricato il firmware dal sito del progetto. Clicca qui per: RFLink Latest Firmware Version

Una volta scaricato il file, nel nostro caso il file si chiama: RFLink_v1.1_r48.zip lo decomprimiamo in una cartella.
Per semplificare lo decomprimo in C:\RFLink o nel desktop.

Notiamo subito che all’interno dell’archivio zip troviamo diversi file. Di regola, se c’è un file Readme, è buona cosa per l’appunto leggerlo.

File contenuti nel file zip della release R48
File contenuti nel file zip della release R48

Ad ogni modo dentro a Readme_RFLink.txt troviamo il changelog, ovvero le varie modifiche che si sono susseguite nel tempo durante le release. Qui troviamo quali dispositivi sono stati resi compatibili con la nuova release.
Il file Supported_Device_List.txt definisce tutti i dispositivi compatibili in questa versione.
Il file Readme_Loader.txt spiega come caricare il firmware nella board Arduino.

Non serve Arduino IDE

Per caricare il firmware è necessario:

Collegare Arduino Mega2560 ad un PC Windows ed eseguire il programma RFLinkLoader.exe
Dal programma selezionare il file RFLink.cpp.hex e verificare che Arduino sia correttamente riconosciuto dal programma, quindi lanciare la scrittura.

RFLink Loader caricare file hex e scriverlo in Arduino Mega2560
Esempio caricamento firmware RFLink Gateway

Al termine della scrittura del firmware verremo informati dal messaggio “programming successful”
Durante le prove sono stati riscontrati dei problemi col caricamento del firmware perchè RFLink Loader esegue un altro file exe chiamato avrdude.exe Per ovviare a questo problema è stato eseguito il programma RFLink Loader come amministratore.

Ricevere i messaggi radio

Una volta caricato il firmware, se abbiamo collegato bene il ricevitore, il trasmettitore e Arduino al PC, possiamo usare sempre il programma RFLink Loader per vedere i primi messaggi dai nostri dispositivi.

 

RFLink Loader logging messaggi
Esempio di ricezione dati da termometro esterno grazie a RFLink Loader

E qui si apre un mondo!

Per concludere

Il progetto RFLink è gratuito ma come abbiamo visto richiede molto impegno. Va considerata anche solo una piccola donazione al team di sviluppo in modo da sostenerli.

Se vi è piaciuto l’articolo non esitate a condividerlo sui social! Iscrivetevi alla pagina facebook e twitter di Ciaobit.com!

Riguardo Matteo Dalle Feste

Web Designer e Developer presso una nota testata giornalistica sul turismo. Appassionato di domotica, nel tempo libero, cura la realizzazione sia hardware che software di piccoli progetti domotici fai da te.

Guarda anche

Esp8266 montato su NodeMCU

Come programmare l’esp8266 con Arduino IDE

In questo tutorial vedremo come preparare un ambiente di sviluppo per l’esp8266 utilizzando il famoso …

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *