Energy Monitor

Il progetto riguarda un sistema di monitoraggio dei consumi elettrici e altre grandezze fisiche di interesse. I dati sono acquisiti dai sensori e inviati via radio alla stazione base che li archivia localmente e li invia a Xively (ex Cosm ex Pachube - https://xively.com/) un servizio cloud per IoT (Internet of Things).

This project is about an energy consumption (and other data too) monitoring system. The data are collected from sensors, sent via radio to a base station which archive them locally and send them to Xively (ex Cosm ex Pachube - https://xively.com/) a cloud service for the internet of things (IOT).

Diagramma del sistema - System Diagram

Componenti principali Hardware Componenti Principali Software
  • Linux, Apache, PHP, Emoncms (http://openenergymonitor.org/emon/)
  • Script in PHP per la comunicazione tra emoncms e Jeenode
  • Script in PHP per la comunicazione tra emoncms e Xively

Componenti - Components

La stazione base è costituita da un Raspberry Pi (un piccolo PC embedded con Linux) e un JeeNode (equivalente ad un Arduino in formato ridotto con un transceiver radio sulla scheda). Sul Raspberry Pi è installato emoncms un CMS sviluppato dal progetto open source “Open Energy Monitor” (http://openenergymonitor.org/emon/). Emoncms è basato su Apache, MySQL e PHP e permette di archiviare i dati acquisiti dai nodi con i sensori e di sincronizzare gli stessi dati con Xively. Per queste due funzioni sono stati sviluppati dei moduli aggiuntivi in PHP (in verde nella figura in basso).

The base station is made up by a Raspberry Pi (a little embedded PC with Linux OS) and a JeeNode (an Arduino compatible board with an on-board radio TX-RX). On the Raspberry Pi is installed emoncms a CMS developed by the open source project "Open Energy Monitor" (http://openenergymonitor.org/emon/). Emoncms is based upon Apache, MySQL and PHP and implements the communication with the radio node, the data archiving (in a SQL DB) and the synchronization of this data with Xively.

{{html(
<table><tr><td><a href=http://dev.hacklabterni.org/attachments/download/340/emon2.png><img src=http://dev.hacklabterni.org/attachments/download/340/emon2.png></a></td>
<td><a href=http://dev.hacklabterni.org/attachments/download/601/emon-base.jpg><img src=http://dev.hacklabterni.org/attachments/download/601/emon-base.jpg width=400></a>

</td></tr></table>
)}}

Ogni singolo nodo misura la temperatura, il consumo elettrico e l'intensità luminosa e invia questi dati alla stazione base via radio. Allo stesso tempo può ricevere comandi dalla stazione base per accendere o spegnere apparati elettrici (esemplificati da LED nel presente prototipo).

Each single node can get Temperature, Energy consumption and Light intensity data and send it to the base station. At the same time it can receive commands from the base station to turn on or off an electrical appliance (for the sake of simplicity here we have a single LED).

{{html(
<table><tr><td><a href=http://dev.hacklabterni.org/attachments/download/341/emon3.png><img src=http://dev.hacklabterni.org/attachments/download/341/emon3.png></a></td>
<td><a href=http://dev.hacklabterni.org/attachments/download/602/emon-jeenode.jpg><img src=http://dev.hacklabterni.org/attachments/download/602/emon-jeenode.jpg width=400></a>

</td></tr></table>
)}}

Usando le API di Xively si possono sviluppare applicazioni per desktop e per dispositivi mobili (tablet o smartphone). Nella figura sopra un esempio sviluppato con le API per il JavaScript che visualizza i dati relativi a tre zone e permette di controllare apparati elettrici in remoto.

With the Xively API we can develop applications usable on Desktop PC as well as on smartphone or tablets. With this apps we can see data relative to various zones and control any kind of device both locally and remotely.