Controllo e monitoraggio > Collegare la centralina Rotex a Raspberry + Emoncms


Collegare la centralina Rotex a Raspberry + Emoncms
Sistema standard di monitoraggio x rps/3

 

Volevo proporre un progetto davvero molto semplice, che permette il monitoraggio dei dati delle centraline Rotex RPS2 e RPS3 usando solo l'hardware standard Raspberry.


Anche per il software ho voluto utilizzare il sistema Open di monitoraggio dei dati chiamato, cosi mi sono imbattuto in  Emoncms... devo dire che sono rimasto molto sbalordito dalle possibilità che offre questo programma.

 

Per precisione sottolineo che tale software è utilizzato anche nell'ambito del progetto open promosso da openenergymonitor.org e l'implementazione che ho fatto dei dati della centralina RPS di Rotex, è uno standard nell'ambito di Emoncms e quindi puo essere utilizzata in aggiunta ad altri sistemi di acquisizione di segnali.

 

La connessione della centralina RPS/2-3 a Raspberry è molto semplice ed è illustrata in questa immagine a lato .

Come si puo vedere basta connettere il pin 6 e 10 della GPIO di Raspberry, allo spinotto di connessione della RPS/3, attraverso 2 resistenze che servono ad "aggiustare" i livelli di segnale utilizzati dalla seriale della RPS di Rotex(5V) e quella di Raspberry ( 3.3V).

 

Sulla schedina SD di Raspberry occorre installare il sistema operativo ( io ho utilizzato l'immagine "Raspian" ) e il sistema di gestione e memorizzazione dei dati,  Emoncms.... tutto qua.

 

La procedura di installazione di tutto quanto serve, è ben documentata sul sito di emoncms.

Oltre a questi software standard occorre installare anche uno script che ho realizzato in php, che permette l'acquisizione dei dati della RSP/3 e l'invio degli stessi secondo il formato JSON utilizzato da Emoncms.

 

Sotto lo script in php che va installato nella directory /var/www di raspberry con il nome rps3.php, avendo l'accortezza di renderlo eseguibile tramite il comando :


chmod 777 /var/www/rps3.php

Preciso che per questo script mi sono ispirato al software studiato da FabioR e presentato in questo tread :, al quale ho aggiunto l'interfaccia seriale di connessione ai dati e l'invio degli stessi nel formato richiesto da Emoncms ( JSON ).

 

Lo script utilizza anche la classe snoopy e la classe php_serial, che sono essenzialmente due file da aggiungere sempre in /var/www e che si possono scaricare qui .

Lo script in php ..

<?
include "php_serial.class.php";
include "Snoopy.class.php";

error_reporting(E_ALL);
ini_set("display_errors", 1);
define("PORT","/dev/ttyAMA0");
$serial = new phpSerial;
$serial->deviceSet(PORT);
$serial->confBaudRate(9600);
$serial->confParity("none");
$serial->confCharacterLength(8);
$serial->confStopBits(1);
$serial->confFlowControl("none");
$serial->deviceOpen();
sleep(5);
$read = $serial->readPort();
$serial->deviceClose();
//Parse the data string
$data = str_replace(",",".",$read);
$data = explode(";", $data);
//Temperature correction factors
$a = -0.0002;
$b = -0.0472;
$c = +1.0434;
//Assign data
$HA = $data[0];
$BK = $data[1];
$P1 = $data[2];
$P2 = $data[3];
$TK = $data[4];
$y = ($a*($data[5])^2)+($b*($data[5]))+$c;
//Apply polynomial data correction
$TR = ($data[5]+$y);
$y = ($a*($data[6])^2)+($b*($data[6]))+$c;
//Apply polynomial data correction
$TS = ($data[6]+$y);
$TV = $data[7];
$P = $data[8];

$snoopy = new Snoopy;

$snoopy->fetch("http://192.168.1.240/emoncms/input/post.json?json={HA:$HA,BK:$BK,Pompa1:$P1,Pompa2:$P2,TCollettore:$TK,TRitorno:$TR,TBollitore:$TS,TMandata:$TV,Flow:$P}&apikey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
?>

 

Per rendere funzionale questo script occorre inserire la propria APIKEY in scrittura rilevabile nel backoffice di emoncms , e l'indirizzo corretto del proprio sistema Raspberry sulla rete; nel mio caso 192.168.1.240.

Oltre a questo occorre schedulare questo script ogni minuto; per fare questo occorre .
lanciare il comando :


crontab -e


ed inserire nel file che si apre sull'ultima riga :

 

* * * * * wget -x http://192.168.1.240/rps3.php > /dev/null

 

Salvare con CRT + X poi y, enter.

 

Ultima operazione quella di dare i permessi a php di utilizzare la seriale...

sudo usermod -a -G dialout www-data
sudo usermod -a -G dialout pi

 

Rebuttare infine il sistema :


reboot


( tutti i comandi dati dal raspberry assumo che siano stati dati dall'utente root e non PI ).

Saluti,
Fabrizio.

 

Commenti e richieste su questo argomento possono essere postate sul forum in questo tread dedicato :

rps3 emoncms bridge