Como guardar datos desde raspberry a DB

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.536
Estimados, esta es mas bien una pregunta conceptual.

Tengo en mi casa una raspberry pi que uso como hobby, y actualmente esta tomando temperaturas de mi pieza. Lo que quiero lograr es poder guardarlas fuera de la raspberry, entiéndase una base de datos.

Cual seria la manera de hacerlo recomendada de hacerlo? Actualmente tiene un script en Python que solo muestra los datos, pero mi idea básica es hacer que el script guarde los datos en una base de datos SQL externa. ¿Es esto una buena idea? ¿Tal vez sea mejor hacerlo de otra manera? ¿Cuál seria una manera ideal de traspasar estos datos?
 

Harima

Pegao al tarro
Se incorporó
15 Mayo 2008
Mensajes
3.932
Tendrias que levantar algun servidor de BD en otra maquina.
Igual podrias usar firebird en la misma maquina o algo similar y liviano
Código:
https://firebirdsql.org/file/documentation/drivers_documentation/python/fdb/getting-started.html
 
Upvote 0

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.536
Me gustaría que los datos queden fuera de las raspberry por que es mas fácil consultarlos posteriormente, ideal si quedara en algún hosting por ejemplo
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.474
Para estos casos, tienes que ocupar un messagequeue ya que eso es lo que estás haciendo: traspasando datos enanos a otro lugar sin que ocupe mucho recurso.

Uno bien popular en domótica es MQTT; es bastante lightweight y funciona tanto en rPi como en Arduino. Si no planeas hacer más inventos, sobretodo con Arduino, puedes irte por RabbitMQ. Pesa bastante más que MQTT pero es un poco más fiable, ya que te permite agregar nodos sin mayor dificultad sin que se pierdan datos como sí suele permitir MQTT. MQTT no sé si te permita agregar nodos, yo tengo una instancia en casa pero en el servidor central que es bastante powa así que las ampolletas y el arduino escriben directo via IP.

Una vez que se transfiera al nodo principal, puedes hacer lo que se te de la gana con los datos: guardarlos en una db persistente, o importarlos en un ElasticSearch y graficar con Grafana o Kibana, importarlos a munin o quizás importarlos a home-assistant... eso depende de tus necesidades e imaginación :)

Saludos.
 
Upvote 0

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.536
Gracias por sus consejos, de momento lo que tengo es un script en Python que graba usando la librería mysqldb pero todos los hosting no aceptan conexiones remotas para guardar en sql, asi que empecé a ver lo que aca recomiendan
 
Última modificación:
Upvote 0

NIN

Opteron Fanboy
Se incorporó
5 Septiembre 2005
Mensajes
1.444
supone desperdicio de recursos si se monta una segunda rPI con una db ligera y un hdd? tendrias un respaldo local y no perderias datos si el enlace falla.
 
Upvote 0

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.536
supone desperdicio de recursos si se monta una segunda rPI con una db ligera y un hdd? tendrias un respaldo local y no perderias datos si el enlace falla.
Lo que hice mientras averiguo algo "mas mejor" fue modificar el script Python para que se comunique con una pagina en php via _post. Funciona pero no es elegante. Puede que guarde los datos localmente también.
 
Upvote 0

ricm

Se incorporó
28 Agosto 2005
Mensajes
7.536
Para estos casos, tienes que ocupar un messagequeue ya que eso es lo que estás haciendo: traspasando datos enanos a otro lugar sin que ocupe mucho recurso.

Uno bien popular en domótica es MQTT; es bastante lightweight y funciona tanto en rPi como en Arduino. Si no planeas hacer más inventos, sobretodo con Arduino, puedes irte por RabbitMQ. Pesa bastante más que MQTT pero es un poco más fiable, ya que te permite agregar nodos sin mayor dificultad sin que se pierdan datos como sí suele permitir MQTT. MQTT no sé si te permita agregar nodos, yo tengo una instancia en casa pero en el servidor central que es bastante powa así que las ampolletas y el arduino escriben directo via IP.

Una vez que se transfiera al nodo principal, puedes hacer lo que se te de la gana con los datos: guardarlos en una db persistente, o importarlos en un ElasticSearch y graficar con Grafana o Kibana, importarlos a munin o quizás importarlos a home-assistant... eso depende de tus necesidades e imaginación :)

Saludos.
Estuve averiguando del tema, se ve bastante adecuado como protocolo. Como mis datos los guardo en una base sql de webhosting barato, es razonable usarlo? Puede ser un hosting el broker?
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.474
Estuve averiguando del tema, se ve bastante adecuado como protocolo. Como mis datos los guardo en una base sql de webhosting barato, es razonable usarlo? Puede ser un hosting el broker?

pues MQTT fue desarrollado justamente para el traspaso de datos enanos en gran cantidad (de hecho fue creado en 1999 para controlar las temperaturas del petróleo en un tubo largo entremedio del desierto, con conectividad pobre), así que creo que puedes ver las similitudes de ese caso con tu use-case xD

Puntos a favor del protocolo:
El principal asunto es que con MQTT podrás conectar ponte tu 50 sensores a un arduino, mientras que si lo hicieras en python no serían más de 10. (DISCLAIMER: Sin ninguna base científica, son números inventados). Esto debido a que el protocolo es liviano.

@NIN Mosquitto (el broker más utilizado detrás del protocolo MQTT) ya lo hace, la gracia de los MessageQueue es que tienen un montón de casos de conectividad ya solucionados, ya que muchos de ellos están hechos pensando en conectividad pobre o interrupida.

Puntos en contra:
Actualmente es usado en arduino's, ampolletas y esos chiches pq el protocolo es liviano y simple, pero si ya estás usando python para llevar los datos a otro lado y te funciona bien (y tampoco piensas agrandarlo a corto plazo)... para qué cambiarlo? xD

Saludos.
 
Upvote 0
Subir