Paso 3: Y ahora para algunos programas...
Lectura de los datos del medidorHe adjuntado un pequeño programa C (llamado crípticamente ft) que será leída el FTDI directamente. Este programa no es nada elegante, será:
1. Baje el DTR para causar el medidor que nos da la valiosa información
2. leer hasta que no hay datos durante 2 segundos
3. imprimirlo todo en la pantalla
Para compilar esto en el rPi, instalar "ftdilib-dev" en el rPi usando "sudo Apto-conseguir instalar libftdi-dev", copia el archivo tar en el rPi (bajo la cuenta de root en el directorio /root para mantenerlo simple), desempaquetar usando tar - xvf datacollector.tar y entonces emitir el "hacer" comando en el directorio/root.
Si todo va según lo previsto, el compilador nos dará el programa ft . Si comienzas este programa (entrar . /ft y pulse enter), se muestra un bloque de información como:
---------------------------------------------------------------------------
/ KA6U005464565461 KMP5
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)
!
---------------------------------------------------------------------------
Si no hay datos correctos se muestran, las conexiones al medidor de energía probablemente no son correctas. Comprobar otra vez! Si el programa ft bombas hacia fuera con un mensaje que el dispositivo no se puede abrir:
-comprobar si se ejecuta como usuario root . Acceder al dispositivo FTDI requiere privilegios adicionales.
-Si tienes otra versión FTDI (o de un fabricante de diferencia) Compruebe los dos fabricantes hexadecimal / dispositivo de números en la llamada ftdi_usb_open . Utilice el comando lsusb para determinar el número hexadecimal correcto para su dispositivo FTDI.
-Si los datos sólo se muestra en la pantalla están un montón de sandeces, compruebe si el pin RXD ha sido invertido con la utilidad FT_PROG en una máquina windows. Realmente necesita ser invertida! Usted puede obtener esta utilidad en la web FTDI.
Conversión de los datos
Los datos se puede analizar por un pequeño programa AWK (cosm.sh y cosm.awk) para crear los datos para publicar en Cosm. El programa AWK analiza la salida del programa de ft y recoge las piezas que nos interesa. Por último, los datos es concertados en una estructura JSON que puede introducirse directamente en Cosm.
Un ejemplo de un mensaje de datos:
------------------------------------------------------------------------
{
"versión": "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"}
]}
------------------------------------------------------------------------
Prueba el script AWK mediante la emisión de:
. /ft | awk -f cosm.awk
El resultado debería parecerse al bloque de código JSON anterior.
Unir los dos pasos anteriores
El script cosm.sh se ejecute los dos pasos anteriores y finalmente publicar la estructura JSON resultante Cosm. Antes de que podemos hacerlo, tendremos que crear una cuenta de Cosm, crear una clave API y una alimentación.
Voy a describir los pasos en el siguiente paso.