В этой небольшой статьи мы с вами узнаем, как можно использовать различные датчики газа серии MQ совместно с Ардуино. С помощью таких датчиков можно отслеживать наличие различных примесей в воздухе от пропана/бутана до алкоголя и дыма.
Инструменты и материалы:
-Пользовательская печатная плата;
-Arduino Nano;
-ST7789 240x240 IPS дисплей;
-ИК-пульт дистанционного управления и приемник;
-Датчики газа MQ-2, MQ-3, MQ-4, MQ-6, MQ-9;
-Зуммер;
-5 мм RGB светодиод с общим анодом;
-Резистор 220 Ом - 7 шт;
-Резистор 20 кОм - 5 шт;
-Разъем питания;
-Внешний аккумулятор 5 В;
Шаг первый: об устройстве
Обычно такие устройства включают один/два датчика. Мастер решил использовать возможности Ардуино по максимуму и установить пять датчиков.
Для управления устройством (настройки, функции и т.д.) выполняется с помощью ИК-пульта дистанционного управления. Чтобы отобразить полученные измерения газа, используется экран IPS ST7789.
В устройстве используется зуммер и 5-миллиметровый светодиод RGB с общим анодом, для сигнализации критической концентрации газов.
Все устройство монтируется на печатной плате выполненной в форме Джокера (Джо́кер (c англ. Joker — шутник, балагур) — суперзлодей вселенной DC Comics, главный и заклятый враг Бэтмена).
Данный газоанализатор он использует на рабочем месте.
Шаг второй: проектирование печатной платы
Перед тем, как создать прототип печатной платы, мастер протестировал устройство на макетной плате.
Затем разработал печатную плату с помощью KiCad и заказал на он-лайн сервисе ее изготовление. Получить файлы для изготовления платы можно здесь.
Шаг третий: монтаж
После изготовления платы мастер произвел монтаж согласно обозначениям.
A1 (Arduino Nano)
S1 (штифты для экрана ST7789 IPS)
IR1 (модуль ИК-приемника)
MQ2 (датчик газа MQ-2)
MQ3 (датчик газа MQ-3)
MQ4 (датчик газа MQ-4)
MQ6 (датчик газа MQ-6)
MQ9 (датчик газа MQ-9)
BZ1 (зуммер)
D1 (светодиод RGB с общим анодом 5 мм)
R1, R2, R3, R4, R5, R6, R7 (резистор 220 Ом)
R8, R9, R10, R11, R12 (резистор 20 кОм)
J1 (разъем питания)
J2 (разъемы для внешней батареи)
Шаг четвертый: программирование Arduino Nano и настройка компонентов
Дальше настраиваем Ардуино.
Сначала нужно загрузить необходимые библиотеки:
для управления модулем ИК-приемника Arduino-IRremote
для использования IPS-экрана ST7789 Arduino_ST7789_Fast и Adafruit_GFX
В коде включаем необходимые библиотеки и определяем контакты и настройки модуля ИК-приемника.
#include <Adafruit_GFX.h>
#include <Arduino_ST7789_Fast.h>
#include <IRremote.h>
// Define the IR receiver module pin and settings.
#define RECV_PIN 2
IRrecv irrecv(RECV_PIN);
decode_results results;
Запускаем файл IRrecvDemo.ino в примерах, получаем необходимые ИК-коды с ИК-пульта дистанционного управления и определяем их.
#define up 0xFF18E7
#define down 0xFF4AB5
#define right 0xFF5AA5
#define left 0xFF10EF
#define ok 0xFF38C7
Определяем настройки дисплея ST7789 240x240 IPS.
#define TFT_DC 10
#define TFT_RST 9
#define SCR_WD 240
#define SCR_HT 240
Чтобы отображать изображения на экране ST7789, преобразовываем их в файлы с помощью конвертера изображений ImageConverter (UTFT)
Включаем преобразованные изображения.
#include "gas.c"
#include "lethal.c"
#include "toxic.c"
[/spoiler]Запускаем отображение на ST7789 240x240 IPS
В функции collect_Data получаем переменные, генерируемые датчиками газа MQ.
Распечатываем интерфейс с параметрами меню
void interface(){
В функции change_menu_options увеличьте или уменьшите номер параметра с помощью кнопок ИК-пульта ДУ - вверх и вниз - для переключения между опциями меню в интерфейсе.
Шаг пятый: отображение наличия газов
Для обнаружения опасных газов в устройстве используются пять датчиков серии MQ:
Датчик газа MQ-2 имеет высокую чувствительность к бутану, пропану и водороду, а также может использоваться для обнаружения метана и задымленности.
Датчик газа MQ-3 обладает высокой чувствительностью к алкоголю, бензину, дыму. Этот датчик может обнаруживать алкоголь с разными концентрациями.
Датчик газа MQ-4 имеет высокую чувствительность к метану, пропану и бутану.
Датчик газа MQ-6 имеет высокую чувствительность к пропану, бутану и сжиженному нефтяному газу, а также реагирует на природный газ.
Датчик газа MQ-9 имеет высокую чувствительность к угарному газу, метану и сжиженному нефтяному газу. Этот датчик может обнаруживать различные газы, содержащие CO, и горючие газы.
Как и ожидалось, после подключения к Arduino Nano каждый датчик генерирует разные диапазоны значений в зависимости от количества обнаруживаемых опасных газов.
После тестирования мастер примерно настроил эти уровни для каждого датчика.
Выбираем параметры меню с помощью кнопок «Вверх» и «Вниз». После выбора активируем с помощью кнопки OK. Дальше происходить сбор информации с датчиков.
Если измеренное значение газа низкое в соответствии с назначенными уровнями, на светодиоде горит зеленый свет.
Если измеренное значение газа среднее светодиод горит желтым цветом.
Если измеренное значение газа превысило уровень, светодиод горит красным цветом и срабатывает зуммер.
К сожалению, при использовании удаленной библиотеки IR и библиотеки звуков Arduino IDE выдает ошибку timer0_pin_port . Ошибка возникает из-за того, что обе библиотеки пытаются использовать таймер, объявив одно и то же имя - Timer2 .
Чтобы решить эту проблему, открываем файл boarddefs.h или IRremoteBoardDefs.h в зависимости от версии удаленной библиотеки IR. Изменяем IR_USE_TIMER2 на IR_USE_TIMER1 для Arduino Nano.
Шаг шестой: подключения и регулировка
Завершив пайку и загрузив код, мастер подключил все остальные компоненты к плате.
Несмотря на то, что Arduino Nano работает при 5 В, этого недостаточно, чтобы пять газовых датчиков серии MQ нагрелись и генерировали точные измерения газа. Для питания датчиков мастер добавил печатной плате разъем питания (J1) и разъем (J2) для питания датчиков от внешней батареи (5 В).
Подключение по следующей схеме.
Arduino Nano - Модуль ИК-приемника
D2 ----S
- ST7789 240x240 IPS
GND--- GND
3,3 В --- VCC
D13 --- SCL
D11 --- SDA
D9 --- RES
D10 --- DC
- Датчик качества воздуха MQ-2
A0 --- S
- MQ-3
A1 ---S
- MQ-4
A2 --- S
- MQ-6
A3 --- S
-MQ-9
A4 ----S
-Светодиод RGB
D3 ----R
D5 ---G
D6 --- B
-Зуммер
D7 --- +
Шаг седьмой: режимы и функции
Устройство показывает пять различных датчиков серии MQ в меню интерфейса для отображения результатов измерений газа.
Устройство позволяет пользователю переключаться между датчиками с помощью ИК-пульта дистанционного управления:
Кнопка вверх
Кнопка вниз
Кнопка ОК
Кнопка «Влево» позволяет пользователю вернуться к интерфейсу.
Параметры меню.
Если опция MQ выбрана и активирована, прибор показывает измеренное значение газа.
В зависимости от назначенных уровней измерения для выбранного датчика устройство активирует светодиод RGB:
Зеленый - Низкий уровень
Желтый - Средний уровень
Красный - Высокий уровень
Устройство активирует зуммер, если измеренное значение опасного газа является опасным в соответствии с заданными уровнями.
Шаг восьмой: схема, код, файл для платы
Схему, код и файлы для изготовления платы можно скачать здесь.
На видео представлена демонстрация работы устройства.
Источник (Source)
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
Подборки: Датчик газа

Резинколет под управлением Ардуино
