Já pensou em monitorar a qualidade do ar dentro ou fora de sua casa: onde você mora e trabalha? Este projeto, batizado de
balenaSense , é uma unidade para
medir temperatura, umidade, pressão barométrica e qualidade do ar, além de um painel que você pode acessar de qualquer lugar para ver estatísticas resumidas e acompanhar tendências.

Conteúdo
1. Introdução
Para controlar a qualidade do ar e da estação meteorológica, são necessários muitos fios e vários sensores, mas a situação ficou mais fácil após o aparecimento de sensores que combinam todas as leituras em uma boa prancha pequena, o que é fácil de começar.

Considere monitorar a temperatura, a umidade, a pressão barométrica e a qualidade do ar usando um sensor all-in-one que se conecta diretamente ao Raspberry Pi sem componentes adicionais. Você não precisa ter nenhuma experiência em eletrônica, mas um ferro de solda seria bem-vindo (embora também seja opcional). Este projeto implementa um banco de dados para armazenar leituras históricas, juntamente com uma interface gráfica para visualizar as leituras atuais e ver imediatamente as tendências.


Equipamento necessário
Aqui está o que você precisa comprar para este projeto. Dependendo se você deseja usar um ferro de soldar ou não, escolhemos uma placa sensora: alguns funcionam imediatamente, outros requerem um pouco de solda.

Eu não quero soldar
Se você não deseja soldar, precisará de:
Eu quero soldar - me dê!
Se você estiver feliz em pegar um ferro de soldar, precisará de:
Outros sensores
Se você já possui algum tipo de sensor, este projeto oferece suporte ao
Sense HAT com um bônus adicional: um smiley na matriz de LEDs (dependendo da qualidade do ar, é claro)!

O Bosch BME680 com riser pode ser adquirido de diferentes fornecedores a preços diferentes.
Nota No artigo, usamos o Pimoroni: esta placa possui a vantagem adicional de que os contatos são quebrados na ordem correta para o Raspberry Pi GPIO. Ao usar outras placas, verifique se os pinos de alimentação, terra e I2C do barramento (SDA e SCL) correspondem, conforme explicado mais adiante neste manual.
De software
Abrimos o projeto
balena-sense no GitHub, que contém todo o software, configuração e código que você precisa para um sistema em funcionamento. Vamos implantar este projeto em uma conta gratuita do
balenaCloud para distribuir todo o software para o Raspberry Pi, além de fornecer acesso remoto. Portanto, você precisará de:
Montagem de equipamentos
Há pouco trabalho na frente de hardware deste projeto. Nosso objetivo é conectar a placa do sensor ao pino GPIO no Raspberry Pi.
O BME680 se comunica com o Raspberry Pi por um barramento chamado I2C (que é o quadrado do olho), que é um barramento serial de dois fios. Esses dois fios são chamados de linha de sincronização (SCK) e linha de dados (SDA). Além dos dois fios, é necessário fornecer energia ao sensor (3,3V ou 3V3) e aterrá-lo.
Se você escolheu a opção sem soldar da Pimoroni ou Sparkfun ou usando o Sense HAT, basta conectar os novos componentes brilhantes ao Raspberry Pi e todas as conexões serão feitas para você: prossiga para a próxima etapa!
Se você decidir conectar o sensor diretamente ao Raspberry Pi usando Pimoroni ou outro riser, o principal é garantir a conexão correta dos contatos descritos acima (SDA, SCK, 3V3 e GND).
Um site útil para trabalhar com o GPIO no Raspberry Pi é o
pinout.xyz ; mostra claramente que precisamos dos pinos 1 (potência 3V3), 3 (SDA), 5 (SCL) e 9 (terra). Um GPIO de 40 pinos é padrão no Pi 2 e posterior. Se você usa uma placa Pimoroni, os contatos estão na ordem correta para conectar as placas. Observe como a inscrição no quadro corresponde ao diagrama de pinagem acima.

Mas se você conectar o sensor dessa maneira, o calor do processador Raspberry Pi afetará as leituras. Para coletar leituras mais precisas, é necessário remover o sensor da placa: faça-o
com os cabos DuPont de mãe para mãe (ou
Jumper Jerky ), conforme mostrado abaixo:

Da mesma forma, se você usar outro sensor, onde os diagramas de pinagem não coincidem exatamente, poderá conectar essas placas ao Pi usando o mesmo método. O principal é garantir a conformidade com 3V3, SDA, SCL e GND. Se a placa tiver contatos para SDI, SDO, CS - você poderá ignorá-los, porque eles são usados para uma interface SPI alternativa, que não usamos neste projeto.
Nas fotos acima, temos o Raspberry Pi 3A +, mas o Pi Zero também é adequado como uma solução mais barata.
Configurar Raspberry Pi
Vamos fazer o flash do cartão SD com o sistema operacional balenaOS, conectar-se à nuvem balenaCloud, adicionar nosso dispositivo e configurar o projeto para que ele possa ser facilmente atualizado mais tarde.
Primeiro, você precisa configurar uma conta balenaCloud. Isso significa registrar, adicionar um aplicativo e adicionar um dispositivo.
Etapa 1. Inscreva-se no balenaCloud
Se você já possui uma conta do GitHub ou do Google, pode usá-lo para efetuar login sem passar pelo processo de
registro .
Etapa 2. Criando o Aplicativo
Adicione o aplicativo selecionando o tipo de dispositivo correto e
Starter
como o tipo de aplicativo e clique em
Create New Application
. Este tipo suporta todos os microsserviços e é gratuito até dez dispositivos.
Em seguida, você será levado ao painel do aplicativo recém-criado, onde poderá ir para a próxima etapa e adicionar o dispositivo. Você pode atribuir um nome arbitrário ao aplicativo, mas será necessário mais tarde neste manual quando escrevermos o código.
Etapa 3. Adicione o dispositivo e inicialize o sistema operacional
Após criar o aplicativo, você pode adicionar um dispositivo a ele clicando no botão verde
Adicionar dispositivo . Ao adicionar um dispositivo, especifique o tipo de dispositivo correto. Se você estiver se conectando a uma rede sem fio, poderá definir seu WiFI SSID e senha.
Nota: Raspberry Pi 3 é indicado na animação, não se esqueça de selecionar o tipo correto de seu dispositivo!

Esse processo cria uma imagem personalizada para o aplicativo e o tipo de dispositivo, que inclui configurações de rede, se especificado.
Nota: para iniciantes, é melhor escolher uma imagem de desenvolvimento para realizar alguns testes e solucionar problemas. Para mais informações sobre as diferenças entre imagens de desenvolvimento e produção, consulte
aqui . Se você tem certeza de que pode começar a implantar uma imagem de produção agora - por favor.
Etapa 4. Grave o cartão SD e o dispositivo de inicialização
Quando a imagem do sistema operacional é carregada, é hora de piscar o cartão SD. Você pode usar o
balenaEtcher para isso.

Após a conclusão do processo, insira o cartão SD no Raspberry Pi e conecte a fonte de alimentação.

Quando o dispositivo inicializa pela primeira vez, ele se conecta ao painel balenaCloud, após o qual você pode vê-lo na lista on-line e seguir para a próxima etapa.
Solução de problemas: o dispositivo deve aparecer no painel em alguns minutos. Se não aparecer, algo deu errado. A documentação possui um extenso
guia de solução de problemas com muitas informações sobre por que isso pode acontecer. Se a documentação não ajudou, entre em contato com os
fóruns .
Implantação de software
Quando o seu Raspberry Pi estiver preparado, baixado e conectado ao balenaCloud, você estará pronto para instalar o código do aplicativo no dispositivo.
Instale as ferramentas da CLI balena em uma estação de trabalho
O BalenaCloud permite transferir remotamente o software / código do aplicativo para o Raspberry Pi e outros dispositivos. Para tornar isso possível, sua estação de trabalho (não o Raspberry Pi) deve atender a alguns requisitos mínimos de software.
Nota: Para implantar com sucesso este projeto, você não precisa executar nenhum comando no próprio dispositivo, por meio do SSH ou do painel balenaCloud. Tudo é feito remotamente!
Se você já possui (ou pode configurar)
npm no seu computador, essa é a maneira mais rápida de executar as ferramentas da CLI. Também existem
binários para Windows, macOS e Linux .
Nota: se você já instalou essas ferramentas para nossos outros projetos, poderá pular esta parte e ir diretamente para a próxima etapa.
A documentação para as ferramentas da CLI descreve a instalação e configuração do pacote npm, além dos binários.
Quando a CLI está instalada e em execução, a primeira etapa é efetuar login no balenaCloud executando o comando
balena login
:


Quando houver uma CLI em funcionamento registrada na conta, você estará pronto para instalar programas no Raspberry Pi.
Baixando um projeto no GitHub
O próximo passo é
baixar o código para este projeto no GitHub .
O botão azul carregará o arquivo zip do projeto, mas se você já estiver familiarizado com o Git, poderá usar o
git clone
maneira usual.
Instale no Raspberry Pi
Como a CLI e o código mais recente estão instalados, você pode executar esse código no balenaCloud com um comando. Lá, a imagem do Docker é coletada e configurada, que será executada no seu dispositivo.
No diretório do projeto após descompactá-lo, execute o
balena push <appName>
, em que appName é o nome do aplicativo especificado no início do manual. Por exemplo,
balena push balenaSense
.
Se tudo for feito corretamente, após alguns minutos, a tela de informações do seu dispositivo no painel de controle deverá mostrar os serviços em execução, um para cada componente do software, algo como isto:

Na primeira vez que o download pode demorar alguns minutos (dependendo da velocidade da sua conexão com a Internet), mas somente as alterações no contêiner são baixadas, para que tudo aconteça muito mais rápido.
Nota: quando o aplicativo é iniciado pela primeira vez (e você usa o BME680, não o Sense HAT), o sensor executa um 'burn-in' por cerca de cinco minutos. Durante esse período, as leituras
não serão feitas e inseridas no banco de dados. O aplicativo registrará a contagem regressiva, exibida no painel balenaCloud:

Quando a contagem chegar a zero, você verá a mensagem 'Loop inicial ...'. Depois disso, as leituras serão realizadas e inseridas no banco de dados a cada 10 segundos.
Ver painel
Espero que você tenha atualizado o dispositivo, conectado à rede e iniciado sem problemas. Um dos grandes benefícios do uso de uma conta balenaCloud gratuita é o recurso de
Public Device URL
.

Ative essa opção e clique no ícone de seta azul para acessar o painel. Você pode compartilhar este link ou adicioná-lo aos favoritos no seu telefone ou outro dispositivo. Enquanto o dispositivo balenaSense está conectado e funcionando, você pode ver o painel de qualquer lugar!

Se você não deseja ativar o acesso público, ainda pode visualizar o painel da sua rede local por endereço IP, como pode ser visto na captura de tela acima. O seu será diferente, mas basta digitar
http://<ip->
no navegador e você ainda terá acesso ao painel se estiver na mesma rede que o dispositivo. Por exemplo, para acessar meu dispositivo,
http://10.1.231.36
.
Se você deseja fazer login no Grafana e brincar com as configurações, as credenciais padrão são
admin
e
admin
.
Como isso funciona?
Este projeto possui três componentes principais, três serviços. Esses nomes estão no painel balenaCloud:
- InfluxDB - um banco de dados usado para armazenar leituras de sensores
- Sensor - biblioteca e código Python para acessar o sensor, fazer leituras e salvá-las no banco de dados
- Grafana - usado para criar um painel com gráficos e relatórios
O sensor BME680 da Bosch detecta temperatura, umidade, pressão e resistência a gases. Os sensores de temperatura, umidade e pressão funcionam imediatamente, mas as leituras de resistência de gás por si só não são muito úteis. Estes são indicadores de mudanças na composição do ar. Quando o sensor inicia, ele define a base e monitora as alterações. Os indicadores indicativos da qualidade do ar são dados em porcentagem e levam em consideração a influência da umidade e da resistência do gás.
Se você usar o Sense HAT, onde não há sensor de resistência ao gás, aproximamos as leituras da qualidade do ar com base nos valores de temperatura e umidade desejados.
O que vem a seguir?
Espero que agora você tenha lançado completamente o projeto, tenha acesso ao painel, tenha leituras e tenha começado a preencher seu banco de dados. Mencione algumas coisas mais importantes.
Alterar senha
Se você abrir o dispositivo para acesso público, é recomendável alterar a senha do Grafana.

Configuramos o sistema com o nome de usuário e a senha padrão
admin
admin
. Para alterá-los, faça login no Grafana usando o botão no canto inferior esquerdo do painel. Você será solicitado a alterar a senha na primeira vez que efetuar login.
Personalização
O programa Grafana para o painel e os relatórios possui muitos parâmetros de configuração. Criamos um painel básico que mostra um gráfico e gráfico para cada uma das quatro opções de medição.

Você pode personalizar cada painel do Grafana passando o mouse sobre o título e passando para a edição. Eu recomendo brincar com as configurações - as alterações no painel não são salvas automaticamente; portanto, se você cometer um erro, basta recarregar a página e tudo voltará à sua forma original. Se você deseja salvar as alterações, clique em
Salvar na parte superior do painel de controle e todas as configurações serão salvas no seu dispositivo.

Você também pode configurar os sensores. Por exemplo, no diagrama do manômetro, configuramos vários intervalos básicos e valores de texto em vez de números. Tudo isso muda ao seu gosto!
Habitação
Esses sensores são ideais para serem colocados em uma
cabine meteorológica , que protege os sensores da luz solar e do calor irradiado. Se você controla o ambiente na sala, isso não é tão importante, mas se o sensor estiver instalado ao ar livre, seu posicionamento e proteção são importantes para obter leituras precisas.
Cabines de previsão do tempo
estão à venda , mas podem ser bastante caras, portanto, considere as
opções de bricolage .
O Thingiverse possui vários
edifícios e
cabines climáticas do BME680 .
Últimos pensamentos
Obrigado pela leitura! Se você decidir construir sua própria estação meteorológica com controle de qualidade do ar - conte-nos como tudo correu, que problemas surgiram. Idéias para o desenvolvimento do nosso projeto podem ser expressas
nos fóruns .