A Phant egy moduláris node.js-re épülő adatgyűjtő eszköz. Tipikusan különféle szenzorok - pl. hőmérséklet - adatainak mentésére szolgál. Ez a nyílt forráskódú szoftver hajtja a data.sparkfun.com szolgáltatást. Létrehozta és karbantartja: SparkFun Electronics. A forrása letölthető és futtatható saját szerveren.
Először a node.js-t kell telepíteni a Raspberry Pi-re:
$ sudo wget http://node-arm.herokuapp.com/node_latest_armhf.deb
$ sudo dpkg -i node_latest_armhf.deb
Ha gond nélkül feltelepült a node.js, akkor telepíthetjük a Phant-ot:
$ npm install -g phant
A fenti parancs globálisan telepíti.
Phant indítása:
$ phant
Néhány másodperc alatt elindul és kiírja, hogy a webes felületet a 8080-as porton érhetjük míg telnet használatával a 8081-es portot használva tudunk hozzá csatlakozni. Utóbbira az adatfolyamok létrehozása és törlése miatt van szükségünk.
Csatlakozás után létrehozhatjuk a streamet:
phant> create
Enter a title> Temperatures
Enter a description> RPI hőmérsékletek
Enter fields (comma separated)> sensor_id,sensor_name,temperature,time
Enter tags (comma separated)> temperature,rpi
Stream created!
PUBLIC KEY: xxxxxxxxxxxxxxxxxxxxxx
PRIVATE KEY: xxxxxxxxxxxxxxxxxxxxxx
DELETE KEY: xxxxxxxxxxxxxxxxxxxxxx
A create parancs után meg kell adni a stream
- nevét,
- leírását,
- a mezőket, vesszővel elválasztva,
- a címkéket, szintén vesszővel elválasztva.
Ezután létrejön a stream és kapunk 3 kulcsot, ezeket mentsük el jól, mert később szükségünk lesz rá.
Az adatokat egyszerű http kérésekkel tolhatjuk be a streambe. A hivatalos dokumentáció alapján írtam rá egy PHP osztályt:
Használata egyszerű:
Mint a fenti példából is látszik, a málna által mért hőmérsékleti értékeket tolom be az adatfolyamba. Ez természetesen csak úgy érdekes, ha meg is jelenítjük az adatokat:
Egy script 5 percenként méri a hőmérsékleteket. A fenti grafikon az utolsó 288 mérés eredményét mutatja.
Frissítés:
Az osztályból készítettem egy csomagot, ez felkerült a Packagist-re. Mostantól, Composer-rel egyszerűen telepíthető.
A következő sorokat kell a composer.json nevű fájlba írni:
{
"require": {
"gyengus/phantclient": "1.0.0"
}
}
ezután a
$ composer install
parancs telepíti a csomagot és elkészíti az autoloadhoz szükséges fájlokat.
Az osztály betöltése és példányosítása a következőképpen zajlik:
require_once(__DIR__ . "/vendor/autoload.php");
$phant = new Gyengus\PhantClient\Phant(PHANT_URL, PHANT_PUBKEY, PHANT_PRIVKEY, PHANT_DELKEY);