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

Для программирования платы Arduino Uno от https://utsource.net я использовал Arduino IDE. Сначала надо вставить в код заголовочный файл LiquidCrystal.h:

#include LiquidCrystal.h    // Заголовочный файл для ЖКИ

Определение переменных для различных контактов платы Arduino для ЖКИ, излучателя звука и MQ-135. Кроме того, установка порога 250 ppm:

const int rs = 9, en = 8, d4 = 3, d5 = 4, d6 = 5, d7 = 6;     // Выводы ЖКИ, подключенные к Arduino.
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);                    // Функция управления ЖКИ
int buz = 2;                  // Излучатель звука подключается к выводу 2
int led = 5;                  // Светодиод подключается к выводу 5
const int aqsensor = A3;      // Выход mq-135 подключается к выводу A3 Arduino
int threshold = 250;          // Пороговый уровень качества воздуха

Это процедура будет выполняться один раз. Здесь нам нужно установить излучатель звука, светодиод в качестве устройства вывода и MQ-135 в качестве устройства ввода для Arduino Uno. Также инициализируются последовательный UART и ЖКИ.

void setup()

{
pinMode(buz, OUTPUT);      // Излучатель звука подключен к Arduino как выходное устройство
pinMode(led, OUTPUT);      // ЖКИ подключен к Arduino как выходное устройство
pinMode(aqsensor, INPUT);  // MQ135 подключен к Arduino как входное устройство
Serial.begin(9600);        // Начало последовательного обмена со скоростью 9600 бод
lcd.clear();               // Очистка ЖКИ
lcd.begin(16, 2);          // ЖКИ 16,2
}

Это бесконечный цикл, в котором выполняется чтение данных из датчика MQ-135 и отображение их на экране ЖКИ, а также проверяются условия для включения и выключения светодиода и звукового излучателя.

void loop()

{
int ppm = analogRead(aqsensor);   // Считать аналоговые данные с выхода A0MQ135 и сохранить значение в ppm
Serial.print("Air Quality: ");    // Вывод сообщения на последовательный монитор
Serial.println(ppm);              // Вывод на последовательный монитор значения ppm
lcd.setCursor(0, 0);              // Установить курсор ЖКИ в позицию 1 строки 1
lcd.print("Air Qualit: ");        // Вывод сообщения на ЖКИ
lcd.print(ppm);                   // Вывод показаний MQ135
if (ppm > threshold)              // ppm выше порогового значения, или нет?

  {
  lcd.setCursor(1, 1);            // Переход сюда, если ppm превышает порог
  lcd.print("AQ Level HIGH");
  Serial.println("AQ Level HIGH");
  tone(led, 1000, 200);           // Мигание светодиода: включение на 1000 мс, выключение на 200 мс
  digitalWrite(buz, HIGH);        // Выключить излучатель звука
  }

else
  {
  digitalWrite(led, LOW);          // Переход сюда, если ppm не превышает порога, и выключить светодиод
  digitalWrite(buz, LOW);          // Выключить излучатель звука
  lcd.setCursor(1, 1);
  lcd.print("AQ Level Good");
  Serial.println("AQ Level Good");
  }

delay(500);
}

Материал предоставлен компанией Utsource

Добавить свое объявление

* заполните обязательные данные

Статистика eFaster:

посетило сегодня 1320
сейчас смотрят 13
представлено поставщиков 1570
загружено
позиций
25 067 862