This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
RaspBerry Pi + nrf24L01
#1
[Imagen: RPi+nRF+BT.jpg]


Estoy ultimando una serie de detalles en una nueva versión del SL Air, entre ellos recibir la primera tanda de placas, pero esto queda al margen porque dentro de poco publicare las cosas. Me gustaría conectar el Air a una rasp de forma que esta recoja toda la info, la procese y me la ofrezca a través de una interfaz web con ciertos detalles. Mis conocimientos son bastante limitados en cuanto a todo lo relacionado con la rasp, así que voy a tratar de exponer en este post que necesito, y la info que voy encontrando. No obstante voy a necesitar de vuestra ayuda. Este mini proyecto sera publico, para todo aquel que quiera ampliarlo a sus necesidades. Puedo contar con vosotros? Voy justo de tiempo, y querría darle algo de vida, para poder montar esta demo en Navidades.

Que quiero hacer?

Pretendo monitorizar la temperatura y puede que la humedad de toda mi casa. Para poder hacer esto, colocare 1 nodo por cada habitación + 1 nodo en la terraza (exterior). Estos nodos mandaran datos a la Rasp, con tramas definidas para poder procesar esos datos. Hasta aquí, por mi parte bien. Precisaria de conectar un modulo nrf24L01 a la Rasp. Además tiene que guardar estos datos, disponer de un servicio web y volcar estos datos en una interfaz que por ejemplo, puede ser el plano de mi casa, con las habitaciones y en cada 1 que se muestren los valores, o muestre colores en función de la temperatura, etc. Ademas, estos datos tienen que permanecer para poder consultarlos y/o generar gráficas, por lo que supongo que la rasp necesitara de una base de datos.

Creo que no es complicado, para mi lo es, pero no me lo he flipao, no es una idea descabellada.

Que puedo ofrecer?

Si alguien se anima a ayudar, yo puedo probar todo lo que aportéis (bien explicado porfa :oops: :oops: :oops: ) Pero también puedo enviaros un nodo para que podáis hacer pruebas vosotros. Como veáis.

Iré posteando mis avances al respecto y preguntando las dudas que me surjan y no pueda resolver.

Os doy las gracias desde ya por vuestra ayuda.

Info recopilada:

http://arduino-for-beginners.blogspot.fr...es-to.html

http://hack.lenotta.com/arduino-raspberr...-nrf24l01/

http://www.homautomation.org/2014/06/11/...-nrf24l01/

http://rlogiacco.wordpress.com/2014/02/2...pberry-pi/
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#2
A ver si me viene a la mente, porque me conocía un par de sistemas de almacenamiento de datos, con gráficas y todo vía web, pero no me acuerdo ahora mismo..
  Responder
#3
En cuanto a web no puedo ayudar, porque no tengo conocimientos, en cuando a programacion, si. Yo ya hice algo parecido pero con 5 pics y recogia la informacion enun dspic, que conectado a un pc, guardaba todos los datos almacenados y podia ver el estado de cada sensor.

Que quieres utilizar? C++, C, python... En cuanto c++ utilizar Qt desde un ordenador con windows y conectado remotamente podia interesar, de forma que permite hacer interfaz grafica utilizando c++. De esta forma trabajas con el pc, y haces crosscompilado a la raspberry, y puedes ver los resultados desde el mismo pc.

Por otro lado estoy en el estranjero, aqui tengo una raspberry y puedo hacer pruebas con ella, pero no con ninguntipo modulo rf, con lo que programar yo esa parte puede serme complicado porque no puedo hacer pruebas, pero vamos... Si que podia ayudar a programar y alguien haze las pruebas.
  Responder
#4
El uso del pc queda completamente descartado. Se tiene que hacer todo en la rasp. Lenguaje a usar en la rasp, no sabria decirte, por eso pido un poco de ayuda, estoy bastante pez en ese tema.
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#5
Bueno, te propongo lo siguiente:

Un programa en python que use la librería spidev que esté corriendo continuamente para manejar las comunicaciones con el nrf24L01. Este se encargará de leer los datos del módulo y los guardará en una base de datos mysql.

Un servidor apache con php instalado para que cuando accedas con tu navegador, una página html te muestre los gráficos y que mediante ajax llame a otra en php que lea la base de datos, pudiendo mostrar los datos casi a tiempo real sin tener que refrescar el navegador.

Esta página html usará HTML5 y javascript con la librería chartjs ( http://www.chartjs.org ) para mostrar las gráficas y el framework jQuery ( http://jquery.com ) para ajax y demás. Con la etiqueta canvas de html5 puedes coger el plano de tu casa como una imagen y luego pintar encima las zonas que están más frías o calientes.

Si quieres ir empezando por instalar en el Linux de la raspberry el Apache, Mysql y Php (LAMP) este es un buen sitio: http://geekytheory.com/tutorial-raspberr...mysql-php/

Luego puedes continuar por instalar el desarrollo de spidev siguiendo los pasos de esta página: http://www.100randomtasks.com/simple-spi...spberry-pi

Una vez hecho esto podemos seguir con el diseño de la bbdd y el código fuente de python; html, css, javascript y php
  Responder
#6
Gracias, has concretado bastante el proceso. Lo empezare a hacer tan pronto como pueda Gran sonrisa
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#7
De hecho si se forman grupos de personas, unos se pueden dedicar al script de python, otros a lo/s script/s de php y otros al html,css y javascript.
  Responder
#8
Si sale mas gente interesada, vosotros sabreis mejor como organizaros Sonrisa
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#9
Con lo que comenta sistemaorp se puede hacer.

También se podría hacer con node.js + socket.io mongodb y la librería
Johnny-five.

Node.js es en tiempo real. Y trabaja con html5 (css,js,html).

Lastima que no tenga tiempo.
  Responder
#10
yo en lo que pueda ayudar me apunto... no programacion en html5 y demas ni idea... pero en cuanto a comunicacion con y la programacion en pyton podria...
  Responder
#11
Entre todos habeis planteado varios caminos. Ire poniendo la rasp apunto y comprobando que comunica con los nodos.

Gracias por los aportes
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#12
En ratos kibres te puedo ayudar con la web y la BBDD en sql
"Enseñar es aprender dos veces".
  Responder
#13
Genial, es lo que ahora mismo veo mas dificil. Gracias
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#14
La parte gráfica de la web con un canvas sería bastante simple: un planito de la casa de fondo y colocar textos o figuras en las posiciones que quieras. Esos textos los sacas con peticiones asíncronas (AJAX) sin problemas, simplemente sacando los datos de la base de datos que utilices.

Si tienes solucionada la comunicación entre la Rasp y el módulo RF, se puede hacer correr un proceso que pregunte cada X tiempo la información a los sensores y lo guarde en la propia BBDD (te recomiendo MongoDB si vas a utilizar un volumen de datos importante, con un muestreo considerable).

Y como comenta Jero, si quieres rizar el rizo y hacer algo bidireccional puro, node.js con socket.io. Pero todo depende de tus necesidades.

Me quedo por aquí por si puedo echar una mano.
  Responder
#15
Los nodos envian la informacion a la rasp cada X tiempo, supongo que cada 30 min o 1 hora. Al tratarse de medir temperatura que es algo que varia lentamente, no preciso de muchas medidas. La rasp si que recibira datos de unos 10 nodos.

Lls datos a guardar serian los de fecha, hora, numero de trama, nodeID, temperatura, humedad, nivel de bateria. ** Aunque estos datos pueden ampliarse añadiendo mas sensores.

La comunicacion podria ser bidireccional, pero no tiene sentido en este momento. No obstante, podria ser necesaria en un futuro de cara a cambiar la configuracion de los nodos remotamente.

En principio en la interfaz web quiero cargar los datos mas recientes, pero si tengo jna opcioen en la misma interfaz de historial y que me genere una grafica de las medidas registradas en el ultimo dia, semana, varias horas, cosas de ese estilo. Seria una opcion interesante. Y no mucho mas, algo sencillin, pues no dispongo de tantos conocimientos. Si vosotros sabeis de opciones mas interesantes, por mi no hay problema en que las añadais.
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#16
Si no he leido (y entendido) mal, la parte de envío de esos datos no la tienes finiquitada aún, no? Lo digo a nivel soft, que el emisor envíe las tramas y la rasp las reciba, sea el tipo de comunicación que sea.

Dependiendo del tipo de comunicación, podría haber diferentes alternativas para almacenar datos... tienes alguna idea sobre qué camino seguirás sobre esa comunicación? (para mis conocimientos, la parte más crítica)
  Responder
#17
WeSo escribió:La parte gráfica de la web con un canvas sería bastante simple: un planito de la casa de fondo y colocar textos o figuras en las posiciones que quieras. Esos textos los sacas con peticiones asíncronas (AJAX) sin problemas, simplemente sacando los datos de la base de datos que utilices.

Ecos del pasado Sonrisa :

sistemasorp escribió:Un servidor apache con php instalado para que cuando accedas con tu navegador, una página html te muestre los gráficos y que mediante ajax llame a otra en php que lea la base de datos, pudiendo mostrar los datos casi a tiempo real sin tener que refrescar el navegador.

Esta página html usará HTML5 y javascript con la librería chartjs ( http://www.chartjs.org ) para mostrar las gráficas y el framework jQuery ( http://jquery.com ) para ajax y demás. Con la etiqueta canvas de html5 puedes coger el plano de tu casa como una imagen y luego pintar encima las zonas que están más frías o calientes.
  Responder
#18
WeSo escribió:Si no he leido (y entendido) mal, la parte de envío de esos datos no la tienes finiquitada aún, no? Lo digo a nivel soft, que el emisor envíe las tramas y la rasp las reciba, sea el tipo de comunicación que sea.

Dependiendo del tipo de comunicación, podría haber diferentes alternativas para almacenar datos... tienes alguna idea sobre qué camino seguirás sobre esa comunicación? (para mis conocimientos, la parte más crítica)

Lo tengo pensado, pero espero poder conectar el modulo de comunicacion directo a la rasp, si no tendria que usar otro nodo y conectarlo a la rasp via serial.

De lo comunicacion lo tengo todo claro menos desde que recibe datos la rasp y los guarda en la bbdd. Esta semana monto la rasp y monto toda la parte de comunicacion.
-> Mi CNC de escritorio CNCDesktop 500 -> https://www.spainlabs.com/foros/tema-Fresadora-Desktop-CNC-500
-> Laboratorio de Fabricación Digital Maker www.lowpower.io 
--> Twitter: https://twitter.com/Grafisoft_ES  | IG: https://www.instagram.com/lowpowerio/
  Responder
#19
sistemasorp escribió:Ecos del pasado Sonrisa
Sorry, lo leí todo deprisa por encima, lo de Jero por ejemplo sí lo vi Gaydude

grafisoft escribió:Lo tengo pensado, pero espero poder conectar el modulo de comunicacion directo a la rasp, si no tendria que usar otro nodo y conectarlo a la rasp via serial.

De lo comunicacion lo tengo todo claro menos desde que recibe datos la rasp y los guarda en la bbdd. Esta semana monto la rasp y monto toda la parte de comunicacion.
Pues iremos viendo los avances. Con la cantidad de opciones que hemos planteado, y los que andamos por este foro, creo que la parte que tienes menos clara no te será nada complicada.
  Responder
#20
WeSo escribió:Sorry, lo leí todo deprisa por encima, lo de Jero por ejemplo sí lo vi Gaydude

jajajaja, no puedo decir nada más que cuando te leí dije: joder, que bien pensando está Sonrisa Lo bueno es que ambos coincidimos con los criterios, y lo mejor para grafisoft es que tiene, además, otras alternativas como decis de node.js y bases de datos nosql Mola
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  CONSULTA Cómo puedo conectar varias cámaras IP a la vez por wifi a una raspberry? erjavi_zgz 1 1,182 04-02-2022, 12:55 AM
Último mensaje: pano
  Octoprint en Raspberry y MKS SGEN problema puertos Mafer 2 917 26-10-2021, 02:27 PM
Último mensaje: Mafer
  CONSULTA Opiniones Raspberry Pi Pico RP2040 grafisoft 0 798 21-02-2021, 07:32 PM
Último mensaje: grafisoft
  Problema inicio Raspberry pantalla negra en lugar de desktop Electromecánico 3 9,844 16-09-2020, 09:31 AM
Último mensaje: wolfmech
  Conexión Raspberry a Ender 3 Lione666 3 2,161 04-08-2020, 05:17 PM
Último mensaje: ramiro24