02-02-2021, 03:33 PM
(02-02-2021, 08:34 AM)unbilba escribió: He estado investigando un poco y creo que la opción más factible es implementar las tramas de signalK en el arduino. He visto que son tipo JSON (he hecho algún proyectito en el pasado y creo que me acuerdo) y que puedo declarar la estructura de datos que necesito. Además, se me simplifica el envío de todos los datos que quiero centralizar en el arduino (tº, agua de sentina, nivel de batería, alarmas,...)
No entendía lo que era un parsun, pero ahora lo entiendo.
Pero ahora se me plantea la siguiente duda (igual este hilo está tomando una deriva de otro hilo u subforo, si esa si decirme y lo cambiamos a otro o lo continuo en el hilo de mi barco):
-como doy de alta este nuevo modelo de datos? Como puedo visualizarlo o crear un instrumento para ello?
Gracias a todos!
Cuando tu creas la cadena json, tienes que ponerle la cabecera correspondiente de la sentencia de signal K que vas a utilizar.
Supongo que tendrás una biblioteca para hacer el parser con arduino. En python la hay. La biblioteca para parser de nmea183 se llama pinmea y la función es asi
hdg = pynmea2.HDG('OS', 'HDG', (str(heading_m),'','','',''))
En este caso es la informacion del compas. Como ves los datos se pasan a texto.
Tienes que convertir todos los valores a texto para introducirlos en la correspondiente función de la biblioteca.
Luego lo mandas al puerto serie.
Cuando conectes el arduino con la raspi, en openplotter creas una nueva conexión con el puerto serie conectado a arduino. Le pones tipo signalK y los datos deben de verse en openplotter.
Como esta información no es vital, ni cambia rápidamente, te recomiendo que la generes cada 5 minutos. Tambien puedes utilizar una gpio de arduino, para detectar que el motor esta en marcha y así activar la lectura de deposito cada 2 o 3 minutos y con motor apagado cada 10 min.
Desgraciadamente del mundo arduino estoy un poco pez.
Pero como se programa tambien en C , aquí hay bibliotecas.