Hola,
Voy a iniciar un posteo para que vean una idea que tengo, y dentro de lo posible, me ayuden a llevarlo a cabo, además de aprender ya que es la primer experiencia que tengo con microcontroladores y su programación. No programo desde que hice el curso de LOGO cuando tenía 10 años (hace 40 años!) ![]()
Tengo dos proyectos de Datalogger que son muy parecidos. El primero tiene WIFI para poder subir los datos a thingspeak.com para visualizarlos. Tengo una placa D1 Mini con antena externa basada en el ESP8266EX (https://es.aliexpress.com/item/1005004005586872.html?spm=a2g0o.order_list.0.0.38e5194dWATOiQ&gatewayAdapt=glo2esp) con un Sensor BME280 que registra Temperatura, Humedad y Presión Barométrica (Sensor Digital BME280 3,3 V 5V, temperatura, humedad, módulo de Sensor de presión barométrica I2C SPI 1,8 5V, módulo de Sensor BME280|Circuitos integrados| - AliExpress). A esto pensaba agregarle un reloj RTC DS3231 para registrar el día y hora de cada toma de datos. También pensaba sumar un modulo de tarjeta MicroSD para guardar los datos.
La alimentación sería externa porque si bien van a estar cerca de dos casa distintas con acceso a internet, serán colocados alejado de la vivienda para tener una vista y toma de datos más despejada. Tengo pensado usar una batería 18650 y un cargador por panel solar (Este kit: Mini Panel Solar de silicio monocristalino, 6V, 210MA, 1,25 W, con cargador solar, CN3065, carga de teléfono móvil|Células solares| - AliExpress).
Vengo leyendo y mirando lo que puedo para aprender lo básico y junto con los ejemplos que vienen en las librerías pude armar un código y mostrar en el monitor serie los datos que necesito. Compare los datos del BME280 con otros medidores de temperatura y humedad y también con el barómetro de mi GPS y provee datos muy buenos. Hoy tuve andando la placa y recolectando datos cada minuto durante más de dos horas y funciono todo muy bien. Me entrega los tres valores separados por coma para importarlos directo a una planilla de cálculo.
El código que arme es el siguiente:
[code]
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme;
void setup() {
Serial.begin(9600);
if (!bme.begin(0x76)) {
Serial.println("No se encontro sensor BME280, chequear conexiones!");
while (1);
}
}
void loop() {
Serial.print(bme.readTemperature());
Serial.print(", ");
Serial.print(bme.readHumidity());
Serial.print(", ");
Serial.print(bme.readPressure() / 100.0F);
Serial.print(", ");
Serial.println();
delay(60000);
}
[/code]
Lo que aún no logre dilucidar es como ir agregando el resto del código para sumar el RTC y la tarjeta Micro SD. Ya estuve probando código para el reloj y la tarjeta por separado pero no me doy cuenta como agregarlo al código de arriba.
Pero antes que me respondan tengo un duda que quizás me puedan despejar y en una de esas simplificar este primer proyecto. ¿Si subo los datos a thingspeak.com hace falta agregar el RTC y la MicroSD? ¿Queda registrada la hora y la fecha de cada toma de datos cuando se suben? y lo más importante ¿quedan guardados los datos en mi canal de thingspeak.com, cuánto tiempo, hasta que capacidad?. Lo pregunto porque no encontré información y en los ejemplos que vi se pueden descargar datos (quiere decir que que guarda información) pero son muy pocos registros, ni siquiera un día completo. Mi idea era visualizar los datos a través de internet y guardar todo en la MicroSD y cada tanto descargar al PC. Pero si se guardan los datos Online me ahorro el modulo de la tarjeta y el consumo eléctrico y quizás también el RTC.
Bueno, hasta que llegue hoy, tengo más dudas pero por ahora esto es lo primero para poder seguir.
Muchas gracias de antemano y saludos cordiales,
Raúl
