Índice:

AirPi - Sensor de qualidade do ar: 8 etapas
AirPi - Sensor de qualidade do ar: 8 etapas

Vídeo: AirPi - Sensor de qualidade do ar: 8 etapas

Vídeo: AirPi - Sensor de qualidade do ar: 8 etapas
Vídeo: POR QUE o AI PIN parece que já deu ERRADO e que NÃO É tudo isso? 2024, Novembro
Anonim
AirPi - Sensor de qualidade do ar
AirPi - Sensor de qualidade do ar

Você já se perguntou por que está ficando com dor de cabeça? E se isso for devido à má qualidade do ar? Com este dispositivo você pode verificar se é esse o caso. Este dispositivo mede o valor de CO2, valor de TVOC, temperatura e umidade. Você pode ver a qualidade do ar ao vivo no display LCD e ver uma indicação clara se está ficando perigoso. Desta forma, você pode abrir suas janelas a tempo.

Se você inserir o endereço IP - mostrado quando você inicializa o dispositivo em seu navegador - o site será aberto. Você pode ver muitas informações sobre o ambiente interno, juntamente com gráficos dos últimos minutos / horas. Há também uma indicação ao vivo e algumas informações e dicas no painel.

Este projeto foi realizado por um aluno da Howest Kortrijk, NMCT (New Media and Communication Technology).

Etapa 1: Materiais

Materiais
Materiais

Isso é tudo que comprei para criar este projeto. Este é um projeto relativamente barato, dependendo do custo da impressão 3D. Se você puder imprimi-lo na escola, pode sair muito barato. Caso contrário, depende de onde você o imprime e do material em que o imprime. Você notará que comprei muito a granel, simplesmente porque é difícil encontrar resistores individuais ou leds e isso torna ainda mais barato. Se tiver tempo, você pode pedir a maioria dos itens no aliexpress.com, a entrega pode demorar um pouco, mas dessa forma você pode limitar suas despesas.

Sem a impressão, o dinheiro que gastei neste projeto foi de € 81,80.

Estes são os materiais de que você precisa:

O circuito:

  • Raspberry Pi 3
  • Cartão SD de 8 GB (mínimo)
  • Sensor de qualidade do ar CCS811
  • Sensor de temperatura e umidade DHT22
  • Potenciômetro (contraste LCD)
  • LCD 16x2
  • Fios de ligação fêmea para fêmea
  • LED verde e vermelho
  • Resistores (2x470ohm e 1 4700ohm)

Caso:

  • Impressão 3D
  • Parafusos
  • Cola de 2 componentes (ou outra cola quente)
  • ferramenta de corte de rosca

Apenas se você estiver usando um PCB:

  • Ferro de solda
  • Fluxo (torna mais fácil)
  • Lata
  • Experiência pcb 2x4cm

Etapa 2: conexões

Conexões
Conexões

Conecte os fios como acima. Você pode ver um circuito elétrico no arquivo fritzing. Não é um circuito muito complicado, mas se você quiser torná-lo o mais pequeno possível, você definitivamente deseja obter uma placa PCB experimental. A fiação seria a mesma, exceto que o GND e Vin serão conectados à placa PCB. Os sensores serão conectados por fios de jumper fêmeas ou machos com solda. Não se esqueça de soldar o resistor no sensor DHT22.

Também recomendo usar cabos curtos, 10cm deve servir. Caso contrário, a caixa ficaria ainda mais cheia de cabos. Você não precisa de muito longos, pois o tamanho da impressão é o menor possível.

Etapa 3: impressão 3D

Impressão 3D
Impressão 3D
Impressão 3D
Impressão 3D

A primeira coisa que me veio à cabeça quando estava pensando em um caso foi uma impressão 3D. Já que meu pai imprimiu vários outros itens e ele mesmo os projetou. Juntos, criamos este design e pensamos em todos os aspectos. Deve estar bem resfriado, tudo pode ser aparafusado no lugar e se não, pode ser colocado no lugar.

Até desenhamos todos os componentes para verificar se tudo se encaixa. O arquivo está disponível para todos e adoraríamos ouvir alguns comentários. Ficamos muito satisfeitos com o resultado.

Etapa 4: Código

O código deste projeto pode ser encontrado no Github. Se você usou outros pinos (por exemplo, outro pino GPIO para os LEDs, você terá que ajustar essas variáveis. Haverá dois scripts Python em execução, web.py para o site e sensor.py para ler os sensores e atualizar o banco de dados. Estaremos importando a classe LCD do lcd.py.

Com um raspberry pi configurado, você pode começar. Em primeiro lugar, você precisará atualizar e atualizar todos os pacotes:

sudo apt-get update && sudo apt-get upgrade

Depois disso, você precisará instalar os seguintes pacotes:

sudo apt install -y python3-venv python3-pip python3-mysqldb mariadb-server uwsgi nginx uwsgi-plugin-python3

Agora crie um ambiente virtual:

me @ my-rpi: ~ $ python3 -m pip install - atualizar pip setuptools wheel virtualenv

me @ my-rpi: ~ $ mkdir project1 && cd project1 me @ my-rpi: ~ / project1 $ python3 -m venv --system-site-packages env me @ my-rpi: ~ / project1 $ source env / bin / activate (env) me @ my-rpi: ~ / project1 $ python -m pip install mysql-connector-python argon2-cffi Flask Flask-HTTPAuth Flask-MySQL mysql-connector-python passlib

Feito isso, você pode clonar o código do meu GitHub em seu ambiente virtual. Isso pode ser feito de várias maneiras.

No diretório conf você pode encontrar quatro arquivos que você terá que ajustar se necessário. Definitivamente, você terá que alterar o usuário e o diretório de origem em cada arquivo. O uWSGI ini deve funcionar, desde que você não altere meu código, certifique-se de alterar o usuário e o virtualenv se necessário.

Como o sensor CCS811 foi usado intencionalmente para o arduino, ele não pode se comunicar pelo barramento i2c na velocidade do raspberry pi. Você terá que reduzir a velocidade para uma taxa de transmissão de 10000 (eu usei 9600) no arquivo de configuração.

Você também terá que obter a biblioteca do sensor adafruit. Eu poderia explicar isso aqui, mas há um guia adafruit perfeito que explica tudo isso muito bem.

Como queremos que os scripts Python sejam executados automaticamente quando o raspberry estiver conectado, você terá que usar os serviços. Eles ficarão bem se você mantiver meu código. Tudo o que você precisa fazer para que eles sejam executados é habilitá-los. Antes de fazer isso, há uma última coisa.

Como estamos usando um servidor da web nginx, teremos que desativar o padrão e substituí-lo por nossa própria configuração. Para fazer isso, estas etapas devem ser seguidas:

  • copie conf / nginx para * sites disponíveis *
  • Remova o link para a configuração padrão
  • Adicione um link para a nova configuração
  • Reinicie o nginx para salvar as alterações

me @ my-rpi: ~ / project1 $ sudo cp conf / project1 - *. service / etc / systemd / system /

me @ my-rpi: ~ / project1 $ sudo systemctl daemon-reload me @ my-rpi: ~ / project1 $ sudo systemctl start project1- * me @ my-rpi: ~ / project1 $ sudo systemctl status project1- *

Nginx e mysql devem estar em execução o tempo todo. Eles começam junto com o pi de framboesa. O script da web e o script do sensor ainda não.

Para fazer isso, você ainda precisa habilitar esses dois serviços com estes comandos:

sudo systemctl enable project1-flask.service

sudo systemctl enable project1-sensor.service

Etapa 5: Banco de dados

Base de dados
Base de dados

Meu banco de dados consiste em três tabelas. O usuário não tem relação com outras tabelas. Isso é usado apenas para fazer login e conceder acesso ao site. Quando o dispositivo é ligado, o valor de CO2 e o valor de TVOC serão gravados no banco de dados a cada 50 segundos. A temperatura e a umidade a cada 5 minutos. Dessa forma, temos uma visão clara do passado.

O arquivo SQL pode ser encontrado aqui, mas para obter o banco de dados do raspberry pi, você deve seguir estes passos:

Após a instalação dos pacotes na etapa anterior, mariadb / mysql deve ser executado imediatamente. Você pode verificar isso com esta linha:

me @ my-rpi: ~ $ sudo systemctl status mysql

Para criar o banco de dados e os usuários, você pode simplesmente executar os scripts sql no código do GitHub. Se você fez isso corretamente, deverá ver suas tabelas usando este comando:

me @ my-rpi: ~ $ echo 'show tables;' | mysql project1 -t -u project1-admin -p

Agora que está tudo pronto, você pode testar isso sem o caso para ter certeza de que tudo funciona. A menos que você esteja conectado a um wi-fi, será necessário conectá-lo com um cabo Ethernet e executá-lo manualmente.

Etapa 6: conectar ao Wi-Fi

Abra o arquivo de configuração wpa-supplicant no nano (realmente não importa, apenas certifique-se de trabalhar com o editor de texto).

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Vá para a parte inferior do arquivo e adicione o seguinte (substitua o nome SSID e o nome da senha pelos seus):

rede = {

ssid = "nome-ssid" psk = "nome-senha"}

Para criar uma senha criptografada, você pode usar wpa_passphrase e simplesmente copiá-la para wpa_supplicant.conf psk para tornar as coisas mais seguras.

wpa_passphrase "nome-ssid" "nome-senha"

Se você quiser que ele se conecte a esta rede Wi-Fi automaticamente e houver outras no arquivo de configuração, certifique-se de alterar a prioridade para um nível mais alto, adicionando esta linha à rede no arquivo de configuração:

prioridade = 2

Não se esqueça de reconfigurar a interface com:

wpa_cli -i wlan0 reconfigurar

Agora você está pronto e conectado a uma rede wi-fi.

Etapa 7: juntando tudo

Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo
Juntando tudo

Como tudo está conectado e soldado, podemos chegar ao caso. Isso foi projetado para que você pudesse abrir o gabinete sem fios soltos. Isso significa que tudo está preso na parte inferior. A primeira coisa a fazer é um pequeno ajuste à framboesa. Tem buracos em todos os cantos, mas não são tão grandes quanto deveriam ser. O diâmetro deve ser suficiente para encaixar um parafuso de 3mm no interior. Tivemos que polir os orifícios para que fiquem um pouco mais largos.

A segunda coisa a fazer é cortar uma rosca de parafuso em cada orifício. Isso pode parecer difícil, mas pode ser feito facilmente com as ferramentas certas. Eu recomendo fazer isso em uma loja de ferragens local, basta pedir uma ferramenta de corte de linha. Como meu pai é ourives, ele tinha as ferramentas para fazer isso no trabalho. Posso carregar um novo arquivo stl para que seja impresso mais tarde, mas isso precisaria de uma impressora muito precisa.

O terceiro passo é aparafusar o pi na parte inferior. Você precisará de 4 parafusos longos de 7 mm com um diâmetro de 3 mm. Depois disso, você pode enfiar a placa PCD no local fornecido na parte superior da parte inferior. O sensor CCS811 pode ser colocado no local fornecido no lado esquerdo e o DHT11 pode ser fixado na placa direita. Ambos são isolados e bem ventilados, mas depois notamos que ainda estava esquentando por dentro. Mais sobre isso mais tarde.

Em seguida, você precisa conectar os LEDs ao tubo. Fizemos isso com cola de 2 componentes, mas você pode fazer como quiser. Certifique-se de que eles grudam ali.

Agora você pode conectar o display LCD, você precisará de parafusos com o mesmo diâmetro dos anteriores, mas um pouco mais longos. Os meus tinham 1cm. Se os quatro parafusos estiverem aparafusados, resta apenas uma coisa a fazer. Anexe a parte superior. São necessários quatro parafusos, do mesmo diâmetro e de 2cm. Agora tudo deve estar no lugar e você pode iniciá-lo.

Etapa 8: inicie

O processo de inicialização deste projeto é muito fácil:

  1. Conecte o cabo de alimentação no lado esquerdo da caixa. Não é muito visível, mas você pode ver pelas aberturas. Se você conseguiu uma vez, não será um problema novamente.
  2. Dê algum tempo para iniciar.
  3. O endereço IP aparecerá no visor por dez segundos. A única coisa que você precisa fazer é certificar-se de que está conectado à mesma rede e inserir o endereço IP na barra de endereços do seu navegador.
  4. Agora você está no site. Você ainda não tem uma conta, então crie uma.
  5. Se você está registrado, faça o login.
  6. Feito! Você pode ver todos os dados na página da web e o display LCD mostra a qualidade do ar atual.

Como o calor aumenta, localizamos os sensores na parte inferior do gabinete. Desta forma a temperatura não teria um grande impacto nos valores registrados. Portanto, para obter medições ideais, coloque o dispositivo em pé ou simplesmente pendure-o na parede.

Recomendado: