Como medir a qualidade do ar em OpenSensors
Como medir a qualidade do ar do Open Data Institute usando um Arduino e um Shinyei PPD-42.
Introdução
Assim, enquanto pensamos em uma boa demonstração para a plataforma da Opensensors, pensamos por que não ver como nosso local de trabalho está poluído conectando um sensor para publicar um fluxo contínuo de dados para o corretor de mensagens da OpenSensors. Para isso, precisamos de um sensor fácil de pegar e usar, optamos pelo Shinyei PPD-42. Usaremos isso para medir o número de pequenas partículas potencialmente perigosas no ar, com um arduino conectado a um PC Linux (ou Raspberry PI).
Para executar este miniprojeto, você precisará de:
- Shinyei PPD-42
- Arduino UNO
- Computador com Linux instalado (você pode usar um Raspberry PI)
Estamos baseando este ensaio em um projeto chamado DustDuino, que usa o sensor Shinyei PPD-42 com um arduino e um módulo wi-fi. Confira aqui. Usamos esse projeto como nossa referência ao configurar o sensor e escrever o código do Arduino.
Primeiramente, seguimos a etapa 2 das instruções para conectar o sensor ao Arduino. Em seguida, baixamos o código do repositório github do projeto abrindo o link para o código DustDuinoSerial.ino selecionando raw e salvando essa página.
Abrindo isso no IDE do arduino, agora fazemos o upload para o nosso Arduino UNO conectando o Arduino e pressionando upload.
Você pode verificar se os dados estão chegando usando o monitor serial do IDE do Arduino.
Em seguida, precisamos descobrir como enviar a mensagem serial de entrada para o corretor de mensagens Opensensors.
Para fazer isso, optamos por escrever um script Python. Usamos o módulo Mosquitto Python. Vou presumir que você já tem o Python instalado, pois ele vem pré-empacotado na maioria das versões do Linux. Se ainda não tiver feito isso, você precisará instalar o pip para fazer o download e configurar o módulo Mosquitto python. No Ubuntu ou Debian, isso pode ser feito com o seguinte comando:
sudo apt-get install python-pip
Depois que o pip estiver instalado, podemos instalar o módulo do cliente Python Mosquitto usando o seguinte comando:
sudo pip install paho-mqtt
Você pode descobrir como usar o módulo python lendo o site que colocamos no link acima. Escrever e compilar Python é realmente fácil.
Olá, mundo Python
Abra seu editor de texto simples favorito. Digite a linha:
imprimir “Hello World”
Salve-o como hi.py. Em seguida, no terminal, navegue até o seu documento e digite o comando:
python hi.py
Você deverá ver sua resposta “Hello World”. É tão fácil.
Hello Openensors
Para usar o módulo cliente Python do Mosquitto, podemos executar o seguinte código para testar a publicação. Você precisará substituir meu nome de usuário “Louis” (mantendo as marcas de fala) e a senha com seus dados:
A biblioteca mosquitto de que precisamos para nos comunicar com o corretor de mensagens Opensensors:
import paho.mqtt.client as mqtt
Inicialize a opção do cliente com o nosso ID de cliente do nosso dispositivo:
mqttc =mqtt.Client (client_id ="939")
Defina nosso nome de usuário e senha:
mqttc.username_pw_set ("Louis", password ="AbcDEFgH")
Conecte-se ao servidor Opensensors:
mqttc.connect ("mqtt.opensensors.io")
Publique uma mensagem para dizer olá:
mqttc.publish ("/ users / Louis / test2", payload ="Hello Opensensors!", qos =0, reter =False)
Desconectar:
mqttc.disconnect ();
Sucesso, agora você deve ter um sensor funcionando 🙂
Em seguida, precisamos fazer o serial funcionar. Para descobrir a aparência da sua porta serial do Arduino, executamos o seguinte comando no terminal:
dmesg | grep tty
A saída foi algo assim ...
[0,000000] console [tty0] habilitado [3522.192687] cdc_acm 7-1:1.0:ttyACM0:dispositivo USB ACM
A segunda linha contém detalhes do nosso Ardiuno. O ttyACM0 é o nome do dispositivo e ‘/ dev / ttyACM0’ é a porta serial.
Para abrir e ler a porta serial, o Python torna isso realmente fácil. Você pode executar um pequeno teste para verificar se está funcionando usando o seguinte código:
Para comunicação com o Arduino, precisamos usar a biblioteca serial:
import serialser =serial.Serial ('/ dev / ttyACM0') # abre a primeira porta serial while True:print ser.readline () # imprime cada linha que lê de serial
Finalmente, precisamos apenas juntar as duas peças. Aqui está o código que usamos:
import serialimport paho.mqtt.client as mqttimport timemqttc =mqtt.Client (client_id ="939") mqttc.username_pw_set ("Louis", password ="AbcDEFgH") mqttc.connect ("mqtt.opensensors.io") ser =serial.Serial ('/ dev / ttyACM0') # abre a primeira porta serialwhile True:message =ser.readline () print messagemqttc.publish ("/ users / Louis / ODI / airquality ", carga útil =mensagem, qos =0, reter =False) time.sleep (1);
Executando isso, estávamos publicando nossos dados de sensor para a Opensensors!
Recomendamos ajustar o código do Arduino para gerar os dados no formato JSON. Isso tornará mais fácil ler e adicionar funcionalidades.
Você pode conferir o tópico produzindo Dados Abertos que criamos aqui!
Código
import serialimport paho.mqtt.client as mqttimport timemqttc =mqtt.Client (client_id ="939") mqttc.username_pw_set ("Louis", password ="AbcDEFgH") mqttc.connect ("opensensors.io") ser =serial.Serial ('/ dev / ttyACM0') # abre a primeira porta serial while True:message =ser.readline () print messagemqttc.publish ("/ users / Louis / ODI / airquality", carga útil =mensagem, qos =0, reter =Falso) time.sleep (1);
Fonte:Como medir a qualidade do ar em OpenSensors
Processo de manufatura
- Sensor de qualidade do ar de hélio
- Como a má qualidade do ar afeta nossa saúde
- Quão fácil é usar um termistor ?!
- Como aumentar a eficiência do compressor de ar
- Como medir a espessura da máscara de solda
- Como a IoT facilita o desenvolvimento de AQMS interno?
- Como funcionam os secadores de ar?
- Como remover contaminantes no ar comprimido
- Usando pulseiras de silicone para medir a qualidade do ar
- Sensor de qualidade do ar à base de carbono