Grazie a Seven che a ha scritto questo interessante post nel forum di vololiberomontecucco (la casa di SWPI, ndr), sono venuto a conoscenza di un’altra modalità per ricevere e decodificare i segnali radio dei sensori esterni della mia stazione meteo PCE-FWS 20 alias Fine Offset WH1080 con il Raspberry Pi.
Come ho scritto in un recente post, dopo aver giocato con provato diverse soluzioni, tra cui su tutti SWPI e RFM01, sono da mesi tornato alla soluzione USB con PYWWS. Devo dire che come stabilità è perfetto adesso, ma come comodità lascia a desiderare.
Purtroppo la soluzione di ricezione con RFM01 era difficoltosa e dopo averci perso tanto tempo dietro non ho intenzione di ritornarci…
E’ qui che interviene l’idea di Seven: utilizzare una chiavetta usb DVB-T (in pratica venduta per ricevere la TV Digitale Terrestre) basata sul tuner R820T / R820T2 per ricevere e decodificare il segnale radio dei sensori.
Non conoscevo questa chiavetta, ma dopo un po’ di ricerche ho capito essere il “coltellino svizzero” per questo genere di cose.
Costa circa 10€ e si trova facilmente (io l’ho presa su Ebay). E’ supportata da una miriade di software liberi e progetti opensource, tra cui HDSDR, con cui è possibile “giocare” con il sintonizzatore e visualizzare/ricevere tutti i segnali, comprese le radio AM/FM !
Il progetto però che serve a noi si chiama rtl_433, e la sua personalizzazione per WH1080 & Raspberry raspberry_rtl_wh1080. A quest’ultima link trovate una dettagliatissima spiegazione sull’argomento e tutte le istruzioni passo passo per installarlo su Raspberry/BananaPi.
10 minuti dopo l’inserimento della chiavetta USB sul Raspberry e seguendo passo passo la guida, ero riuscito a ricevere il mio primo segnale dai sensori:
pi@raspberrypi ~ $ rtl_433 -f 868300000 -F json -l 0 Registering protocol "Fine Offset WH1080 Weather Station" Found 1 device(s): 0: Realtek, RTL2838UHIDIR, SN: 00000001 Using device 0: Generic RTL2832U OEM Detached kernel driver Found Rafael Micro R820T tuner Exact sample rate is: 250000.000414 Hz [R82XX] PLL not locked! Sample rate set to 250000. Bit detection level set to 0. Tuner gain set to Auto. Reading samples in async mode... Tuned to 868300000 Hz. {"time" : "2016-03-12 20:34:07", "model" : "Fine Offset WH1080 weather station", "msg_type" : 0, "id" : 46, "temperature_C" : 9.700000, "humidity" : 58, "pressure" : 984.581665, "direction_str" : "NNE", "direction_deg" : "23", "speed" : 3.672000, "gust" : 6.120000, "rain" : 831.900024, "int_temp" : 26.000000}
Veramente più semplice a farsi che a dirsi! 😉
Per ora l’output è un semplice oggetto JSON delle letture, ma integrarlo nei software esistenti non dovrebbe essere un’impresa ardua e lunga….
A breve nuovi aggiornamenti sull’argomento.