Índice:

Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express: 8 Passos
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express: 8 Passos

Vídeo: Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express: 8 Passos

Vídeo: Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express: 8 Passos
Vídeo: 3D Hangouts – LEDs, Props, Wipper Snapper and Feather Headers Jig 2024, Julho
Anonim
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express
Usando o Pimoroni Enviro + FeatherWing com o Adafruit Feather NRF52840 Express

A Pimoroni Enviro + FeatherWing é uma placa cheia de sensores projetados para funcionar com a série de placas Adafruit Feather. É um ponto de partida útil para qualquer pessoa interessada em monitoramento ambiental, poluição atmosférica e coleta de dados. Possui:

  • Bosch BME280 - sensor de temperatura, pressão e umidade;
  • Lite-On LTR-559 - sensor de luz e proximidade;
  • SensorTech MiCS-6814 - gases oxidantes, gases redutores e sensor de amônia;
  • Microfone analógico - medição da poluição sonora;
  • Conector para sensor de material particulado Plantower PMS5003 (não incluído).

O trio de sensores de óxido metálico no MiCS-6814 inclui um sensor menos comum para gases oxidantes. Isso é útil por sua sensibilidade ao dióxido de nitrogênio (NO2), um poluente comum em cidades e perto de estradas principais.

Pimoroni recomenda o Adafruit

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

O nRF52840 foi escolhido para este guia porque suporta Bluetooth Low Energy (BLE), o que dá à placa o potencial de enviar dados para outro dispositivo.

O Feather e o FeatherWing vêm com cabeçalhos masculinos não anexados. Cabeçalhos fêmeas são necessários para empilhar as placas. Este guia mostra o uso de "cabeçalhos de empilhamento" que permitem que a placa Feather também seja inserida em uma placa de ensaio, facilitando a experimentação com sensores extras. Os cabeçalhos precisam ser soldados às placas, mas isso é razoavelmente simples.

O Enviro + FeatherWing tem uma diferença sutil em comparação com seu primo, o Enviro + Air Quality for Raspberry Pi. A versão FeatherWing parece ser projetada para funcionar com tensões abaixo de 5 V, permitindo que uma única bateria de polímero de lítio (LiPo) produzindo 3,7 V-4,3 V seja usada. Ele tem um conversor DC-DC para fornecer 5 V para o PMS5003 opcional e pode alimentar os aquecedores internos MiCS-6814 individualmente para lidar com essas tensões mais baixas.

A imagem principal mostra o Enviro + FeatherWing exibindo os dados PM2.5 e PM10 do PMS5003. Um fósforo do Swan Vestas foi riscado no meio da trama para acender a vela.

Um segundo artigo cobre a plotagem dos níveis de dióxido de carbono com o Pimoroni Enviro + FeatherWing e o Adafruit SCD-30.

Suprimentos:

  • Pimoroni Enviro + Asa de Pena - Pimoroni | Adafruit - (outra placa semelhante existe para o Raspberry Pi)
  • Adafruit nRF52840 Feather Express - Pimoroni | Adafruit
  • Cabeçalhos de empilhamento de penas - Pimoroni | Adafruit - cabeçalhos fêmeas normais ou dobrador / triplo FeatherWing também podem ser usados
  • Solda
  • Opcional: Sensor de material particulado Plantower PMS5003 - Pimoroni | Adafruit

Etapa 1: Atualizando o Bootloader

A placa Feather pode ser verificada antes de ser soldada conectando-a a um computador usando USB. Este é um momento útil para verificar o carregador de inicialização - versões antigas podem produzir erros confusos, mas inofensivos no Windows.

Clicar duas vezes no botão de reinicialização do Feather faz com que uma unidade chamada FTHR840BOOT seja apresentada ao computador host. Um arquivo chamado INFO_UF2. TXT pode ser aberto para inspecionar a versão, o exemplo abaixo mostra o conteúdo indicando a versão 0.2.6:

F2 Bootloader 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 Data: 21 de dezembro de 2018

Versões anteriores a 0.2.9 sofrem com o bug mencionado anteriormente. O processo de atualização levemente complicado é descrito em Adafruit Learn: Apresentando o Adafruit nRF52840 Feather: Atualizar Bootloader e discutido em Adafruit Forums: Erros do Windows copiam CircuitPython UF2 para FTHR840BOOT.

Etapa 2: soldando os cabeçalhos

Soldando os cabeçalhos
Soldando os cabeçalhos
Soldando os cabeçalhos
Soldando os cabeçalhos
Soldando os cabeçalhos
Soldando os cabeçalhos

O Enviro + FeatherWing precisa de seus cabeçalhos masculinos anexados e o Feather precisa dos cabeçalhos femininos de empilhamento anexados.

Uma técnica comum para localizar os pinos na posição correta durante a soldagem é inseri-los em uma placa de ensaio. É necessário algum cuidado com este FeatherWing, pois o conector picoblade no lado inferior é mais alto do que os espaçadores de plástico no coletor. Isso pode fazer com que a placa seja acidentalmente soldada em ângulo. A imagem acima mostra o ângulo. Isso é facilmente resolvido levantando os cabeçalhos uniformemente em 2-3 mm (0,1 pol.) Da placa de ensaio.

Os cabeçalhos fêmeas de empilhamento devem ser perpendiculares à placa. Isso pode ser conseguido colocando-os em uma superfície plana e garantindo que a placa Feather seja pressionada firmemente contra eles. A imagem acima mostra a pressão sendo aplicada com um lápis com um dispositivo de mãos ajudando, colocando peso no lápis. Alguns cabeçalhos sobressalentes estão fornecendo ajuda adicional para manter o espaçamento.

A folha de dados MiCS-6814 afirma:

O sensor deve ser soldado por refluxo em uma atmosfera neutra, sem os vapores do fluxo de soldagem. O sensor não deve ser exposto a altas concentrações de solventes orgânicos, vapores de silicone ou fumaça de cigarro para evitar o envenenamento da camada sensível.

Um pequeno pedaço de fita adesiva cobrindo o sensor de gás é uma precaução sábia durante a soldagem e limpeza de fluxo. O protetor de tela também pode ser deixado nesta fase para lidar com os inevitáveis salpicos minúsculos de fluxo da soldagem com um ferro. O microfone também se beneficiaria da proteção com fita adesiva durante qualquer limpeza de fluxo.

As longas filas de pinos podem ser facilmente dobradas ao removê-los de uma protoboard ou outro soquete. Tome cuidado para evitar levantar a placa em uma das extremidades.

Adafruit tem um guia sobre cabeçalhos de empilhamento de soldagem, Pimoroni tem um guia geral de soldagem que inclui cabeçalhos e há um bom vídeo no YouTube mostrando como soldar cabeçalhos em uma placa de estilo semelhante, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Etapa 3: Instalação de CircuitPython e exemplo de plotadora combinada

Exemplo de instalação de CircuitPython e plotadora combinada
Exemplo de instalação de CircuitPython e plotadora combinada

Se você não estiver familiarizado com o CircuitPython, vale a pena ler primeiro o guia Bem-vindo ao CircuitPython.

As etapas de instalação abaixo são baseadas no README pimoroni / EnviroPlus-FeatherWing e no guia Getting Started com uma biblioteca posterior para atender ao CircuitPython 6.x.

  1. Instale a versão mais recente do CircuitPython (6.0.0 em dezembro de 2020) em https://circuitpython.org/ - este processo é descrito em CircuitPython for Feather nRF52840.
  2. Verifique a instalação conectando-se ao console serial via USB. O prompt REPL mostra a versão. A versão também pode ser verificada inspecionando boot_out.txt na unidade CIRCUITPY.
  3. Instale essas bibliotecas de um pacote de https://circuitpython.org/libraries no diretório lib em CIRCUITPY:

    1. adafruit_bus_device
    2. adafruit_bme280 (não adafruit_bmp280)
    3. adafruit_st7735r (não adafruit_st7735)
    4. adafruit_display_text
  4. Instale essas bibliotecas do arquivo EnviroPlus-FeatherWing-1.0.zip do GiHub: pimoroni / EnviroPlus-FeatherWing: Versão 1.0 no diretório lib em CIRCUITPY:

    1. i2cdevice (não deve ser confundido com a biblioteca i2c_device da Adafruit)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Não instale o pimoroni_circuitpython_adapter daqui
  5. Instale a biblioteca do adaptador Pimoroni CircuitPython mais recente baixando o arquivo _init_.py em um diretório lib / pimoroni_circuitpython_adapter recém-criado em CIRCUITPY.
  6. Baixe o programa de exemplo de plotadora combinada para CIRCUITPY clicando em Salvar link como… em plotters_combined.py
  7. Renomeie ou exclua qualquer arquivo code.py existente em CIRCUITPY e, em seguida, renomeie plotters_combined.py para code.py. Este arquivo é executado quando o interpretador CircuitPython é iniciado ou recarregado.

As versões usadas neste guia foram:

  • CircuitPython 6.0.0
  • Pacote da biblioteca CircuitPython adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • Biblioteca EnviroPlus-FeatherWing versão 1.0
  • Biblioteca pimoroni_circuitpython_adapter 9-Dez-2020 f062036

Etapa 4: o plotter combinado

O plotter combinado
O plotter combinado

O plotter combinado tem quatro telas:

  1. Som e luz.
  2. PM2.5 e PM10.
  3. Temperatura, pressão e umidade.
  4. OX, RED e NH3.

A tela de material particulado (PM) só aparece se o Plantower PMS5003 estiver conectado. O programa verifica sua presença no início e imprime esta mensagem informativa se não estiver conectado:

PMS5003 Tempo Limite de Leitura: Falha ao ler o byte do início do quadro

Você provavelmente não tem um pms5003 conectado, continuando sem registro de partículas

O intervalo do gráfico é definido para 540 segundos no início do programa. Isso pode ser ajustado para controlar a taxa de plotagem.

Etapa 5: Enviro + FeatherWing Pins

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

O Enviro + FeatherWing usa um grande número de pinos de Feather. Os seguintes são usados, os nomes entre colchetes são do esquema de nomenclatura de Pimoroni:

  • A0 (pino 5) - sensor de gás amônia MiCS6814
  • A1 (pino 6) - sensor de gás de redução MiCS8614
  • A2 (pino7) - sensor de gás oxidante MiCS6814
  • A3 (pin8) - microfone analógico
  • A4 (pin9) - habilitar MiCS6814
  • D5 (pino 19) - comando de tela de barramento SPI
  • D6 (pin20) - seleção de chip de tela de barramento SPI
  • D9 (pino 21) - luz de fundo (PWM)
  • D10 (pin22) - PMS5003 habilitado
  • D11 (pino 23) - reinicialização PMS5003
  • D12 (pin24) - interrupção LTR-559 (não compatível com a biblioteca CircuitPython)
  • SCK (pino 11) - relógio de barramento SPI
  • MO (pino 12) - escravo de saída mestre de barramento SPI em
  • MI (pino 13) - barramento mestre SPI na saída escrava
  • RX (pino 14) - PMS5003 transmitir (receber por Feather)
  • TX (pino 15) - PMS5003 receber (transmitir do Feather)
  • SCL (pino 18) - relógio I2C
  • SDA (pino 17) - dados I2C

Isso deixa A5, D2 / DFU e D13 livres para uso.

Etapa 6: Consumo de energia

Consumo de energia
Consumo de energia

O consumo de energia está bem dentro da especificação USB, mesmo se uma bateria LiPo estiver conectada e recarregando. O uso é mais relevante para o planejamento de uma mudança para a energia da bateria. Algumas medidas muito aproximadas da corrente são:

  • 100mA ocioso, luz de fundo desligada;
  • Plotter 100mA funcionando, luz de fundo baixa;
  • Plotter 120mA funcionando, luz de fundo alta.

A folha de dados do Plantower PMS5003 afirma que a corrente é inferior a 100mA, isso seria além dos números acima. O uso do conversor DC-DC no Enviro + FeatherWing pode aumentar ligeiramente este número.

A placa Feather nRF52840 Express tem um NeoPixel (LED RGB), mas os níveis de brilho para seu uso padrão como um indicador do estado do programa apenas adicionam uma pequena quantidade ao consumo. A própria placa Feather está abaixo de 10 mA sozinha, a placa FeatherWing é a placa com fome de energia.

Etapa 7: Adicionando o sensor de matéria particular Plantower PMS5003

Adicionando o Sensor de Matéria Particular Plantower PMS5003
Adicionando o Sensor de Matéria Particular Plantower PMS5003
Adicionando o Sensor de Matéria Particular Plantower PMS5003
Adicionando o Sensor de Matéria Particular Plantower PMS5003
Adicionando o Sensor de Matéria Particular Plantower PMS5003
Adicionando o Sensor de Matéria Particular Plantower PMS5003

O Met One Instruments BAM 1020 é uma visão comum em todo o mundo, medindo partículas em cidades. Existe uma gama de dispositivos mais acessíveis e o Enviro + FeatherWing vem com um conector para o sensor de material particulado Plantower PMS5003.

O código da biblioteca Pimoroni para este sensor atualmente parece frágil. Uma melhoria simples e rápida é capturar exceções no programa. O programa plotters_combined.py pode ser melhorado adicionando isto no topo:

import pimoroni_pms5003

E substituindo esta linha no loop while principal

# fazer leituras

pms_reading = pms5003.read ()

com:

# fazer leituras

try: pms_reading = pms5003.read () exceto pimoroni_pms5003. ChecksumMismatchError: print ("erro de checksum")

Etapa 8: indo além

Indo além
Indo além

Há uma série de áreas para explorar quando você tiver o Enviro + FeatherWing funcionando.

  • Adicionando um sensor de temperatura externo. O sensor de temperatura no BME280 está sujeito ao aquecimento interno e ao aquecimento de componentes próximos e destina-se a calibrar os outros sensores do BME280. O valor pode ser processado para fornecer uma medida aproximada da temperatura do ar ambiente, mas há muitas opções externas superiores e acessíveis.
  • Calibrando os sensores. A pressão é fácil usando observações meteorológicas ou previsões de curto prazo (estas serão a 0 ft amsl), o resto é difícil.
  • Corrigindo a saída do PMS5003 para umidade relativa. Uma fórmula é apresentada na página 8 do PDF em EPA: PurpleAir PM2.5 Correção e desempenho dos EUA durante eventos de fumaça 4/2020
  • Adicionando código para transmitir os dados do sensor por Bluetooth Low Energy para outros dispositivos.
  • Investigando como minimizar o consumo de energia. Alguns dos sensores têm linhas de ativação, que podem remover a energia dos sensores ou colocá-los em um modo de baixa energia. Para sensores com um tempo de aquecimento, a amostragem periódica pode não ser prática.
  • Comprar, adaptar ou fazer uma caixa adequada para montagem externa com fluxo de ar interno cuidadosamente projetado e precauções adequadas para luz solar direta. O sensor de gás SensorTech MiCS-6814 funciona melhor com um fluxo de ar constante e de baixa taxa através dele.
  • Examinar como as condições meteorológicas influenciam a poluição ao nível do solo. Dica: as inversões são significativas.
  • Convertendo para energia da bateria ou solar com energia da bateria. A energia solar é mais desafiadora do que simplesmente adicionar um painel solar fotovoltaico, consulte a seção de notas de design em Adafruit Learn: USB, DC & Solar Lipoly Charger.
  • Adicionar outros sensores para medir poluentes comuns como ozônio (O3) e dióxido de enxofre (SO2) ou gases de efeito estufa como dióxido de carbono (CO2). Alguns sensores medem "eCO2" e não são adequados para medir CO2 atmosférico. A Adafruit agora vende o sensor de CO2 Sensirion SCD-30 NDIR de excelente valor em uma placa com conectores STEMMA QT i2c.
  • Se você deseja investigar o envio de dados pela Internet usando Wi-Fi, a placa FeatherS2 com microcontrolador ESP32-S2 parece ser compatível com o Enviro + FeatherWing. Há uma limitação problemática com os conversores analógico para digital (ADC) ESP32-S2 que impede a medição adequada dos sensores de gás. Consulte os Fóruns da Adafruit: comparação Feather ADC incluindo 2.6V limitado ESP32-S2 para obter mais informações.

Projetos relacionados:

  • Adafruit Learn: Comparação e Experimentação com Sensores de Gás Inflamável
  • Adafruit Learn: Sensor de temperatura TMP36

Leitura adicional:

  • Diretrizes de poluição do ar da Organização Mundial da Saúde (OMS)
  • British Lung Foundation - Qualidade do Ar (PM2.5 e NO2)
  • Breathe London - uma rede para complementar a London Air Quality Network com "sensores de qualidade do ar acessíveis, fáceis de instalar e manter para qualquer pessoa", atualmente usando o Clarity Node-S.
  • Índice Mundial de Qualidade do Ar - coleta dados de muitas fontes diferentes com visualizações de mapas e dados históricos.
  • Diário da atmosfera: Poluição do ar interno de fogões residenciais: Examinando a inundação de partículas em casa durante o uso no mundo real - usa a versão Raspberry Pi da placa Enviro +.
  • Legislação: The Air Quality Standards Regulations 2010 (Reino Unido)
  • Pimoroni Blog: a noite mais poluída do ano (no Reino Unido)
  • The Economist: Midnight sky - O aquecimento doméstico a carvão na Polônia cria poluição generalizada (janeiro de 2021)
  • BBC News: O ruído do tráfego prejudica as habilidades dos pássaros canoros (poluição sonora)
  • Bugs de software em uma biblioteca de sensor de matéria particulada - uma olhada no cuidado necessário para analisar de forma robusta o protocolo serial PMS5003.