Gruppo Meteo/StimaOverview

Da raspibo.
Jump to navigation Jump to search

Stima Overview

Stazione modulare per la misura di parametri ambientali.

Premesse

  • Adeisce alla Rete di Monitoraggio Ambientale Partecipativo (R-MAP)
  • Open hardware e open software
  • al momento vengono gestiti parametri meteorologici

Concetti base

La modularità della stazione è stata ottenuta astraendo alcuni concetti e funzioni e implementandoli nei differenti moduli hardware e software.

Trasporti

Il concetto di trasporto in Stima è simile ma non rigidamente aderente ai concetti del modello ISO-OSI. Nel caso dei trasporti passivi il suo compito è fornire un canale logico-affidabile di comunicazione end-to-end per fornire servizi al soprastante livello che in Stima è JsonRPC. Nel caso dei trasporti attivi corrisponde al protocollo (Session Layer) per la pubblicazione dei dati su un server (broker).

Passivi o attivi

In pratica i trasporti "passivi" permettono di eseguire procedure remote codificate in formato json specifiche dell'implementazione Stima; quelli attivi permettono la pubblicazione su server (broker) dei messaggi aderenti allo standard R-MAP.

Passivi

Seriale

Collegamento punto a punto tramite porta seriale.

  • Principalmente per configurazione e debug
  • Piccole distanze via cavo

caratterizzato da:

  • Baud rate
  • Device
TCP/IP

Trasporto che utilizza il tcp/ip; i supporti fisici supportati sono:

  • ethernet: collegamenti tramite cavo ethernet a breve e media distanza
  • GSM/GPRS: installazioni con problemi per le cablature di alimentazione e collegamento di rete

caratterizzato da:

  • Name (Nome risolto dal DNS)
  • Ntpserver
Bluetooth

caratterizzato da:

  • Bluetooth Name
NRF24
  • OSI Network Layer using nRF24L01(+) radios 2.4GHz ISM 50/150m in aria libera
  • Host Addressing. Each node has a logical address on the local network.
  • Message Forwarding. Messages can be sent from one node to any other, and this layer will get them there no matter how many hops it takes.
  • Ad-hoc Joining. A node can join a network without any changes to any existing nodes.

RF24Network Addressing and Topology

Each node must be assigned an 15-bit address by the administrator. This address exactly describes the position of the node within the tree. The address is an octal number. Each digit in the address represents a position in the tree further from the base.

  • Node 00 is the base node.
  • Nodes 01-05 are nodes whose parent is the base.
  • Node 021 is the second child of node 01.
  • Node 0321 is the third child of node 021, an so on.
  • The largest node address is 05555, so 3,125 nodes are allowed on a single channel.

Alla libreria distributia è stata aggiunta la crittografia e frammentazione e ricomposizione del payload

caratterizzato da:

  • Node (Node ID for RF24 Network)
  • Channel (Numero canale per RF24)
  • Key (AES key)
  • Iv

Attivi

MQTT

MQTT (Message Queue Telemetry Transport) è un protocollo publish/subscribe particolarmente leggero, adatto per la comunicazione M2M tra dispositivi con poca memoria o potenza di calcolo e server o message broker.

caratterizzato da:

  • Mqttsampletime (intervallo in secondi per la pubblicazione)
  • Mqttserver (MQTT server)
  • Mqttuser (MQTT user)
  • Mqttpassword (MQTT password)
AMQP

AMQP (Advanced Message Queuing Protocol) è protocollo per comunicazioni attraverso code di messaggi. Sono garantite l'interoperabilità, la sicurezza, l'affidabilità, la persistenza.

caratterizzato da:

  • Amqpserver (Server AMQP)
  • Exchange (Nome dell'exchange remoto AMQP)
  • Queue (Nome della coda locale AMQP )
  • Amqpuser (User AMQP)
  • Amqppassword

JsonRPC

La chiamata di procedure remote in formato json è l'unico metodo per poter eseguire funzioni su un modulo dalla configurazione al campionamento dei sensori.

La documentazione delle procedure remote è disponibile qui Gruppo_Meteo/RemoteProcedure

JsonRPC over different transports

E' possibile fare richiesta di una procedura remota che a sua volta richiede una procedura remota; in questo modo è possibile utilizzare due trasporti differenti e usare un modulo come gateway. Ad esempio il modulo base non dispone al momento del trasporto radio RF24 ma puo' richiedere a un modulo master tramite trasporto seriale o TCP/IP di eseguire una procedura remota su un modulo satellite raggiungibile tramite trasporto RF24. Queste funzionalità sono ampiamente da testare.


Elementi hardware

board microcontroller

atmel 328p

Il più piccolo della serie può essere utilizzato per:

  • modulo i2c-gps
  • modulo i2c-wind
  • modulo i2c-rain

implementazioni on board:

  • arduino uno
  • arduino nano
  • microduino core

atmel 644p

Il medio della serie può essere utilizzato per:

  • modulo satellite
  • modulo bluetooth
  • tutti i moduli relativi al 328p

implementazioni on board:

  • microduino core+ 644p

altmel mega 2560/1284p

Il grande della serie può essere utilizzato per:

  • modulo master
  • modulo GPS/GPRS
  • tutti i moduli relativi al 644p

implementazioni on board:

  • arduino mega2560
  • microduino core+ 1284p

board RTC

Il real time clock deve utilizzato quando quando non è possibile avere un'altra sorgente affidabile per il tempo di riferimento e al tempo stesso la pubblicazione dei dati può avvenire con tempo differito ad esempio tramite la memorizzazione su scheda SD.

board radio RF24

E' necessaria per supportare il trasporto NRF24

board ft232

E' necessario per programmare, debuggare, a volte configurare il modulo e per supportare il trasporto seriale.

board ENC28J60

Ethernet module a basso costo; è necessario lo stack tcp/ip software su microcontrollore. Serve per supportare il trasporto TCP/IP. Alternativa alla board wiznet

board wiznet W5500

Ethernet module completa dello stack tcp/ip. Serve per supportare il trasporto TCP/IP. Alternativa alla board ENC28j60

board display I2C LCD 4 linee 20 caratteri

Utilizzabile per visualizzare messaggistica di diagnostica e alcune misure quando non è disponibile un PC per debug e altre visualizzazioni.

implementazioni on board:

  • YwRobot Arduino LCM1602 IIC V1

board 5V relay

5V 4/2-Channel Relay interface board; Equipped with high-current relay, AC 250V 10A / DC 30V 10A Opticalcoupler Protection Utilizzabile per aggiungere a un modulo la funzionalità di attuatore. Ogni relay può essere attivato singolarmente.


board SD

Microduino-SD aims to read and write data of a memory card. Utilizzata per memorizzare i dati in loco; necessaria quando non ci siano trasporti utili o la stabilità dei trasporti utilizzati è messa in dubbio e i dati hanno valore anche in tempo differito.

board GSM/GPRS sim800/sim900

Adopt SIM800L module to support four-band GSM/GPRS, whose working band is:GSM850, EGSM900, DCS1800 and PCS1900MHz. Utilizzabile per avere il trasporto TCP/IP quando non è disponibile una connessione ethernet. Questo modulo può funzionare sul trasporto TCP/IP in due modalità: una con delle get http tramutate dal server in publish MQTT e l'altra in una vera connessione MQTT. E' possibile utilizzare questo modulo anche cone Real Time Clock per ottenere una tempo di riferimento stabile. Si può quindi ottenere dal server rmap il tempo di riferimento e impostarlo nell'RTC di questo modulo per poi rileggerlo al bisogno in caso di non disponibilità del trasporto TCP/IP; tutto questo a scapito di stabilità e continuità di servizio. Nel caso sia importante avere un RTC affidabile si consiglia l'aggiunta di un modulo RTC o ancora meglio del modulo GPS.

board GPS Neo 6M

Questa board insieme a una board microcontrollore possono creare un modulo i2c-gps. Il modulo i2c-gps fornisce a richiesta la posizione (lat, lon, altezza) e il tempo di riferimento. Serve per istallazioni mobili o che necessitano di un tempo di riferimento particolarmente stabile.