Índice:
- Suprimentos
- Etapa 1: configuração do Raspberry Pi
- Etapa 2: Fazendo uma conexão e conectando a Rpi sem fio à sua rede local
- Etapa 3: Sensor DS18B20 (temperatura) - 1 fio
- Etapa 4: MCP3008 - Detecção Analógica
- Etapa 5: Hardware
- Etapa 6: Criando uma base de dados Mariadb
- Etapa 7: código e teste do Github
- Etapa 8: execute o código na inicialização
- Etapa 9: configurar o site
- Etapa 10: Opcional - Protótipo em miniatura
Vídeo: TheAir - Projeto Sensor de Gás: 10 Passos
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Monóxido de carbono e dióxido de carbono, também conhecido como CO e CO2. Gases que são incolores, inodoros, insípidos e francamente perigosos quando em altas concentrações em uma sala fechada. Se você está morando, por exemplo, em um quarto de estudante que está mal isolado, sem fluxo de ar bom e por algum motivo, a torradeira faz um barulho estranho ao fazer torradas. Aí você pode entrar em contato com esses gases e quando isso acontecer, esperemos que só termine com uma pequena dor de cabeça, pois em alta concentração pode incapacitar ou até matar (embora muito raramente).
Então decidi inventar este projeto. Minha ideia é simples, use ventiladores para fazer um fluxo de ar. Bom ar que entra e mau ar que sai, por assim dizer. Para utilidade extra, adicionei um sensor de temperatura extra, botão para ventiladores de ativação manual e também um site para quem gosta de ver estatísticas e / ou ativar ventiladores de seu computador.
Como aluno, pai, solteiro ou ser vivo. Isso é algo que você normalmente gostaria de evitar ao morar no conforto da sua própria casa. Isso ajuda quem gosta de tornar sua vida um pouco mais fácil.
Suprimentos
- Raspberry Pi 3+
- Carregador mini-usb 5V / 2,5A
- Cartão micro-sd
-
Sensores
- MQ-7 (CO)
- MQ-135 (CO2)
- DS18B20 (temperatura)
- 2 x ventilador 12V DC
- 2 transistores 2n2222
- Visor LCD 16 * 2
- Botão de apertar
- MCP3008
- Conversor de nível logi
- Cabo Ethernet (por motivos de configuração)
Etapa 1: configuração do Raspberry Pi
Antes de trabalhar com o Rpi, precisaremos de algum software.
- WinSCP ou FilleZilla (opcional se você deseja transferir arquivos do seu computador para o Rpi)
- Disco Win32 ou Etcher (que você prefere mais)
- Putty ou MobaXterm (o que você prefere mais)
- Imagem Raspbian com desktop
Antes de começar, gostaria de mencionar que, ao fazer este tutorial, quando escolho um programa em vez de outro, NÃO significa que eu o recomende. Por exemplo, gosto de usar o etcher porque é mais amigável, mas o Win32 tem a opção de fazer backups. Agora isso está fora do meu sistema, vamos começar.
Se você já tem um Rpi conectado à sua rede wi-fi, pule para a etapa 3.
Primeiro, vamos usar o Etcher para colocar a imagem Raspbian em seu cartão SD. Agora, antes de retirar o cartão SD, vamos alterar algumas "coisas" no arquivo cmdline.txt, que pode ser encontrado na imagem. Abra o arquivo.txt -> Adicione esta linha "ip = 169.254.10.1" (sem aspas) no final da linha (tudo em 1 linha) -> Salvar arquivo
Em segundo lugar, crie uma pasta vazia chamada "ssh" na partição de inicialização (sem as aspas).
Depois disso, você pode ejetar o Microsd com segurança e colocá-lo no Rpi.
O motivo do IP estático codificado é para facilitar a conexão com o Rpi. Se por algum motivo o Rpi não tiver ip com DHCP então você usa facilmente o ip estático.
Etapa 2: Fazendo uma conexão e conectando a Rpi sem fio à sua rede local
Vamos inicializar o Rpi -> conecte o cabo ethernet entre o computador e o Rpi.
-
Inicie o Putty e preencha:
- Nome do host (ou endereço IP): 169.254.10.1
- Porta: 22
-
Um terminal aparece e você digita o nome de usuário e a senha padrão:
- Nome de usuário: pi
- Senha: framboesa
Agora que estamos conectados localmente ao rpi, queremos que o Rpi tenha uma conexão ao seu wi-fi.
- Extra: digite "sudo raspi-config"
- Aqui você precisará alterar a senha do usuário pi (razões de segurança)
- Em seguida, vá para Opções de localização -> Alterar horário (escolha o correto) -> Em seguida, vá para País Wifi -> escolha o país.
- Feche o raspi-config e reinicie.
- Quando logado, temporariamente torne-se usuário root -> sudo -i
-
Escreva este comando para adicionar sua rede à Rpi (lista de códigos abaixo)
- senha = "senha" (entre aspas)
- Rede de nome = "SSID"
- Lembre-se de usar duplo >>! Importante!
echo "senha" | wpa_passphrase "SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Agora reinicie novamente
Ao reconectar, verifique seu ip digitando:
ifconfig
e verifique wlan0, próximo ao inet.
Agora que temos conexão com a internet, vamos fazer uma atualização "rápida".
atualização do apt sudo
sudo apt dist-upgrade -y
Isso pode levar algum tempo.
Etapa 3: Sensor DS18B20 (temperatura) - 1 fio
Em cada projeto, sempre haverá algo especial que precisa ser feito ou então não funcionará.
Desta vez, temos com o sensor de temperatura DS18B20 que requer 1 fio que não vou explicar por que, mas vou explicar como fazer funcionar, pelo menos.
Para isso, temos que voltar ao raspi-config no Rpi, a bela tela azul.
- Vá para as opções de interface
- Escolha 1-Wire e escolha habilitar.
Feito…
Estou brincando.
Agora precisaremos ajustar /boot/config.txt
sudo nano /boot/config.txt
Adicione esta linha na parte inferior.
# Habilitar onewire
dtoverlay = w1-gpio
Agora sudo reinicie essa coisa e pronto.
Para verificar se funciona, conecte o sensor ao Rpi e, em seguida, volte ao terminal e digite este código (consulte a próxima etapa de Hardware para saber como conectar o sensor de temperatura).
cd / sys / bus / w1 / devices / w1_bus_master1
ls
Você deve ver algo com números e letras em azul escuro no canto superior esquerdo, certifique-se de escrever esta informação para mais tarde, quando estivermos trabalhando com o código do github.
Se por algum motivo não funcionar, verifique este link que vai mais fundo nele.
Etapa 4: MCP3008 - Detecção Analógica
Como fizemos uma alteração no sensor de temperatura, também precisamos fazer algumas alterações nos outros sensores, já que precisamos ler os dados analógicos. É aqui que o MCP3008 é útil, também precisamos alterar a interface SPI.
sudo raspi-config
Vá para Opções de interface -> Selecionar SPI -> ativar.
Então termine.
Etapa 5: Hardware
Não terminamos totalmente com o Rpi, mas o suficiente para que possamos começar a construir e montar o hardware.
Um conselho é verificar minuciosamente suas conexões ao construir para ter certeza de não … explodir o Rpi.
Além disso, no esquema, você notará que alguns componentes estão nele apenas uma vez, embora estejamos trabalhando com mais de 1 do mesmo componente. Significa apenas que você deve repetir o mesmo processo de construção daquele componente. Há uma pequena exceção, os sensores mq-x não precisam de um conversor de nível extra ou MCP3008. Basta adicionar um cabo verde extra (em pdf) ao conversor de nível e MCP3008.
Edição extra: Os ventiladores precisam usar um transistor como interruptor. Eu uso um transistor 2n2222A para 1 ventoinha, porque 2 ventoinhas podem ser uma carga muito pesada.
Se você tiver um transistor que pode lidar com uma corrente maior do que boa, pule a última parte desta etapa.
Se você não tiver um como eu, você precisará fazer assim, 1 ventoinha = 1 transistor, 2 ventoinhas = 2 transistores e assim por diante (cada ventoinha é seu próprio transistor + diodo como no pdf).
Você também precisará adicionar algum código a app.py em backend_project posteriormente na Etapa 7: código Git….
Etapa 6: Criando uma base de dados Mariadb
Como o título indica, vamos criar um banco de dados para que possamos armazenar nossos dados de sensor.
Em primeiro lugar, baixe o Mariadb no Rpi.
sudo apt-get install servidor mariadb
Após a instalação, vamos usá-lo.
mysql -u root
A senha está em branco, então nada para digitar. Pressione Enter.
Vamos criar um usuário agora.
CRIAR USUÁRIO 'user' @ '%' IDENTIFICADO POR 'userdb';
GRANT ALL PRIVILEGES ON *. * TO 'user' @ '%' WITH GRANT OPTION;
PRIVILÉGIOS DE FLUSH;
Pressione Ctrl + C para sair e reiniciar rapidamente o serviço:
sudo service mysql restart
Login com nome de usuário: usuário e senha: userdb:
mysql -u user -p
É hora de criar o banco de dados agora.
CREATE DATABASE project_db DEFAULT CHARACTER SET utf8;
USE project_db
Crie uma tabela "historiek" (significa história).
CRIAR TABELA SE NÃO EXISTIR `historiek` (` id` INT NOT NULL AUTO_INCREMENT, `sensorID` VARCHAR (5) NOT NULL,` datum` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `waarde` FLOAT (4) NULL DEFAULT 0, PRIMARY KEY (` id`)) ENGINE = InnoDB;
E pronto, o banco de dados está feito.
Etapa 7: código e teste do Github
Estamos chegando ao fim do nosso projeto.
Antes de obter o código, precisaremos importar alguns módulos para o Rpi:
pip3 instalar Flask_MySQL
pip3 instalar flask-socketio
pip3 install -U flask-cors
pip3 install spidev
Agora precisamos do código para fazer funcionar, digite no terminal:
git clone
Verifique se a pasta está lá com:
ls
Agora você precisará de 2 terminais, por isso é útil clicar com o botão direito do mouse no terminal e clicar em Duplicar sessões:
Vá para backend_project e temperatura usando o comando cd.
Agora, antes de iniciarmos os programas para fins de teste. Você ainda se lembra da Etapa 3 com o sensor de 1 fio, onde você precisa anotar alguns números? Não se preocupe, basta dar uma olhada rápida na etapa 3 novamente.
Vamos adicionar esses números ao código porque ele precisará saber o sensor correto ao usá-lo.
O terminal com a pasta de temperatura, você encontrará app.py. Vamos abri-lo.
sudo nano app.py
Procure a função chamada "def temperatuur ():", aí você terá que substituir o "**" pelos números que você anotou. No meu caso, eu pegaria esta linha de código (cada número é único).
sensor_file_name = '/ sys / devices / w1_bus_master1 / 28-0316a4be59ff / w1_slave
Tempo de teste. Ambos os terminais em backend_project e na pasta de temperatura, digite:
python3 app.py
Agora lembre-se da etapa 5: hardware onde você precisa adicionar código se estiver usando vários ventiladores e transistores?
Ótimo, se não, volte para a etapa 5.
Agora precisamos adicionar o código conforme mencionei a app.py em backend_project. Para facilitar, fiz um exemplo disso no código. Cada linha de código de comentário que tem "fan1", descomente essas linhas e voila, agora você pode usar 2 fãs.
Se você quiser usar mais do que apenas 2 ventiladores, copie e cole o mesmo código abaixo dele, mas com um número diferente. A desvantagem disso é mais trabalho pessoal para você e menos gpio.pins disponíveis. Que eu saiba, não há vantagens nisso.
Etapa 8: execute o código na inicialização
Queremos que esses 2 scripts python sejam executados no momento em que nosso Rpi for inicializado e, no caso de um script travar, ele deve reiniciar sozinho. Para fazer isso, vamos fazer 2 serviços.
Para fazer isso, digite:
sudo nano /etc/systemd/system/temperature.service
Copie e cole isso para um serviço de temperatura:
[Unidade] Descrição = Serviço de temperatura após = multi-user.target
[Serviço] Tipo = simples
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/temperature/app.py
StandardInput = tty-force
Reiniciar = em caso de falha
RestartSec = 60s
[Instalar]
WantedBy = multi-user.target
Feche e faça novamente, mas para um backend_project.service:
Primeiro texto aberto:
sudo nano /etc/systemd/system/backend_project.service
Em seguida, copie e cole novamente:
[Unit] Descrição = serviço backend_project
After = multi-user.target
[Serviço]
Tipo = simples
ExecStart = / usr / bin / python3 /home/pi/Documents/nmct-s2-project-1-TheryBrian/backend_project/app.py
StandardInput = tty-force
Reiniciar = em caso de falha
RestartSec = 60s
[Instalar]
WantedBy = multi-user.target
Salvar e fechar.
A última parte é digitar isto:
sudo systemctl daemon-reload
sudo systemctl enable temperature.service sudo reboot
Agora, nossos 2 scripts Python devem ser executados automaticamente na inicialização.
Etapa 9: configurar o site
Ao baixar o repositório, você também deve ter obtido uma pasta chamada front. É aqui que se encontram os conteúdos do site.
Primeiro, precisamos do apache antes de usar a pasta. Siga o guia neste link para o apache.
Quando você estiver pronto. Vá para onde a pasta frontal está localizada:
cd / Documentos / nmct-s2-project-1-TheryBrian
Em seguida, digite:
sudo mv front / var / www / html
Quando isso estiver feito, vá para a pasta html, prepare-se para algum trabalho tedioso (minha culpa).
cd / var / www / html /
em seguida, vá para a pasta frontal e comece a mover tudo para a pasta html.
exemplo:
sudo mv css / var / www / html
Em seguida, exclua a pasta frontal.
E terminamos com tudo.
Boa sorte:).
Etapa 10: Opcional - Protótipo em miniatura
Para fins de teste, fiz um protótipo de apenas uma caixa com todo o hardware dentro para ver se tudo funciona sob encomenda.
Normalmente, esse projeto seria feito em uma escala maior. Por exemplo: um quarto, uma casa, uma fábrica, uma loja e assim por diante …
Mas obviamente antes de começarmos a fazer buracos nas paredes (rima legal). Primeiro, queremos ver se funciona. Na verdade, você não precisa fazer uma caixa para teste, mas é sempre divertido fazer alguns trabalhos manuais.
Aqui está meu exemplo.
Recomendado:
Interface do sensor de gás com o Arduino: 4 etapas
Interface do sensor de gás com Arduino: O sensor de fumaça MQ-2 é sensível à fumaça e aos seguintes gases inflamáveis: GLP, Butano, Propano, Metano, Álcool, Hidrogênio. A resistência do sensor é diferente dependendo do tipo de gás. O sensor de fumaça tem um potenciômetro embutido
COMO USAR O SENSOR DE GÁS MQ-7: 5 etapas
COMO USAR O SENSOR DE GÁS MQ-7: Tutorial de como usar o sensor de gás MQ-7 para detectar uma presença de Monóxido de Carbono (CO)
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: 5 etapas
Guia Do Sensor De Gás E Fumaça MQ-2 Com Arduino: Este guia mostra como criar um detector de fumaça que emite um bipe quando detecta gás ou fumaça inflamável. Acesse meu último artigo: Arduino: tudo o que você precisa saber [Guia Completo] .O sensor de gás MQ-2O sensor de fumaça MQ-2 é sensível à fu
Tutorial: Como usar o sensor de gás dióxido de carbono Mg811 Co2: 3 etapas
Tutorial: Como usar o sensor de gás dióxido de carbono Mg811 Co2: Descrição: Este tutorial mostra alguns passos simples sobre como usar o sensor de gás Mg811 Co2 usando o Arduino Uno. No final deste tutorial, você obterá um resultado de comparação quando o sensor pode detectar um movimento e não pode detectar nenhum movimento
Como calibrar e usar o sensor de gás MQ9 com Arduino: 8 etapas
Como calibrar e usar o sensor de gás MQ9 com Arduino: você pode ler este e outros tutoriais incríveis no site oficial da ElectroPeak Visão geral. Neste tutorial, você aprenderá como calibrar e usar o sensor de gás MQ9 com uma placa Arduino. O que você aprenderá: sensor de gás é e como funciona. Com