Как сделать схему светодиодного измерителя загрязнения воздуха с помощью Arduino

Попробуйте наш инструмент устранения неполадок





В этом проекте мы собираемся построить измеритель загрязнения воздуха с использованием датчика MQ-135 и Arduino. Уровень загрязнения воздуха отображается серией из 12 светодиодов. Чем больше светится светодиодов, тем выше содержание загрязняющих веществ в воздухе, и наоборот.



Обзор

Этот проект может оказаться очень полезным в местах, где качество воздуха играет важную роль, например, в больницах. Как вариант, это может быть еще один хобби-проект для вашего собственного дома.

Хотя мы не можем ожидать от этого проекта высокой степени точности, он определенно может дать достаточно хорошее представление об уровне загрязнения окружающей среды.



Загрязнение воздуха может представлять собой двуокись углерода, окись углерода, бутан, метан и некоторые газы без запаха. Датчик не может различать газы, но он берет все пробы газа из воздуха на ходу.

Если вы живете в мегаполисе и ваша квартира находится недалеко от оживленной дороги, этот проект может пригодиться, чтобы дать общее представление о воздушной атмосфере.

Большинство людей игнорируют меры по обеспечению качества воздуха в своем доме; по оценкам, одна только Индия ежегодно приводит к 1,59 миллионам смертей, включая загрязнение внутри и снаружи помещений.

Большинство населения не знает об очистителях воздуха, которые легко доступны на рынках и в интернет-магазинах и стоят не дороже смартфона.

Хорошо, теперь предупреждения разделены, давайте погрузимся в схему.

Дизайн:

Измеритель загрязнения воздуха будет интереснее, если светодиоды будут прямоугольной формы и будет использована вышеуказанная компоновка. Однако вы можете использовать свое воображение, чтобы сделать этот проект более интересным для вас.

Как сделать схему светодиодного измерителя загрязнения воздуха

На схеме выше показано, как подключить датчик к Arduino. Для катушки нагревателя датчика реализовано внешнее питание. Стороны датчика можно менять местами.

Контакт A0 Arduino определяет колебания напряжения на датчике из-за изменений содержания загрязняющих веществ в воздухе.

Датчик действует как переменный резистор (в ответ на загрязнение), а 10K - постоянный резистор, который действует как делитель напряжения. Arduino имеет 10-битный АЦП, который помогает светодиоду светиться дискретно в зависимости от уровня загрязнения воздуха, что является аналоговой функцией.

Схема светодиодного измерителя загрязнения воздуха с Arduino

Когда уровень аналогового напряжения пересекает определенный пороговый уровень, который предварительно определен в программе, включаются светодиоды.

Последовательные светодиоды предварительно определены с более высокими пороговыми уровнями.

Он начинается с проверки светодиодов, каждый светодиод включается последовательно с некоторой задержкой, и пользователь может определить ошибку в подключении светодиодов, например, неподключенные светодиоды и светодиоды, которые не отсортированы последовательно. Программа останавливается на 5 минут, и все светодиоды светятся одновременно.

Это даст достаточно времени для прогрева сенсора, и мы сможем увидеть некоторые действия, выполняемые Arduino на последовательном мониторе. Как только датчик достигает оптимальной температуры, arduino отправляет некоторые показания на последовательный монитор. В зависимости от показаний светодиоды будут включаться и выключаться. Чем выше значения выводятся на серийный монитор, тем больше светодиодов загорается.

Монитор последовательного порта не является обязательным в этом проекте, но может быть удобным инструментом для тестирования.

Изображение прототипа:

Протестированный прототип светодиодной схемы измерителя загрязнения воздуха с Arduino

Как проверить:

• Включите Arduino и внешний источник питания. Начнется проверка светодиодов, которая выполняется только один раз.
• Программа ждет 5 минут, пока датчик нагреется.
• Как только показания появятся на серийном мониторе, возьмите прикуриватель и слейте газ, не поджигая его.
• Вскоре показания становятся максимальными, и начинает гореть большее количество светодиодов.
• После прекращения подачи газа на датчик светодиоды постепенно гаснут. Теперь ваш светодиодный измеритель загрязнения воздуха готов служить вам в комнате.

Программный код:

//--------------Program developed by R.Girish---------------//
int input=A0
int a=2
int b=3
int c=4
int d=5
int e=6
int f=7
int g=8
int h=9
int i=10
int j=11
int k=12
int l=13
int T=750
unsigned long X = 1000L
unsigned long Y = X * 60
unsigned long Z = Y * 5
void setup()
{
Serial.begin(9600)
Serial.println('Sensor is getting ready, please wait for 5 min.')
pinMode(a,OUTPUT)
pinMode(b,OUTPUT)
pinMode(c,OUTPUT)
pinMode(d,OUTPUT)
pinMode(e,OUTPUT)
pinMode(f,OUTPUT)
pinMode(g,OUTPUT)
pinMode(h,OUTPUT)
pinMode(i,OUTPUT)
pinMode(j,OUTPUT)
pinMode(k,OUTPUT)
pinMode(l,OUTPUT)
pinMode(a,HIGH)
delay(T)
digitalWrite(a,HIGH)
delay(T)
digitalWrite(b,HIGH)
delay(T)
digitalWrite(c,HIGH)
delay(T)
digitalWrite(d,HIGH)
delay(T)
digitalWrite(e,HIGH)
delay(T)
digitalWrite(f,HIGH)
delay(T)
digitalWrite(g,HIGH)
delay(T)
digitalWrite(h,HIGH)
delay(T)
digitalWrite(i,HIGH)
delay(T)
digitalWrite(j,HIGH)
delay(T)
digitalWrite(k,HIGH)
delay(T)
digitalWrite(l,HIGH)
delay(T)
delay(Z)
}
void loop()
{
Serial.println(analogRead(input))
if(analogRead(input)>=85) digitalWrite(a,1)
if(analogRead(input)>=170) digitalWrite(b,1)
if(analogRead(input)>=255) digitalWrite(c,1)
if(analogRead(input)>=340) digitalWrite(d,1)
if(analogRead(input)>=425) digitalWrite(e,1)
if(analogRead(input)>=510) digitalWrite(f,1)
if(analogRead(input)>=595) digitalWrite(g,1)
if(analogRead(input)>=680) digitalWrite(h,1)
if(analogRead(input)>=765) digitalWrite(i,1)
if(analogRead(input)>=850) digitalWrite(j,1)
if(analogRead(input)>=935) digitalWrite(k,1)
if(analogRead(input)>=1000) digitalWrite(l,1)
delay(1000)
if(analogRead(input)<=85) digitalWrite(a,0)
if(analogRead(input)<=170) digitalWrite(b,0)
if(analogRead(input)<=255) digitalWrite(c,0)
if(analogRead(input)<=340) digitalWrite(d,0)
if(analogRead(input)<=425) digitalWrite(e,0)
if(analogRead(input)<=510) digitalWrite(f,0)
if(analogRead(input)<=595) digitalWrite(g,0)
if(analogRead(input)<=680) digitalWrite(h,0)
if(analogRead(input)<=765) digitalWrite(i,0)
if(analogRead(input)<=850) digitalWrite(j,0)
if(analogRead(input)<=935) digitalWrite(k,0)
if(analogRead(input)<=1000) digitalWrite(l,0)
}
//--------------Program developed by R.Girish---------------//




Предыдущая: SMS-оповещение об утечке сжиженного нефтяного газа с использованием MQ-135 - Получите предупреждающее сообщение на свой мобильный телефон Далее: LM317 Источник питания с переменным режимом переключения (SMPS)