Stap 3: En nu voor sommige software...
Het lezen van de gegevens uit de meterIk heb een klein C programma (cryptisch ftgenoemd) die de FTDI rechtstreeks zal voorlezen bijgevoegd. Dit programma is niets fancy, zal het:
1. Verlaag het DST te veroorzaken de warmtemeter geven ons de kostbare informatie
2. lezen totdat er geen gegevens gedurende 2 seconden zijn
3. print alles op het scherm
Te compileren dit op de rPi, "ftdilib-dev" installeren op de rPi met behulp van "install sudo apt-get install libftdi-dev", kopieer het tar-bestand naar de rPi (onder de root -account in de directory/root eenvoudig te houden het), uitpakken met tar - xvf datacollector.tar en vervolgens kwestie het "make" commando in de directory/root.
Als alles gaat zoals gepland, zal de compiler ons de ft -programma. Als u dit programma start (Voer . /ft en druk op enter), een blok van informatie wordt weergegeven zoals:
---------------------------------------------------------------------------
/ KMP5 KA6U005464565461
0-0:96.1.1(352345243543524352345353535353243)
1-0:1.8.1(00913.000*kWh)
1-0:1.8.2(00787.000*kWh)
1-0:2.8.1(00000.000*kWh)
1-0:2.8.2(00000.000*kWh)
0-0:96.14.0(0001)
1-0:1.7.0(0000.25*kW)
1-0:2.7.0(0000.00*kW)
0-0:17.0.0(999*A)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
0-1:24.1.0(3)
0-1:96.1.0(352345243543524352345353535353243)
0-1:24.3.0(120531230000)(08)(60)(1)(0-1:24.2.1)(M3)
(00752.852)
0-1:24.4.0(1)
!
---------------------------------------------------------------------------
Als geen juiste gegevens wordt weergegeven, zijn de verbindingen met de energie-meter waarschijnlijk niet correct. Check ze weer! Als het programma ft bommen uit met een bericht dat het apparaat niet worden geopend:
-Controleer of er worden uitgevoerd als root gebruiker. Toegang tot het apparaat FTDI is extra bevoegdheden.
-hebt u een andere versie van FTDI (of van de fabrikant van een verschil) Controleer de twee hexadecimale fabrikant / apparaat nummers in de oproep van de ftdi_usb_open . De lsusb -opdracht gebruiken om te bepalen van de juiste hexadecimale getallen voor uw FTDI-apparaat.
-Als de enige gegevens die worden weergegeven op het scherm een heleboel wartaal is, controleert u als de pin RXD heeft zijn omgekeerd met behulp van het hulpprogramma FT_PROG op een windows machine. Het echt moet worden omgekeerd! U kunt deze tool op de website van FTDI verkrijgen.
De gegevens converteren
De gegevens zullen worden ontleed door een AWK programmaatje (cosm.sh en cosm.awk) om de gegevens voor het posten naar Cosm te maken. Het AWK programma scant de output van het programma ft en pakt de stukken die we zijn geïnteresseerd in. Ten slotte is de gegevens gezamenlijk in de structuur van een JSON die rechtstreeks kan worden ingebracht in de Cosm.
Een voorbeeld van een dergelijk bericht:
------------------------------------------------------------------------
{
"versie": "1.0.0",
"datastreams": [
{"id": "+ T1", "current_value": "00913.000"},
{"id": "+ T2", "current_value": "00787.000"},
{"id": "TotalkWh", "current_value": "1700"},
{"id": "W1", "current_value": "0000.34"},
{"id": "W2", "current_value": "0000.00"},
{"id": "Gas", "current_value": "00752.852"}
]}
------------------------------------------------------------------------
De AWK script testen door te geven:
. /ft | awk -f cosm.awk
De output moet lijken op het codeblok JSON hierboven.
De vorige twee stappen samen binden
Het cosm.sh script zal lopen van de vorige twee stappen en ten slotte de resulterende JSON-structuur naar Cosm boekt. Voordat we dat doen kunnen, zullen we moeten een Cosm-account maakt, maakt u een API-sleutel en een feed.
Ik zal beschrijven die stappen in de volgende stap.