Raspberry Pi + RFM01: ricezione sensori PCE FWS 20 senza consolle

Raspberry Pi + RFM01: ricezione sensori PCE FWS 20 senza consolle

Se avete dato un’occhiata alla pagina della mia stazione meteo ultimamente, avrete visto che non aggiorna i dati da qualche giorno. Questo purtroppo perchè la consolle della stazione si è guastata e l’ho dovuta mandare in assistenza. Questa stazione costa poco ma sicuramente non è molto affidabile… soprattutto la parte della consolle interna.

Prima che si rompesse, il sistema di ricezione dati tramite Raspberry Pi e swpi funzionava egregiamente.

Una ulteriore implementazione che Tonino Tarsi (sviluppatore del Sint Wind Pi) ha fatto al suo software è il supporto per l’RFM01. Si tratta di un piccolo chip che si trova a pochi euro ed è in grado di riceve il segnale RF a 868 Mhz direttamente dai sensori wireless della PCE, senza dunque dover collegarsi alla consolle tramite usb.

Su suggerimento di Tony ho deciso di acquistare l’RFM01 (preso su RS, in versione SMD a circa 5€).

RMF01 sul dorso della mia mano ;)

RMF01 sul dorso della mia mano 😉

Una volta arrivato (insieme a dei cavetti jumper F-F che ho acquistato per interfacciarsi più agilmente al connettore GPIO del Raspberry) ho eseguito i collegamenti secondo lo schema (che trovate qui), con piccole saldature (il risultato non è certo professionale con gli strumenti che ho, ma tutto sommato è stato abbastanza facile, io non sono assolutamente un esperto di queste cose :P). Ho poi saldato un filo di 8,3 cm come antenna (piedino ANT) e collegato tutto al raspberry con i connettori.

Con gli ultimi aggiornamenti di swpi per far riconoscere l’RFM01 è sufficiente impostare nel file di configurazione (anche via web) “WH1080-RFM01” come tipo di sensore.

Adesso swpi riceve i dati dai sensori ogni 48 secondi e li invia alla stessa pagina che avevo costruito (meteostrada.grechi.it).

Dovrebbe essere una soluzione molto più stabile e duratura, avrò modo di testarla nel prossimi giorni.

Fatto questo è già in cantiere la prossima aggiunta: il supporto al sensore di temperatura/umidità BMP085 che dice essere molto preciso 😉

Di seguito alcune foto durante il montaggio:

Edit del 27/12/2013: Aggiungo qui l’esperienza (postata anche sul forum di SWPI) di questi ultimi mesi con l’utilizzo del sensore. Ho dovuto risolvere alcuni problemini, magari i miei stratagemmi saranno utili ad altri.

Considerata anche la distanza (i sensori sono nel terrazzo al piano di sotto e la stazione nel sottotetto) ed i molti muri nel mezzo, inizialmente [l’RFM01] non “agganciava” il segnale.
Ho dovuto spippolare non poco e alla fine ho risolto con tre workaround che potrebbero essere utili anche ad altri:

– la sensibilità di ricezione dipende MOLTISSIMO da come è posizionata e orientata l’antennina. Cambiandone anche di poco la posizione, il risultato può variare molto! Consiglio di metterla più lontano possibile da ogni altro elemento (raspberry, chiavette, alimentatori) che potrebbero fornire disturbi e posizionarla in modo fisso con un pezzo di nastro isolante. Io l’ho attaccata in posizione verticale ad un lato interno della scatola.

– dopo qualche mese ad ottobre ho di nuovo avuto problemi di ricezione, questa volta imputabili a un non precisato rumore ambientale esterno. Ho risolto alla fine mettendo semplicemente davanti alla scatola un foglio di alluminio a schermare (coperchio di una vaschetta!). Sembra incredibile ma funziona. Mi blocca un po’ di interferenze provenienti frontalmente e ricevo bene i sensori (che ho in basso, ma posteriore). FOTO

– infine recentemente ho riscontrato una perdita di sensibilità di ricezione quando le temperature vanno sotto lo zero. E’ una correlazione con la temperatura evidente che però ancora non ho ben capito a cosa sia dovuta. (mi è stata confermata anche da Tony).
La cosa strana è che riavviando swpi quasi sempre la ricezione riparte. Per cui per adesso ho risolto mettendo uno script cron che mi controlla da quanto tempo non si aggiorna wh1080_rf.txt e se son passati più di 600 secondi mi riavvia swpi.

#!/bin/bash

now=$(date "+%d/%m/%Y - %H:%M")
seconds=$(expr `date +%s` - `stat -c %Y /home/pi/swpi/wh1080_rf.txt`)

if [ $seconds -gt 600 ]; then
        echo "[ $now ] $seconds seconds since last update, REBOOT swpi" >> /home/pi/swpi/rebootscript.log
        sudo /home/pi/swpi/killswpi.sh
        sudo -u pi /home/pi/swpi/swpi.sh
else
        echo "[ $now ] $seconds seconds since since update. Wait" >> /home/pi/swpi/rebootscript.log
fi

A proposito Alessandro

Ingegnere delle Telecomunicazioni con propensione al web2.0 ed il pallino della tecnologia; toscano & casentinese, vivo a Firenze

  • roberto

    complimenti, ottima guida a breve cercherò di sperimentare il tutto, compreso il sensore bmp085

    • Grazie! anche io sto aspettando il bmp085 e il dht11 (per l’umidità) per aggiungerli al progetto.
      Per adesso la ricezione con RFM01 sta andando benissimo… di gran lunga più affidabile che col collegamento via USB alla PCE ! 😉

  • Pingback: Stazione meteo PCE-FWS 20 online grazie ad un Raspberry Pi - Alessandro Grechi()

  • Fabio Casolari

    Si possono ricevere anche i dati dalle stazioni davis? (es: vantage vue?)

  • luigi

    ciao, la mia pce fws 20 non rileva la rfm01, dal pannello web ho impostato sensore WH1080-RFM01 ma non viene vista. Mi saprebbe aiutare in merito?

  • Daniele

    Ma non c’è la possibilità di non piazzare la consolle, fare in modo che il raspberry pi riceva direttamente i dati dai sensori?

    • Ehm, questo articolo parla proprio di questo! l’RFM01 è un ricevitore radio per il Raspberry. Con questo non si ha bisogno della consolle PCE ! 😉

  • Piero

    Ciao quali sono le capacita’ di ricezione del modulo RFM01 paragonate alla console del PCE?
    Te lo chiedo perche’ avendo gia’ poco segnale ora non vorrei poi che il modulo risultasse inutile.

    • Ciao, le capacità di ricezione sono paragonabili a quelle della consolle, forse leggermente di più. La ricezione comunque varia molto a seconda delle interferenze del luogo circostante, difficile dare una risposta precisa a priori.
      Io per esempio ho i sensori sul terrazzo e il ricevitore in una scatola sul tetto, al piano superiore. Quindi con solaio + tetto + mura nel mezzo, circa 50mt. Non c’è male!

  • Camillo

    Ciao, è possibile fare arrivare alla centralina swpi più frequentemente al posto di 48sec.?

    • Ciao, non è possibile, è la frequenza impostata nel trasmettitore PCE.

  • Andrea

    è possibile sviluppare un sistema simile per le davis che vanno anch’esse a 868 Mhz?

    • Ciao, attualmente quel driver per RFM01 supporta solo il protocollo della PCE/WH1080

      • Andrea

        Grazie, sarebbe complicato sviluppare da se (con non moltissime conoscenze in linux) un driver adeguato per supportare anche quei sensori?

        • Non è una cosa banale, perchè comprende sia una parte di reverse-engineering del protocollo di trasmissione davis sia la scrittura del driver di ricezione per RFM01 che sia compatibile con swpi.
          C’è qualche probabilità che la prima parte sia stata fatta da qualcuno, per cui potresti cercare in rete…. sulla seconda non credo sia stato fatto nulla. Al limite comunque scrivi nel forum di Vololiberomontecucco…

          Ciao

          • Rocco

            Ciao Alessandro, siccome stò avendo vari problemi con la consolle USB WH1080 a 433 mhz (i dati pluviometrici non me li trasmette a wunderground o sono buggati) volevo eliminare del tutto la consolle USB e prelevare i dati direttamente con il modulo wireless RFM01. Io però non uso il raspberry ma un Router TP_link con OpenWRT e pacchetto fowsr per upload dati . Mi sapresti dire se l’RFM01 sarebbe possibile implementarlo su OpenWRT_linux , magari con uno jeelink usb tipo qs

            http://www.digitalsmarties.net/products/jeelink-classic

            Lo jeelink in questione lo volevo compare ma poi non saprei come farlo andare sul Router e soprattutto se il pacchetto FOWSR poi me lo riconoscerebbe come la WH1080.

            Grazie

          • Ciao Rocco,
            non saprei dirti se la soluzione che proponi funziona con l’rfm01 (che tra l’altro è fuori produzione). Certo in teoria è tutto fattibile, ma ovviamente servirebbe uno sviluppo ad-hoc per integrarlo con openWRT. Io non credo di essere in grado di aiutarti…
            Mi dispiace

  • Pedra

    Ciao Alessandro.
    Non ho capito una cosa. Per far dialogare il raspi con i sensori ho bisogno anche di un trasmettitore lato stazione o i sensori hanno già integrato il trasmettitore?

    • Ciao, i sensori PCE hanno già integrato un trasmettitore radio.

  • Pingback: Software meteo per Raspberry Pi: pywws, Cumulus MX, wview - Alessandro Grechi()

  • Savio Thecnic

    Scusa lo schema di collegamento tra RFM01 868MHz e Raspeberry puoi postarlo ?

    Grazie