Differenze tra le versioni di "Gruppo Meteo/RemoteProcedure"

Da raspibo.
Jump to navigation Jump to search
m (DavideAlberani ha spostato la pagina Gruppo Meteo/OverView a Gruppo Meteo/RemoteProcedure)
 
(5 versioni intermedie di 3 utenti non mostrate)
Riga 22: Riga 22:
 
* int channel: RF 24 channel
 
* int channel: RF 24 channel
 
* byte mac[6]= ethernet mac address; use (0,0,0,0,0,1) for master1, use (0,0,0,0,0,2) for master2
 
* byte mac[6]= ethernet mac address; use (0,0,0,0,0,1) for master1, use (0,0,0,0,0,2) for master2
* bool reset: save configuration into EEPROM
+
* bool save: save configuration into EEPROM
  
 
relativi a un sensore (aggiunge un sensore):
 
relativi a un sensore (aggiunge un sensore):
Riga 30: Riga 30:
 
* char type: driver remoto
 
* char type: driver remoto
 
* int address: address I2C
 
* int address: address I2C
 
  
 
==== prepare ====
 
==== prepare ====
Riga 63: Riga 62:
 
==== rf24rpc ====
 
==== rf24rpc ====
 
Esegue una procedura remota su un altro nodo tramite trasporto RF24Network.
 
Esegue una procedura remota su un altro nodo tramite trasporto RF24Network.
In pratica incapula una RPC in una RPC.
+
In pratica incapsula una RPC in una RPC.
 
* node": nodo su cui eseguire la remote call procedure
 
* node": nodo su cui eseguire la remote call procedure
 
*  tutti parametri standard di una json-rpc del tipo  
 
*  tutti parametri standard di una json-rpc del tipo  
  "jsonrpc":"2.0","method":"configure","params":{"reset":true},"id":0},"id":0
+
 
 +
  {"jsonrpc":"2.0","method":"configure","params":{"reset":true},"id":0},"id":0}
  
 
==== togglepin ====
 
==== togglepin ====
Riga 72: Riga 72:
  
 
parametri:
 
parametri:
* integer number: pin number (pins 4,5,6,7 are supported)
+
* integer n: pin number (pins 4,5,6,7 are supported)
* bool status: true=on; false=off
+
* bool s: true=on; false=off
{"jsonrpc": "2.0", "method": "togglepin", "params": [{"number":4,"status":true},{"number":5,"status":false}], "id": 0}
 
 
 
=== Moduli prototipizzati ===
 
le opzioni sono 3, i prezzi solo indicativi:
 
* modulo base
 
* modulo base+master
 
* modulo base+master+satellite
 
 
 
* Il modulo base acquisisce dai sensori con un task temporizzato al fine di  pubblicare dati sul bus MQTT , svolge funzioni di archiviazione, calcolo, composizione report e invio all'acentratore tramite AMQP e molt altre cose
 
* Il modulo master acquisisce dai sensori con un task temporizzato al fine di  pubblicare dati sul bus MQTT
 
* Il modulo satellite è a bassissimo consumo e appartiene a una rete radio sui 2Ghz ad albero nRF24Network
 
 
 
=== Moduli ===
 
 
 
==== Modulo base ====
 
Il modulo A richiede alimentazione 220V con stabilizzatore a 9/12V o in alternativa power over ethernet e cavo ethernet.
 
 
 
Prenderemo in considerazione una realizzazione con Raspberry Pi che ha funzione di raccolta dati da sensori locali (sul gpio) e ricezione da sensori collegati via etheret o seriale.
 
 
 
===== Hardware =====
 
(approssimativamente 75 E):
 
* raspberry B
 
* sdcard
 
* alimentatore
 
* connettore gpio
 
* breadboard
 
* sensori
 
* hub usb alimentato
 
* chiavetta wifi
 
* hard disk usb (opzionale, ma consigliato), con una partizione etx4 ed etichetta "rmap"
 
 
 
==== Modulo master ====
 
Il modulo B richiede cavo ethernet con power over ethernet.
 
 
 
E' costituito da un arduino mega con shield dedicato per la raccolta dati da sensori locali e remoti (dal modulo satellite).
 
Puo' inviare i dati sum seriale ed ethernet e raccoglierli via radio da moduli satellite.
 
 
 
===== hardware =====
 
(approssimativamente 65 E)
 
* arduino mega 2560
 
* breadborad
 
* modulo RTC
 
* modulo mini ethernet ENC60
 
* modulo radio RF24
 
* cavo power over ethernet
 
* stabilizzatore dcdc switched
 
* sensori
 
 
 
 
 
==== Modulo satellite ====
 
Il modulo C richiede batterie con stabilizzatore (e pannellino solare con regolatore di corrente).
 
 
 
Si tratta di un Microduino che comunica i dati rilevati dai sensori con il modulo master via radio.
 
  
===== hardware =====
+
{"jsonrpc": "2.0", "method": "togglepin", "params": [{"n":4,"s":true},{"n":5,"s":false}], "id": 0}
(approssimativamente 45 E)
 
  
* moulo microduino core+ (ATmega644p@5V 16MHz)
+
==== sdrecovery ====
* modulo microduino RF24 con antenna
+
Richiede il re-invio dei dati non trasmessi al server; senza parametri
* modulo microduino seriale USB FT232R
 
* sensori
 
  
 +
{"jsonrpc": "2.0", "method": "sdrecovery", "params": [], "id": 0}
  
== Visualizzazione dei dati in formato grafico ==
+
==== reboot ====
 +
Richiede il riavvio della stazione
  
I grafici vengono visualizzati su graphite tramite un browser seguendo il menu a http://base
+
{"jsonrpc": "2.0", "method": "reboot", "params": [], "id": 0}

Versione attuale delle 20:10, 5 ott 2016

r-map implementation overview

Remote procedure supportate

Ogni comando/risposta Jsonrpc sarebbe meglio rimanesse entro i 144 caratteri.

configure

configura il modulo.

parametri:

  • bool reset: riporta le configurazioni ai valori di default
  • char mqttrootpath: prima parte del path di pubblicazione su MQTT
  • int mqttsampletime: intervallo tra le minure in secondi
  • char mqttserver: server MQTT
  • char mqttuser: MQTT user
  • char mqttpassword: MQTT password
  • int[16] key: AES key
  • int[16] iv: AES CBC iv
  • char ntpserver: server MQTT
  • int[6] date: set date and time [2014,2,10,18,45,18]
  • long int thisnode: RF24Network node address
  • int channel: RF 24 channel
  • byte mac[6]= ethernet mac address; use (0,0,0,0,0,1) for master1, use (0,0,0,0,0,2) for master2
  • bool save: save configuration into EEPROM

relativi a un sensore (aggiunge un sensore):

  • char mqttpath: seconda parte del path di pubblicazione su MQTT
  • char driver: driver locale del sensore
  • int node: RF24Network node
  • char type: driver remoto
  • int address: address I2C

prepare

prepare sensors for successive read return waittime in ms; the time to wait before read the data from sensor

parametri:

  • char driver: driver locale del sensore
  • int node: RF24Network node
  • char type: driver remoto
  • int address: address I2C

prepandget

get the measure from sensor

parametri:

  • char driver: driver locale del sensore
  • int node: RF24Network node
  • char type: driver remoto
  • int address: address I2C

getjson

return json with btable and values torna i valori di una o più osservazione/campionamento.

parametri:

  • char driver: driver locale del sensore
  • int node: RF24Network node
  • char type: driver remoto
  • int address: address I2C

rf24rpc

Esegue una procedura remota su un altro nodo tramite trasporto RF24Network. In pratica incapsula una RPC in una RPC.

  • node": nodo su cui eseguire la remote call procedure
  • tutti parametri standard di una json-rpc del tipo
{"jsonrpc":"2.0","method":"configure","params":{"reset":true},"id":0},"id":0}

togglepin

Attuatore che accende/spegne uno o più pin.

parametri:

  • integer n: pin number (pins 4,5,6,7 are supported)
  • bool s: true=on; false=off
{"jsonrpc": "2.0", "method": "togglepin", "params": [{"n":4,"s":true},{"n":5,"s":false}], "id": 0}

sdrecovery

Richiede il re-invio dei dati non trasmessi al server; senza parametri

{"jsonrpc": "2.0", "method": "sdrecovery", "params": [], "id": 0}

reboot

Richiede il riavvio della stazione

{"jsonrpc": "2.0", "method": "reboot", "params": [], "id": 0}