Differenze tra le versioni di "Gruppo Meteo/RemoteProcedure"
Riga 1: | Riga 1: | ||
= r-map implementation overview = | = r-map implementation overview = | ||
− | === | + | === Remote procedure supportate === |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Ogni comando/risposta Jsonrpc sarebbe meglio rimanesse entro i 144 caratteri. | Ogni comando/risposta Jsonrpc sarebbe meglio rimanesse entro i 144 caratteri. | ||
Riga 47: | Riga 18: | ||
* int[16] iv: AES CBC iv | * int[16] iv: AES CBC iv | ||
* char ntpserver: server MQTT | * char ntpserver: server MQTT | ||
− | * int[6] date: date and time [2014,2,10,18,45,18] | + | * int[6] date: set date and time [2014,2,10,18,45,18] |
− | |||
* long int thisnode: RF24Network node address | * long int thisnode: RF24Network node address | ||
* 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 | ||
− | relativi a un sensore: | + | relativi a un sensore (aggiunge un sensore): |
* char mqttpath: seconda parte del path di pubblicazione su MQTT | * char mqttpath: seconda parte del path di pubblicazione su MQTT | ||
* char driver: driver locale del sensore | * char driver: driver locale del sensore | ||
Riga 60: | Riga 31: | ||
* int address: address I2C | * 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. | torna i valori di una o più osservazione/campionamento. | ||
Riga 76: | Riga 68: | ||
"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 ==== |
− | Attuatore che accende | + | Attuatore che accende/spegne uno o più pin. |
parametri: | parametri: |
Versione delle 14:10, 16 ott 2014
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 reset: 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 incapula 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 number: pin number (pins 4,5,6,7 are supported)
- bool status: 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
(approssimativamente 45 E)
- moulo microduino core+ (ATmega644p@5V 16MHz)
- modulo microduino RF24 con antenna
- modulo microduino seriale USB FT232R
- sensori
Visualizzazione dei dati in formato grafico
I grafici vengono visualizzati su graphite tramite un browser seguendo il menu a http://base