EcoSen - Registradores de datos abiertos (o lo más abiertos posibles) para variables ambientales (English below)
El monitoreo ambiental es esencial para el cuidado del ambiente. Particularmente, me interesa poder monitorear ambientes acuáticos. Para medir estas variables una opción son los registradoresd e datos privativos. Estos debido a sus altos costos, o por ser de diseños cerrados nos imposibilitan compararlo o repararlos. Nuestra propuesta consiste en el diseño y desarrollo de registradores de datos (RD) con tecnologías inalámbricas para tener información en tiempo real en cualquier dispositivo conectado a internet. Los RD pueden ser tanto acuáticos como terrestres. Los acuáticos se espera puedan medir información relevante para el cálculo de índices de calidad de agua (Pesce y Wunderlin, 2000), como ser turbidez, oxígeno disuelto, conductividad y pH. El terrestre va a medir aquellas variables relevantes para la calidad del aire o suelo. La base técnica para la construcción de estos registradores es la presente en el increíble proyecto Cave Pearl Proyect, pero adaptandolo a aguas superficiales.
Este proyecto se encuentra en gestación por lo que vamos a ver es su evolución. Aún no hemos logrado un perfecto funcionamiento de lo propuesto ni con todo tipo de sensores ni con la conectividad inalámbrica, así que cualquier persona que se quiera sumar es bienvenida. Puedes comuncarte con [email protected]
Queremos traer a la sociedad la pasión por el monitoreo de ríos, lagunas, lagos y todo tipo de humedales. Además, reconocemos la importacia de aprender acerca de proyectos de electronica abierta con la posibilidad de reproducir, modificar y personalizar los RD. La tecnología abierta que queremos compartir es asociada a repositorios que harán de la información accesible a cualquier persona. Si en algún momento crees que alguna información no es lo suficiente pública por favor nos lo haces saber.
Vamos a usar una placa arduino para registrar unos valores del ambiente. Con esto vamos a lograr ver que estos microcontroladores son capaces de sensar variables ambientales y eso no interesa mucho.
- Arduino uno
- DHT 11
- Cables dupont
- Protoboard
- Cable USB-b a USB-c (viene incluido con el arduino UNO)
- Computadora de escritorio o laptop
- Instalamos Arduino IDE en nuestra pc -> link. Abrimos el software.
- Conectamos la placa a la pc, nos fijamos que puerto se nos habilita en el menú Herramientas/Puerto y lo seleccionamos. Abrimos el ejemplo blink, que se ubica en Archivo/Ejemplo/01.Basics. Subimos el código con la flecha a la derecha en la parte superior de la consola. Por último, vemos de cambiar el tiempo en el que se mantiene prendido y/o apagado el LED cambiando el número que hay dentro de cada uno de los delay que hay en el código. El primero lo cambiamos a 500 y el segundo a 2000. Volvemos a subir el código y chequeamos que la luz se mantenga apagada menos tiempo que prendida.
- Esto no es un paso sino una advertencia. Lo que sigue es empezar a probar códigos que usan librerías. Acá la cosa puede empezar a ponerse algo frustrante. Esto es porque puede haber muchas bibliotecas para un mismo módulo pero no todas funcionan de la misma manera. Entonces vamos a tener que estar muy segures de que la biblioteca sea la que funciona con nuestro código. Para evitar problemas voy a dejar los enlaces para descargar las bibliotecas necesarias para los códigos que vamos a usar.
- Armamos el circuito y probamos el siguiente código. Agregamos la librería DHT sensor library y Adafruit sensor master. Para incluir estas librerías tenemos que descargar los archivos ZIP de cada una de estas (DHT y Adafruit). Ahora vamos a Programa/Incluir librería/Añadir biblioteca .ZIP. Ahí cargamos las bibliotecas recientemente descargadas sin descomprimir. Luego de esto vamos a Programa/Incluir biblioteca/ y buscamos DHT y Adafruit, ambas al fondo de la lista desplegable. Una vez realizado esto cargamos el código en la placa y abrimos el monitor serial para ver los valores de humedad y temperatura.
Para empezar a registrar vamos a necesitar un nuevo elemento, el módulo SD. Con este módulo empezaremos a ganar independencia, ya que podremos guardar la información generada por el sensor en una memoria extraíble. Así podremos retirar la información de la placa para leerla en otro dispositivo.
- Los mismos de antes
- Módulo micro SD
- Memoria micro SD
Lo primero que vamos a hacer es ver si el módulo esta funcionando. Para esto vamos a correr este código de prueba del módulo y si lee una tarjeta. Este código fue creado por Limor Fried y modificado por Tom Igoe.
El esquema de conexión va a ser el siguiente:
- MOSI -> pin 11 on Arduino Uno/Duemilanove/Diecimila
- MISO -> pin 12 on Arduino Uno/Duemilanove/Diecimila
- CLK -> pin 13 on Arduino Uno/Duemilanove/Diecimila
- CS -> pin 10
El código cargado necesita de las librerías SD y SPI, pero estas ya vienen instaladas por defecto con el Arduino IDE. Listo podemos checkear que la placa detecta al módulo micro SD y otras características de la tarjeta. Opcionalmente podemos probar el siguiente código para escribir en la memoria y después chequear en la pc que realmente escriba en esta. Este último código es una modificación de ReadWrite de la biblioteca SD.
Ahora necesitamos tener una marca temporal para cada una de las mediciones que hagamos. Si bien cuando medimos conectados a una computadora tenemos esa información, la idea es tener registradores de datos portátiles.
- Los mismos de antes
- módulo RTC ds3231
- pila cr2032
Lo que tenemos que hacer ahora es poner en hora el RTC (Real Time Clock, que significa reloj en tiempo real). Este módulo es el que gracias a la pila cr2032 nos va a indicar la hora del registrador de datos aún cuando nuestra placa microcontroladora se quede sin energía.
Conexionado:
Imagen tomada de Cave Pearl Proyect, sobre como armar un registrador de datos con un Arduino Uno para principiantes
Pin SCL: al pin A5 de Arduino UNO/nano
Pin SDA: AL pin A4 de Arduino UNO/nano
Pin SQW: al pin 2 de Arduino UNO/nano
Pin Vcc: A 5V de Arduino
Pin GND: A masa de Arduino
Para poner en hora el vamos a usar el siguiente código. En este código, en la linea 13 ponemos la hora como se encuentra ejemplificado en el comentario de la linea 14 para nuestro fecha y horario actual.
Ahora lo que vamos a hacer es unir todos los pasos que acabamos de hacer para armar un registrador de datos. El sensor DHT 11 nos va a medir la humedad y la temperatura. Con el módulo micro SD registraremos la información en una memoria SD. Y con el módulo RTC tendremos la marca temporal de las mediciones independientemente de que la placa arduino se quede sin alimentación.
- Todos los que ya tenemos
Vamos a hacer las mismas conexiones que hicimos en los pasos anteriores. Esta vez también vamos a necesitar una librería, Low Power, que nos va permitir poner a dormir al registrador de datos para reducir su consumo y así aumentar su autonomía. Para este código vamos a usar la biblioteca RTClib vieja Ahora, vamos a usar el siguente código, el cual es una modificación del que está página de Cave Pearl Project. Lo que lograremos con esto será registrar valores ambientales, que se registren en la memoria y que el registrador entre en fase de dormición hasta la próxima lectura.
Vamos a ver las diferentes formas de alimentar nuestro Registrador de Datos Ambientales Abierto (RDAA) con varias fuentes de alimentación.
Proximamente veremos como armar un registrador de datos con arduino Pro Mini de 3.3v. La primera dificultad es conectarlo a una PC... acá va un tutorial del procedimiento
===================================================================================
Environmental monitoring is essential due to the variety of ways in which it is threatened. Usually recording environmental variables can be carried out by private data loggers. These devices, due to their high costs, or being of closed design, do not allow us to buy in quantity or build them. Our proposal consists in the design and development of open hardware data loggers with LoRaWan technology for communication with devices for downloading data. The data loggers will be of two types: aquatic and terrestrial. Aquatics will measure relevant data for the determination of water quality such as turbidity, dissolved oxygen, conductivity and pH. The terrestrial, will measure bee activity variables in hive, biological indicators of environmental quality. These data loggers are based mainly in the Cave Pearl Proyect, but with adaptations to surface waters.
We want to bring to society the passion for monitoring rivers and lakes. Also with the plus of learning about open electronic projects with possibility of reproduce, modify and customize data loggers. The Open technology that we bring is associated with open data repositories that will make the environmental information accessible to everyone!
To begin recording environmental variables is necessary to develop some abilities measuring these. To do that we are gonna start making a Coqui conductivity sensor of Public Lab website. With this task, we are learning to measure environmental variables with an open source hardware
To begin logging we are going to made an Arduino Uno based data logger. This data logger is based in one of the [Cave Pearl Projects] (https://thecavepearlproject.org/2015/12/22/arduino-uno-based-data-logger-with-no-soldering/). After complete the datalogger we are going to add a DHT11 temperature and relative humidity module to pin 8 of Arduino Uno. The code.ino is downloadable in the following linkor in the Codes folder.
The specific attributes of the data logger you build will depend slightly on the type of sensors you buy for the system. The numbers shown below are for the full version of the data logger that contains exactly the parts that we suggest in our build documents and parts list. Below, you can see which parts could be changed for which spec upgrades.
Attribute | Value [SI] |
---|---|
Weight | 1 [kg] |
Footprint | 30x5 [cm] |
Battery Capacity | 6800 [mAh] |
Operating time | 3[months](continual use) |
Approximate Max wireless communication | 3 [km] |
Communication (in this guide) | Arduino IDE (windows, mac, GNU/linux) |
Cost | ~ U$S350 |
Quantity | Value U$S | Link | |
---|---|---|---|
arduino pro mini | 1 | 3.881656805 | -> |
Arduino mega | 1 | 9.349112426 | |
temperature sensor ds18b20 | 1 | 4.130177515 | |
sensor de turbidez | 1 | 15.66863905 | |
pH sensor | 1 | 29.5 | |
conductivity sensor | 1 | 79.9 | |
disolved oxygen sensor | 1 | 169 | |
real time clock | 1 | 2.970414201 | |
18650 battery charger | 1 | 2.911242604 | |
battery holder | 1 | 1.124260355 | |
rechargable 18650 batteries | 2 | 3.360946746 | |
LoRa module | 2 | 15 | |
Hermetic case | 2 | 8,272189349 | |
Electronic stuff(jumper wires, terminal boards, soldering tin, etc.) | 10 |
This data logger is designed to function similarly to the Cave Pearl Proyect data logger designs:
- Autonomous: this data logger has an autonomy of several months
- Customisable: Allows to choose what sensor you want for your data logger
- Wireless communication: Thanks to the LoRa connectivity this device can send a measurements to a server and get access to the information wherever you are. This feature is new to the Cave Pearl Proyect data logger.
We chose a Arduino pro-mini to be the "brain" of this data logger for its versatility, accessibility, simplicity, and ability to add and upgrade your own modifications. Any method with which you can communicate with a arduino pro-mini (bluetooth, WiFi, LoRa, etc) can be added to the data logger to get the information from its.
This project need people interested in contribute in different tasks. In order to collaborate with this project, you will need to have some experience in the following:
- Coding arduino microcontrollers: Although we are already working in the code for the full data logger, improvements of the code are always necessary the best code possible for the device.
- Electronics: This project uses components like sensors, different modules, and batteries.
- Community management: We need some expertise in the use of social networks and content production.
Most of the above are skills that you can learn and pick up fairly quickly from watching videos and doing research on the internet, and throughout the project we try to give supplemental information on some of these as well. See the build documents for more information.
If you want to contribute please send me an email to: [email protected]
If you have any questions or run into problems during your build, please search for answers and/or reach out on the forum.
This README document is based in the NASA Open Source Rover project