Monitor de qualidade do ar
Componentes e suprimentos
| | × | 1 | |
| Sensor DHT11 de Temperatura e Umidade (3 pinos) | | × | 1 | |
| Sensor de qualidade do ar (MQ135) | | × | 1 | |
| | × | 1 | |
Aplicativos e serviços online
Sobre este projeto
M sempre que nos sentimos muito fracos ao acordar da cama, mesmo depois de dormir bem à noite. Isso às vezes acontece por causa da má qualidade do ar na sala fechada à noite.
Este é um monitor de qualidade do ar de baixo custo que pode monitorar a qualidade do ar de uma sala usando o sensor de qualidade do ar MQ135. Ele também mede a temperatura ambiente e a umidade usando DHT11 e mostra os dados em um display OLED. É um pequeno projeto divertido e muito útil também.
Fiação
Conectar:
- Arduino D2 para DHT11 fora
Codificação
Na parte de codificação, você precisará instalar alguma biblioteca para executar o código
há duas funções principais no código sendSensor ()
e air_sensor ()
.
Em air_sensor ()
função lê o valor analógico do sensor de qualidade do ar gasLevel =analogRead (sensor);
e definir a qualidade para o gasLevel
correspondente . E a função sendSensor () mede os dados de temperatura e umidade com dht
biblioteca e exibi-lo no oled.
No air_sensor ()
função que você pode precisar para comemorar seu gasLevel
valor para o seu sensor. Para isso, alimente o sensor mq135 de 5 V e coloque-o em um ambiente limpo por pelo menos 24 horas antes de usá-lo. é (queima) necessário para este tipo de sensor porque o sensor vem poluído. então a queima ajuda a se limpar e dá um resultado mais preciso.
em seguida, conecte o sensor ao seu circuito e saia com ele e ajuste o valor certo para o seu lugar.
Código
- Monitor de qualidade do ar Arduino
Monitor de qualidade do ar Arduino Arduino
#include #include #include #include #include #include include #define SCREEN_WIDTH 128 // largura do display OLED, em pixels # define SCREEN_HEIGHT 64 // altura do display OLED, em pixels # define OLED_RESET 4 // Redefina o pino # (ou -1 se compartilhar o pino de redefinição do Arduino) Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); # define o sensor A0 # define DHTPIN 2 // Pino digital 2 # define DHTTYPE DHT11 // DHT 11int gasLevel =0; // variável int para nível de gás qualidade de string =""; DHT dht (DHTPIN, DHTTYPE); void sendSensor () {float h =dht.readHumidity (); float t =dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println ("Falha ao ler do sensor DHT!"); Retorna; } display.setTextColor (WHITE); display.setTextSize (1); display.setFont (); display.setCursor (0, 43); display.println ("Temp:"); display.setCursor (80, 43); display.println (t); display.setCursor (114, 43); display.println ("C"); display.setCursor (0, 56); display.println ("RH:"); display.setCursor (80, 56); display.println (h); display.setCursor (114, 56); display.println ("%");} void air_sensor () {gasLevel =analogRead (sensor); if (gasLevel <181) {quality ="BOM!"; } else if (gasLevel> 181 &&gasLevel <225) {quality ="Poor!"; } else if (gasLevel> 225 &&gasLevel <300) {quality ="Muito ruim!"; } else if (gasLevel> 300 &&gasLevel <350) {quality ="ur dead!"; } mais {qualidade ="Tóxico"; } display.setTextColor (WHITE); display.setTextSize (1); display.setCursor (1,5); display.setFont (); display.println ("Qualidade do ar:"); display.setTextSize (1); display.setCursor (20,23); display.setFont (&FreeMonoOblique9pt7b); display.println (qualidade); } void setup () {Serial.begin (9600); pinMode (sensor, INPUT); dht.begin (); if (! display.begin (SSD1306_SWITCHCAPVCC, 0x3c)) {// Endereço 0x3D para 128x64 Serial.println (F ("SSD1306 alocação falhou"));} display.clearDisplay (); display.setTextColor (WHITE); display.setTextSize (2); display.setCursor (50, 0); display.println ("Ar"); display.setTextSize (1); display.setCursor (23, 20); display.println ("monitor Qulaity"); display.display (); atraso (1200); display.clearDisplay (); display.setTextSize (2); display.setCursor (20, 20); display.println ("BY Abid"); display.display (); atraso (1000); display.clearDisplay (); } void loop () {display.clearDisplay (); air_sensor (); sendSensor (); display.display (); }
Peças personalizadas e gabinetes
Este é um gabinete 3D que eu desenhei para o projeto. Mas você não precisa de uma impressora 3D para construir uma, você pode fazer sua própria caixa com muitas coisas, como papelão. Esquemas