addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscontroller-playcrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1light-bulblinklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Internet of Things Madrid Meetup Message Board › Data logger para AQE usando SD card

Data logger para AQE usando SD card

javier m.
user 39438472
Madrid, ES
Post #: 3
Hola,
Por fin me he puesto a esto y ha sido más fácil de lo que creía.
La idea es que el AQE en lugar de enviar las lecturas de los sensores vía Ethernet a Cosm las almacene en un fichero de una tarjeta SD.
Esta configuración permite dejar un AQE "abandonado" en cualquier sitio con el único requisito de la alimentación. Dijimos hacer esto para colocarlo al lado de una estación de medición oficial y poder comparar fácilmente los datos.

He hecho la prueba con un Arduino Uno en lugar de con el Nanode original (no tenía a mano el cable FTDI) pero portarlo a Nanode sería trivial (creo). Otra opción es utilizar la nueva shield WiFi oficial de Arduino. Muy cara, pero tiene WiFi y SD integrados.

Bueno, resumen de lo que he hecho:
- Cepillarme la librería Ethernet de Nanode e incluir la SD oficial de Arduino.
- Para SD estoy usando la shield MP3 de sparkfun que utiliza el PIN 9 para seleccionar la tarjeta SD con el protocolo SPI -> He cambiado el STATUS_LED del PIN 9 al 8 (y cambiado también la conexión del cable en la shield del prototipo)
-He cambiado el método nanodeSetup para que en vez de inicializar Ethernet inicialice SD
- He cambiado el método nanoSendData para que en lugar de enviar los datos vía Ethernet, los escriba al fichero de la tarjeta SD (el código muy sencillo lo he sacado del propio ejemplo SD DataLogger del IDE Arduino)
- Ya está :-)

El único problema es que el Arduino no tiene un reloj real con lo que las medidas se almacenan con el valor del timer millis(). Si queremos algo más consistente habría que añadir un RTC al diseño. Por cierto este timer es un unsigned long con lo que tenemos 4,294,967,295 milisegundos (más de 40 días) antes de que se resetee el contador.

Os dejo una muestra del contenido del fichero:

Current time,1422695
NO2,154
CO,16
airQuality,516
humidity,40
temperature,23
button,0


Current time,1432696
NO2,154
CO,16
airQuality,481
humidity,40
temperature,23
button,0


Current time,1442697
NO2,154
CO,16
airQuality,535
humidity,40
temperature,23
button,0


Current time,1452698
NO2,148
CO,15
airQuality,398
humidity,40
temperature,23
button,0


Current time,1462699
NO2,149
CO,9
airQuality,403
humidity,40
temperature,23
button,0


Current time,1472700
NO2,149
CO,7
airQuality,351
humidity,40
temperature,23
button,0



Un saludo,

Javier

javier m.
user 39438472
Madrid, ES
Post #: 4
He subido el código y una muestra del fichero de log a github:

proyecto DataLogger for AQE
A former member
Post #: 14
Bravo Javier, yo por mi parte he avanzado en el tema de la alimentación LiPo, y creo que lo tendré listo esta semana (me falta un componente por llegar).

javier m.
user 39438472
Madrid, ES
Post #: 5
Muchas gracias Juan Félix! Al final vamos a tener el cojo-AQE smile

Y gracias también a Julio Galarón que ha propuesto mejorar el fichero de salida utilizando formato CSV. He subido una nueva versión del código a github que ya genera el formato optimizado.
César G.
CesarGarcia
Group Organizer
Madrid, ES
Post #: 18
Gracias Javier!

Al final, ha habido bastantes novedades estos últimos días que tendríamos que comentar, aunque el tema del espacio está siendo bastante complicado este mes crying
Jorge Paz J.
user 44932212
Madrid, ES
Post #: 2
Gracias Javier.

Estoy usando tú código con la ethernet shield y parece que todo funciona. He mantenido statusLed con valor 9 porque en esta shield el toggle pin es el 4. En cambio, en el pin 4 tengo un cable verde de la placa del sensor de CO. Tengo que investigar como puede influir esto.

No localizo en el código que hay que cambiar para poder pasar este cable a otro pin del arduino ( por ejemplo, del pin 4 pasarlo al 2). Tampoco sé en que medida esto puede estar afectando a las mediciones de CO.

De todos modos voy a seguir tomando valores unos días en lo que intento analizar esto y trabajo para empaquetar todo.

Gracias de nuevo y un saludo.

Jorge
Powered by mvnForum

Our Sponsors

  • Intelygenz

    Sponsor festejos del cuarto aniversario

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy