Tabla de contenido:

Registrador de datos de código abierto (OPENSDL): 5 pasos (con imágenes)
Registrador de datos de código abierto (OPENSDL): 5 pasos (con imágenes)

Video: Registrador de datos de código abierto (OPENSDL): 5 pasos (con imágenes)

Video: Registrador de datos de código abierto (OPENSDL): 5 pasos (con imágenes)
Video: Que? #short 2024, Mes de julio
Anonim
Registrador de datos de código abierto (OPENSDL)
Registrador de datos de código abierto (OPENSDL)
Registrador de datos de código abierto (OPENSDL)
Registrador de datos de código abierto (OPENSDL)
Registrador de datos de código abierto (OPENSDL)
Registrador de datos de código abierto (OPENSDL)

El objetivo de este proyecto es diseñar, construir y probar un sistema de medición de bajo costo para estudios de Evaluación del Desempeño de Edificios que incluya al menos temperatura, humedad relativa, iluminancia y sea extensible a sensores adicionales, y desarrollar el prototipo de estos dispositivos..

Esto da como resultado un sistema personalizado y asequible que permite a las partes interesadas realizar las mediciones necesarias para la evaluación del rendimiento del edificio de una manera eficiente y asequible mediante el registro de múltiples parámetros ambientales a la vez. El registrador de datos de código abierto (OPENSDL) desarrollado se comparó con un registrador de datos HOBO U12-012. Este sistema homólogo disponible comercialmente puede medir 3 parámetros, a saber, temperatura, HR e iluminancia, y un canal externo para otros tipos de sensores. Se necesitaría un dispositivo sensor diferente para medir cualquier otro parámetro. Las características de los parámetros a medir se limitan al hardware y software patentados, lo que restringe el sistema a la medición de ciertos parámetros con precisiones específicas. Un HOBO U12-012 cuesta alrededor de ₹ 13, 000 (US $ 185), mientras que el OPENSDL cuesta ₹ 4, 605 (US $ 66), que es casi un tercio de la contraparte comercial.

Un registrador de datos de código abierto para monitorear la temperatura, la humedad relativa y los niveles de luz (iluminancia) con la ayuda de un Arduino Uno. Este es un bricolaje para desarrollar el registrador de datos OPENSDL.

Tiempo requerido: 2-3 horas para soldar, 5 horas para empaque (4 horas - impresión 3D y 1 hora para corte por láser) Habilidades requeridas: Soldadura, poco o ningún conocimiento en programación y electrónica.

Piezas necesarias:

  1. Arduino Uno con cable
  2. Escudo del registrador de datos
  3. Batería de tipo botón CR1220
  4. Placa de ruptura del sensor de presión de humedad de temperatura BME280
  5. Placa de conexión del sensor de luz TSL2561
  6. Módulo Wi-Fi ESP01-8266
  7. Conector RJ-9 macho y hembra
  8. Encabezados de apilamiento de escudos para Arduino
  9. Tarjeta de memoria SD (cualquier capacidad)
  10. Tablero de vectores (26 x 18 agujeros)
  11. 8 pilas AA Soporte para pilas

Herramientas necesarias:

  • Soldador (35W)
  • Alambre de soldar
  • Cortador de cables
  • Herramienta crimpadora
  • Multimetro

Software requerido: Arduino IDE (1.0.5 o superior)

Bibliotecas Arduino utilizadas:

  • Biblioteca de cables
  • Biblioteca SparkFun TSL2561
  • Biblioteca multisensor Cactus BME280
  • Biblioteca de tarjetas SD
  • Biblioteca SPI
  • Biblioteca RTC

Nota: El sensor BME280 es un sensor de temperatura, humedad relativa y presión muy preciso de Bosch. Del mismo modo, el DS1307 es un reloj de tiempo real preciso de Maxim y el TSL2561 es un sensor de luz preciso. Existen alternativas menos costosas y menos precisas para estos productos, pero este tutorial estaba dirigido a personas interesadas en recopilar datos para la evaluación del desempeño de edificios y aplicaciones de monitoreo de edificios que requieren alta precisión y exactitud. Esto significa que cualquier configuración de hardware y software específica (bibliotecas, código de programa) se diseñó estrictamente solo para los productos especificados.

Paso 1: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

El escudo del registrador de datos se puede apilar fácilmente en la parte superior de la placa Arduino Uno. Este escudo proporciona las capacidades de registro de datos (cronometraje y almacenamiento de datos). Había que apilar el escudo. Se tuvo que insertar una batería de celda de moneda CR1220 en la ranura redonda provista para mantener el reloj funcionando incluso cuando el Arduino está apagado. La tarjeta de memoria SD debe insertarse en la ranura para tarjetas incorporada proporcionada. Se desarrolló un escudo personalizado único mediante el uso de pines hembra del conector RJ-9 y cabezales de apilamiento del escudo Arduino. Los encabezados apropiados se soldaron en las ubicaciones apropiadas para que el escudo se ajuste perfectamente a la placa Arduino. El Arduino tiene 18 pines en un lado y 14 pines en el otro lado. Los encabezados con el mismo número de pines se utilizaron con el mismo espaciado (18 pines de separación) que en Arduino. El espacio adicional restante adyacente a los encabezados se utilizó para colocar el conector RJ-9.

Los encabezados eran la mejor manera de utilizar los pines necesarios, al tiempo que los dejaban disponibles para otros componentes. Los sensores utilizados siguen el protocolo de comunicación I2C, que requiere 4 pines de Arduino, a saber: SDA (también disponible como A4), SCL (también disponible como A5), 3.3V y GND. Los cuatro cables que salen del conector RJ-9 se soldaron en estos cuatro pines del cabezal. El número de conectores RJ-9 necesarios depende del número de sensores. En este proyecto se utilizaron 3 conectores RJ-9 (dos para BME280 y uno para TSL2561). Los cuatro cables que salen del conector RJ-9 fueron codificados por colores, y cada cable de color fue designado como un pin específico para todos los conectores RJ-9. Debe tenerse en cuenta que el código de color puede variar en diferentes piezas RJ-9. En tal caso, se debe anotar la ubicación del cable en el conector. El conector RJ-9, después de soldar, se hizo para pegar en la placa de vector usando un Feviqwik, de modo que se fije en la superficie. Estas conexiones se pueden verificar usando el modo de continuidad en el multímetro. Cuando está en modo de continuidad, el multímetro debe mostrar resistencia cero. Conecte una de las sondas del multímetro al pin soldado y otra sonda al pin dentro del conector RJ-9. El multímetro debe emitir un tono, lo que significa que las juntas de soldadura son adecuadas y que las conexiones se han realizado correctamente. Si no se emite el tono, verifique las juntas de soldadura. De manera similar, suelde el conector RJ-9 con los mismos cables que se conectan a los mismos orificios en las placas de conexión del sensor, es decir, A4, A5, 3.3V y GND. El sensor BME280 admite dos direcciones I2C, lo que significa que se pueden conectar dos sensores BME280 al mismo controlador a la vez. Mientras lo hace, la dirección de uno de los sensores debe cambiarse uniendo las almohadillas de soldadura en el sensor. Un chip de conexión inalámbrica ESP-01 requería las siguientes conexiones con el Arduino.

ESP-01 --------- Arduino Uno

10 -------------------- TX

11 -------------------- RX

Vcc ---------------- CH_PD

Vcc ------------------- Vcc

TIERRA ----------------- TIERRA

Nota: - Se quitaron los múltiples LED de Arduino Uno para mejorar la duración de la batería. Los LED indicadores de encendido, los LED RX y TX se eliminaron calentando las juntas de soldadura y presionando el LED con unas pinzas.

Paso 2: configurar IDE y bibliotecas

Antes de realizar cualquier programación, se debe descargar Arduino IDE (Integrated Development Environment). La programación se realizó en esta plataforma. Se requirieron diferentes bibliotecas para interactuar con diferentes componentes de OPENSDL. Se utilizaron las siguientes bibliotecas para los componentes dados.

Componente ------------------------------------------------- --------------Biblioteca

Sensor de temperatura y HR BME280 --------------------------------- Cactus_io_BME280_I2C.h

Sensor de luz------------------------------------------------ ---------------- SparkFun TSL2561.h

Reloj en tiempo real ----------------------------------------------- ------------- RTClib.h

Toma de tarjeta SD ----------------------------------------------- ------------- SD.h

Conexión I2C ------------------------------------------------ ------------- Alambre.h

No se requiere una biblioteca separada para comunicarse con el ESP01 ya que el código cargado en el Arduino tiene comandos AT, que se envían al monitor en serie, desde donde el ESP-01 toma las instrucciones. Entonces, básicamente, los comandos AT mediante los cuales se ejecuta ESP01, se imprimen en el Monitor en serie, que el ESP-01 toma como un comando de entrada. Para instalar estas bibliotecas, después de descargarlas, abra el IDE de Arduino, vaya a Sketch -> Incluir biblioteca -> Agregar biblioteca. Zip y seleccione las bibliotecas descargadas.

Paso 3: Programación del sistema

Programando el sistema
Programando el sistema

Antes de programar el OPENSDL, conecte el Arduino con una computadora portátil. Después de conectarse, vaya a Herramientas -> Puerto y seleccione el puerto COM en el que está conectado el OPENSDL. Además, asegúrese de que en Herramientas -> Placas, Arduino Uno esté seleccionado.

El OPENSDL fue desarrollado para funcionar en 2 modos. En el primer modo, almacena los datos en la tarjeta SD en el escudo del registrador de datos. En el segundo modo, envía los datos a través de Internet a un sitio web mediante el uso de un chip Wi-Fi ESP-01. El programa para ambos modos es diferente. Estas líneas de código se pueden copiar y pegar directamente en el editor de Arduino IDE y utilizarlas directamente. Una vez en el código, necesitamos hacer algunas personalizaciones según nuestras necesidades:

  1. Cambie manualmente el valor de retraso (1000) al final del código para cambiar el intervalo de registro. El valor 1000 representa el intervalo en milisegundos.
  2. Edite la línea de código que dice mySensorData = SD.open ("Logged01.csv", FILE_WRITE); y reemplace Logged01 con el nombre de archivo del nombre de archivo deseado. La extensión del archivo también se puede cambiar modificando la extensión.csv justo después del nombre del archivo.
  3. La ecuación de calibración lograda al encontrar la correlación entre el sensor maestro / de referencia y el BME280 variará con cada sensor. Reemplace esta línea de código con la ecuación para calibrar los sensores: Serial.print ((1.0533 * t2) -2.2374) - para sensor con dirección predeterminada (0x77), donde t2 es el valor leído del sensor de temperatura.

Se ha proporcionado un programa separado para programar el segundo modo disponible de OPENSDL, que es el sistema inalámbrico. El ESP-01 debe estar conectado al OPENSDL de acuerdo con las conexiones como se explica en el Paso # 2. Después de completar las conexiones, conecte el Arduino a la computadora portátil y cargue un boceto en blanco en el Arduino. Ponga el ESP-01 en el modo de actualización y actualice el firmware a la última actualización disponible. Después de la actualización, asegúrese de conectar el pin de reinicio de Arduino con el pin de 3.3V, que omite el gestor de arranque Arduino

Paso 4: Fabricación

Fabricación
Fabricación
Fabricación
Fabricación
Fabricación
Fabricación

Se creó un cerramiento para OPENSDL para protección y para mejorar la estética. Las carcasas se desarrollaron mediante impresión 3D con material PLA, y la carcasa del microcontrolador se desarrolló cortando con láser la hoja de MDF y pegando las piezas. Los modelos impresos en 3D se desarrollaron utilizando el software SketchUp, y los dibujos 2D dxf para corte por láser se crearon utilizando AutoCAD.

Para la impresión 3D, los archivos STL producidos mediante SketchUp se abrieron y comprobaron en el software Ultimaker Cura 3.2.1. Asegúrese de que se utilice material PLA y que la boquilla de la impresora utilizada sea para impresión de 0,4 mm. La placa de construcción de la impresora 3D puede requerir pegamento para pegar el objeto impreso en 3D. Pero cuando se completa la impresión, el pegamento crea una fuerte adhesión entre el objeto impreso y la placa de construcción.

Paso 5: Código

El código (archivos.ino) está diseñado para funcionar en el software Arduino IDE. Aquí está el enlace a mi página de Github para el código y otros detalles.

github.com/arihant93/OPENSDL

No dude en hacer preguntas sobre el proyecto.

Gracias.

Recomendado: