Tabla de contenido:

Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express: 8 pasos
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express: 8 pasos

Video: Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express: 8 pasos

Video: Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express: 8 pasos
Video: Pirate Radio 0x00 - Raspberry Pi Pico software support - where we're at! 2024, Noviembre
Anonim
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express
Uso de Pimoroni Enviro + FeatherWing con Adafruit Feather NRF52840 Express

La Pimoroni Enviro + FeatherWing es una placa repleta de sensores diseñados para funcionar con la serie de placas Adafruit Feather. Es un lugar útil para comenzar para cualquier persona interesada en el monitoreo ambiental, la contaminación atmosférica y la recopilación de datos. Cuenta con:

  • Bosch BME280 - sensor de temperatura, presión, humedad;
  • Lite-On LTR-559 - sensor de luz y proximidad;
  • SensorTech MiCS-6814 - sensor de gases oxidantes, gases reductores y amoniaco;
  • Micrófono analógico: mide la contaminación acústica;
  • Conector para sensor de partículas Plantower PMS5003 (no incluido).

El trío de sensores de óxido metálico del MiCS-6814 incluye un sensor menos común para gases oxidantes. Esto es útil por su sensibilidad al dióxido de nitrógeno (NO2), un contaminante común en las ciudades y cerca de las carreteras principales.

Pimoroni recomienda el Adafruit

  • Feather M4 Express (120MHz, 192kB ram) o
  • Feather nRF52840 Express (64MHz, 256kB de ram).

El nRF52840 fue elegido para esta guía ya que es compatible con Bluetooth Low Energy (BLE), lo que le da a la placa la posibilidad de enviar datos a otro dispositivo.

Tanto el Feather como el FeatherWing vienen con encabezados masculinos independientes. Se requieren encabezados femeninos para apilar las tablas. Esta guía muestra el uso de "encabezados de apilamiento" que permiten que la placa Feather también se inserte en una placa de pruebas, lo que facilita la experimentación con sensores adicionales. Los encabezados deben soldarse a las placas, pero esto es bastante sencillo.

El Enviro + FeatherWing tiene una diferencia sutil en comparación con su primo, el Enviro + Air Quality para Raspberry Pi. La versión FeatherWing parece estar diseñada para funcionar con voltajes por debajo de 5 V, lo que permite utilizar una sola batería de polímero de litio (LiPo) que produce 3,7 V-4,3 V. Tiene un convertidor CC-CC para proporcionar 5 V para el PMS5003 opcional y puede alimentar los calentadores internos MiCS-6814 individualmente para lidiar con estos voltajes más bajos.

La imagen principal muestra el Enviro + FeatherWing mostrando los datos de PM2.5 y PM10 del PMS5003. Se ha encendido una cerilla de Swan Vestas a mitad de la trama para encender la vela.

Un segundo artículo cubre el trazado de los niveles de dióxido de carbono con Pimoroni Enviro + FeatherWing y Adafruit SCD-30.

Suministros:

  • Pimoroni Enviro + FeatherWing - Pimoroni | Adafruit - (existe otra placa similar para Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
  • Cabezales apilables de plumas - Pimoroni | Adafruit: también se pueden usar encabezados femeninos normales o doblador / triplicador FeatherWing
  • Soldar
  • Opcional: sensor de partículas Plantower PMS5003 - Pimoroni | Adafruit

Paso 1: Actualización del cargador de arranque

La placa Feather se puede verificar antes de soldar conectándola a una computadora mediante USB. Este es un momento útil para comprobar el cargador de arranque: las versiones antiguas pueden producir errores confusos pero inofensivos en Windows.

Al hacer doble clic en el botón de reinicio de Feather, se presenta una unidad llamada FTHR840BOOT a la computadora host. Se puede abrir un archivo llamado INFO_UF2. TXT para inspeccionar la versión, el siguiente ejemplo muestra el contenido que indica la versión 0.2.6:

Cargador de arranque F2 0.2.6 lib / nrfx (v1.1.0-1-g096e770) lib / tinyusb (legacy-525-ga1c59649) s140 6.1.1

Modelo: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Fecha: 21 de diciembre de 2018

Las versiones anteriores a la 0.2.9 sufren el error mencionado anteriormente. El proceso de actualización un poco complicado se describe en Adafruit Learn: Presentación de Adafruit nRF52840 Feather: Update Bootloader y discutido en los foros de Adafruit: Los errores de Windows copian CircuitPython UF2 a FTHR840BOOT.

Paso 2: soldar los encabezados

Soldar los encabezados
Soldar los encabezados
Soldar los encabezados
Soldar los encabezados
Soldar los encabezados
Soldar los encabezados

El Enviro + FeatherWing necesita sus encabezados masculinos adjuntos y el Feather necesita los encabezados femeninos apilables adjuntos.

Una técnica común para ubicar los pines en la posición correcta mientras se suelda es insertarlos en una placa de pruebas. Se requiere cierta precaución con este FeatherWing ya que el conector picoblade en la parte inferior es más alto que los espaciadores de plástico en el cabezal. Esto podría hacer que la placa se suelde involuntariamente en ángulo. La imagen de arriba muestra el ángulo. Esto se resuelve fácilmente levantando los encabezados de manera uniforme a 2-3 mm (0,1 pulgadas) de la placa de pruebas.

Los cabezales hembra apilables deben estar perpendiculares al tablero. Esto se puede lograr colocándolos sobre una superficie plana y asegurándose de que la tabla de plumas esté presionada firmemente contra ellos. La imagen de arriba muestra la presión que se aplica con un lápiz con un dispositivo de manos de ayuda fuera de tiro que pone peso sobre el lápiz. Algunos encabezados de repuesto brindan ayuda adicional para mantener el espacio.

La hoja de datos de MiCS-6814 dice:

El sensor debe ser soldado por reflujo en atmósfera neutra, sin vapores de fundente de soldadura. El sensor no debe ser expuesto a altas concentraciones de solventes orgánicos, vapores de silicona o humo de cigarrillo para evitar envenenar la capa sensible.

Un pequeño trozo de cinta adhesiva que cubra el sensor de gas es una buena precaución durante la soldadura y la limpieza del fundente. El protector de pantalla también se puede dejar encendido en esta etapa para hacer frente a las inevitables pequeñas salpicaduras de fundente al soldar con una plancha. El micrófono también se beneficiaría de la protección con cinta adhesiva durante cualquier limpieza de flujo.

Las largas filas de clavijas se pueden doblar fácilmente al quitarlas de una placa de pruebas u otro enchufe. Tenga cuidado de no levantar la tabla en un extremo.

Adafruit tiene una guía para soldar encabezados de apilamiento, Pimoroni tiene una guía de soldadura general que incluye encabezados y hay un buen video en YouTube que muestra cómo soldar encabezados en una placa de estilo similar, GurgleApps: Raspberry Pi Pico Upgrade Number1 - ¡Pines de encabezado elegantes!

Paso 3: Instalación de CircuitPython y ejemplo de trazador combinado

Ejemplo de instalación de CircuitPython y trazador combinado
Ejemplo de instalación de CircuitPython y trazador combinado

Si no está familiarizado con CircuitPython, vale la pena leer primero la guía Bienvenido a CircuitPython.

Los pasos de instalación a continuación se basan en el README de pimoroni / EnviroPlus-FeatherWing y la guía de introducción con una biblioteca posterior para atender a CircuitPython 6.x.

  1. Instale la última versión de CircuitPython (6.0.0 en diciembre de 2020) desde https://circuitpython.org/; este proceso se describe en CircuitPython para Feather nRF52840.
  2. Verifique la instalación conectándose a la consola serie a través de USB. El indicador REPL muestra la versión. La versión también se puede verificar inspeccionando boot_out.txt en la unidad CIRCUITPY.
  3. Instale estas bibliotecas desde un paquete de https://circuitpython.org/libraries en el directorio lib en CIRCUITPY:

    1. adafruit_bus_device
    2. adafruit_bme280 (no adafruit_bmp280)
    3. adafruit_st7735r (no adafruit_st7735)
    4. adafruit_display_text
  4. Instale estas bibliotecas del archivo EnviroPlus-FeatherWing-1.0.zip de GiHub: pimoroni / EnviroPlus-FeatherWing: Versión 1.0 en el directorio lib en CIRCUITPY:

    1. i2cdevice (no confundir con la biblioteca i2c_device de Adafruit)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. No instale pimoroni_circuitpython_adapter desde aquí
  5. Instale la última biblioteca de adaptadores Pimoroni CircuitPython descargando el archivo _init_.py en un directorio lib / pimoroni_circuitpython_adapter recién creado en CIRCUITPY.
  6. Descargue el programa de ejemplo de trazador combinado en CIRCUITPY haciendo clic en Guardar enlace como… en plotters_combined.py
  7. Cambie el nombre o elimine cualquier archivo code.py existente en CIRCUITPY, luego cambie el nombre de plotters_combined.py a code.py. Este archivo se ejecuta cuando el intérprete de CircuitPython se inicia o se vuelve a cargar.

Las versiones utilizadas para esta guía fueron:

  • CircuitPython 6.0.0
  • Paquete de biblioteca CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • Biblioteca EnviroPlus-FeatherWing Versión 1.0
  • biblioteca pimoroni_circuitpython_adapter 9-dic-2020 f062036

Paso 4: el trazador combinado

El trazador combinado
El trazador combinado

El trazador combinado tiene cuatro pantallas:

  1. Sonido y Luz.
  2. PM2.5 y PM10.
  3. Temperatura, presión y humedad.
  4. OX, ROJO y NH3.

La pantalla de partículas en suspensión (PM) solo aparece si el Plantower PMS5003 está conectado. El programa verifica su presencia al inicio e imprime este mensaje informativo si no está conectado:

PMS5003 Tiempo de espera de lectura: no se pudo leer el byte de inicio de la trama

Probablemente no tenga un pms5003 conectado y continúe sin registro de partículas

El intervalo de trazado se establece en 540 segundos en la parte superior del programa. Esto se puede ajustar para controlar la tasa de trazado.

Paso 5: Pines Enviro + FeatherWing

Enviro + FeatherWing Pins
Enviro + FeatherWing Pins
Enviro + FeatherWing Pins
Enviro + FeatherWing Pins

Enviro + FeatherWing utiliza una gran cantidad de pines de Feather. Se utilizan los siguientes, los nombres entre paréntesis son del esquema de nomenclatura de Pimoroni:

  • A0 (pin5) - Sensor de gas amoniaco MiCS6814
  • A1 (pin6) - Sensor de gas reductor MiCS8614
  • A2 (pin 7) - Sensor de gas oxidante MiCS6814
  • A3 (pin8) - micrófono analógico
  • A4 (pin9) - Habilitar MiCS6814
  • D5 (pin19) - comando de pantalla de bus SPI
  • D6 (pin20) - Selección de chip de pantalla de bus SPI
  • D9 (pin 21) - luz de fondo (PWM)
  • D10 (pin 22) - Habilitar PMS5003
  • D11 (pin23) - Restablecimiento de PMS5003
  • D12 (pin24) - interrupción LTR-559 (no compatible con la biblioteca CircuitPython)
  • SCK (pin11) - reloj de bus SPI
  • MO (pin12) - Salida maestra del bus SPI Entrada esclava
  • MI (pin13) - Maestro de bus SPI en salida esclava
  • RX (pin 14) - PMS5003 transmitir (recibir por Feather)
  • TX (pin15) - PMS5003 recibir (transmitir desde Feather)
  • SCL (pin18) - reloj I2C
  • SDA (pin 17) - datos I2C

Esto deja a A5, D2 / DFU y D13 libres para su uso.

Paso 6: consumo de energía

El consumo de energía
El consumo de energía

El consumo de energía está dentro de la especificación USB, incluso si se conecta una batería LiPo y se está recargando. El uso es más relevante para planificar un cambio a la energía de la batería. Algunas medidas muy aproximadas de la corriente son:

  • 100 mA inactivo, retroiluminación apagada;
  • Trazador de 100mA funcionando, retroiluminación baja;
  • Trazador de 120mA funcionando, luz de fondo alta.

La hoja de datos del Plantower PMS5003 indica que la corriente es inferior a 100 mA, esto se sumaría a los números anteriores. El uso de un convertidor CC-CC en Enviro + FeatherWing puede aumentar este número ligeramente.

La placa Feather nRF52840 Express tiene un NeoPixel (LED RGB) pero los niveles de brillo para su uso predeterminado como indicador del estado del programa solo agregan una pequeña cantidad al consumo. La placa Feather en sí está por debajo de 10 mA por sí sola, la FeatherWing es la placa que consume mucha energía.

Paso 7: Adición del sensor de materia particular Plantower PMS5003

Adición del sensor de materia particular Plantower PMS5003
Adición del sensor de materia particular Plantower PMS5003
Adición del sensor de materia particular Plantower PMS5003
Adición del sensor de materia particular Plantower PMS5003
Adición del sensor de materia particular Plantower PMS5003
Adición del sensor de materia particular Plantower PMS5003

El Met One Instruments BAM 1020 es una vista común en todo el mundo que mide el material particulado en las ciudades. Existe una gama de dispositivos más asequibles y el Enviro + FeatherWing viene con un conector para el sensor de partículas Plantower PMS5003.

El código de la biblioteca de Pimoroni para este sensor actualmente parece frágil. Una mejora simple y rápida es detectar excepciones en el programa. El programa plotters_combined.py se puede mejorar agregando esto en la parte superior:

importar pimoroni_pms5003

Y reemplazando esta línea en el bucle while principal

# tomar lecturas

pms_reading = pms5003.read ()

con:

# tomar lecturas

intente: pms_reading = pms5003.read () excepto pimoroni_pms5003. ChecksumMismatchError: print ("error de suma de comprobación")

Paso 8: ir más lejos

Ir más lejos
Ir más lejos

Hay una serie de áreas para explorar una vez que tenga el Enviro + FeatherWing en funcionamiento.

  • Añadiendo un sensor de temperatura externo. El sensor de temperatura del BME280 está sujeto tanto al calentamiento interno como al calentamiento de los componentes cercanos y está diseñado para calibrar los demás sensores del BME280. El valor se puede procesar para proporcionar una medida aproximada de la temperatura del aire ambiente, pero hay muchas opciones externas superiores asequibles.
  • Calibrando los sensores. La presión es fácil usando observaciones meteorológicas o pronósticos a corto plazo (estos estarán a 0 pies sobre el nivel del mar), el resto son difíciles.
  • Corrección de la salida del PMS5003 para la humedad relativa. Se presenta una fórmula en la página 8 del PDF sobre EPA: PurpleAir PM2.5 Corrección y rendimiento de EE. UU. Durante eventos de humo 4/2020
  • Agregar código para transmitir los datos del sensor a través de Bluetooth Low Energy a otros dispositivos.
  • Investigando cómo minimizar el consumo de energía. Algunos de los sensores tienen líneas de habilitación, que pueden quitar la energía de los sensores o ponerlos en un modo de bajo consumo. Para sensores con un tiempo de calentamiento periódicamente, el muestreo puede no ser práctico.
  • Comprar, adaptar o hacer un estuche adecuado para montar en el exterior con un flujo de aire interno cuidadosamente diseñado y las precauciones adecuadas para la luz solar directa. El sensor de gas SensorTech MiCS-6814 funciona mejor con un flujo de aire constante y de baja velocidad a través de él.
  • Examinar cómo las condiciones climáticas influyen en la contaminación a nivel del suelo. Pista: las inversiones son significativas.
  • Conversión a batería o solar con batería. La energía solar es más desafiante que simplemente agregar un panel solar fotovoltaico, consulte la sección Notas de diseño en Adafruit Learn: USB, DC & Solar Lipoly Charger.
  • Agregar otros sensores para medir contaminantes comunes como el ozono (O3) y el dióxido de azufre (SO2) o gases de efecto invernadero como el dióxido de carbono (CO2). Algunos sensores miden "eCO2" y no son adecuados para medir el CO2 atmosférico. Adafruit ahora vende el sensor de CO2 Sensirion SCD-30 NDIR de gran valor en una placa con conectores STEMMA QT i2c.
  • Si desea investigar el envío de datos a través de Internet mediante Wi-Fi, la placa FeatherS2 con el microcontrolador ESP32-S2 parece ser compatible con Enviro + FeatherWing. Existe una limitación problemática con los convertidores de analógico a digital (ADC) ESP32-S2 que impide la medición adecuada de los sensores de gas. Consulte los foros de Adafruit: Comparación de ADC Feather, incluido el ESP32-S2 limitado a 2.6V para obtener más información.

Proyectos relacionados:

  • Adafruit Learn: Comparación y experimentación con sensores de gases inflamables
  • Adafruit Learn: Sensor de temperatura TMP36

Otras lecturas:

  • Directrices sobre contaminación del aire de la Organización Mundial de la Salud (OMS)
  • British Lung Foundation - Calidad del aire (PM2.5 y NO2)
  • Breathe London: una red para complementar la Red de calidad del aire de Londres con "sensores de calidad del aire asequibles, fáciles de instalar y mantener para cualquier persona", que actualmente utiliza el Clarity Node-S.
  • Índice mundial de calidad del aire: recopila datos de muchas fuentes diferentes con vistas de mapas y datos históricos.
  • Atmosphere Journal: Contaminación del aire interior de estufas residenciales: examen de la inundación de material particulado en los hogares durante el uso en el mundo real: utiliza la versión Raspberry Pi de la placa Enviro +.
  • Legislación: Regulaciones de estándares de calidad del aire de 2010 (Reino Unido)
  • Blog de Pimoroni: La noche más contaminada del año (en el Reino Unido)
  • The Economist: Midnight sky: la calefacción doméstica de carbón de Polonia genera una contaminación generalizada (enero de 2021)
  • BBC News: El ruido del tráfico afecta las capacidades de los pájaros cantores (contaminación acústica)
  • Errores de software en una biblioteca de sensores de materia particulada: un vistazo al cuidado necesario para analizar de manera sólida el protocolo serial PMS5003.