Att göra en datalogger för en ISTA och Kamstrup el / gas-mätare med Raspberry Pi! (3 / 5 steg)
Steg 3: Och nu för några program...
Läsa data från mätarenJag har bifogat en liten C program (kryptiskt kallas ft) som kommer att läsa ut FTDI direkt. Detta program är inget märkvärdigt, kommer det:
1. Sänk DTR att orsaka mätaren att ge oss värdefull information
2. Läs tills det finns inga data i 2 sekunder
3. skriva ut allt på skärmen
Att sammanställa detta på rPi, installera "ftdilib-dev" på rPi med "sudo lämplig-få installera libftdi-dev", kopia tar-filen till rPi (under root -kontot i katalogen/root att hålla det enkelt), packa upp med hjälp av tjära - xvf datacollector.tar och sedan fråga den "göra" kommando i/root-katalogen.
Om allt går som planerat, ger kompilatorn oss ft programmet. Om du startar programmet (ange . /ft och tryck enter), ett block av information visas som:
---------------------------------------------------------------------------
/ 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)
!
---------------------------------------------------------------------------
Om inga korrekta data visas är anslutningarna till elmätaren förmodligen inte rätt. Kolla dem igen! Om programmet ft bomber med ett meddelande om att enheten inte kan öppnas:
-Kontrollera om du kör som root -användare. Åtkomst till FTDI enheten kräver ytterligare privilegier.
-Om du har en annan FTDI version (eller från en skillnad tillverkare) kontrollera två hexadecimala tillverkaren / enhet nummer i anropet till ftdi_usb_open . Använd kommandot lsusb för att avgöra rätt hexadecimala siffrorna för enheten FTDI.
-Kontrollera om de enda data som visas på skärmen är en massa rappakalja om RXD PIN-koden har varit inverterad genom att använda verktyget FT_PROG på en windows-maskin. Det måste verkligen vara inverterad! Du kan hämta verktyget på webbplatsen FTDI.
Konvertering av data
Data kommer att tolkas av en liten AWK program (cosm.sh och cosm.awk) för att skapa data att bokföra på Cosm. AWK programmet skannar utdata från programmet ft och plockar upp de bitar som vi är intresserade. Slutligen, data är samordnade i en JSON struktur som kan matas direkt in i Cosm.
Ett exempel på sådan ett datameddelande:
------------------------------------------------------------------------
{
"version": "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"}
]}
------------------------------------------------------------------------
Testa skriptet AWK genom att utfärda:
. /ft | awk -f cosm.awk
Produktionen bör likna kodblocket JSON ovan.
Knyta de föregående två stegen ihop
Cosm.sh skriptet kommer kör de två föregående stegen och slutligen efter den resulterande JSON strukturen till Cosm. Innan vi kan göra det, måste vi skapa ett Cosm-konto, skapa en API-nyckel och ett flöde.
Jag kommer att beskriva de steg i nästa steg.