Алкотестер Ардуино (датчик паров спирта MQ-3)

Алкотестер на Ардуино с дисплеем 1602

Датчик MQ-3 Arduino сможет определить концентрацию паров спирта (алкоголя) в воздухе. Поэтому на основе MQ-3 и LCD дисплея можно создать алкотестер (breathalyzer — название устройств для определения концентрации алкоголя в крови по выдыхаемому воздуху). Датчик паров спирта MQ-3 довольно просто подключить к микроконтроллеру и также легко написать прошивку для устройства на Ардуино.

Датчик паров спирта MQ-3 Ардуино

Сенсор паров спирта MQ-3 Ардуино
Сенсор паров спирта MQ-3 Ардуино

Сенсор MQ-3 — недорогой полупроводниковый прибор для измерения наличия паров спирта в воздухе при концентрации от 0,05 мг/л до 10 мг/л. Алкотестер на основе чувствительного элемента SnO2 использует химическую реакцию для определения уровня алкоголя. У этого сенсора в чистом низкая воздухе электропроводность, которая повышается линейно при росте концентрации паров алкоголя.

MQ-3 обладает высокой чувствительностью и защищен от помех, например, дыма и паров углеводородных газов. Аналоговый датчик имеет 4 вывода: питание VCC и земля Gnd, а также цифровой и аналоговый вывод. Для точных измерений необходимо достичь рабочей температуры при помощи встроенного нагревателя (около 40 градусов), подержав MQ-3 Arduino во включенном состоянии в течение 10 минут.

Схема алкотестера на Ардуино Уно своими руками




Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • датчик паров спирта MQ-3;
  • LCD дисплей 1602;
  • провода «папа-мама», «папа-папа».
Схема сборки алкотестера
Схема сборки детектора алкоголя на Ардуино своими руками

Соберите схему, как на картинке выше. Порты SDA и SCL у дисплея Ардуино подключаются к пинам A4 и A5 на Arduino Uno. Датчик необходимо подключить к 5V и GND, а аналоговый выход к пину A1. При первом включении датчика возможны посторонние запахи от MQ3 при его нагреве — это нормально. После сборки алкотестера на Ардуино, загрузите следующую простую программу для устройства.

Скетч алкотестера на Ардуино Уно с дисплеем

#include <Wire.h>                             // библиотека для протокола I2C
#include <LiquidCrystal_I2C.h>       // библиотека для LCD 1602 
LiquidCrystal_I2C LCD(0x27,20,2);  // присваиваем имя дисплею

int mq3;

void setup() {
   pinMode(A1, INPUT);    // пин для подключения сенсора
   analogWrite(A1, LOW);

   Serial.begin(9600);        // запускаем монитор порта
   LCD.init();                        // инициализация дисплея
   LCD.backlight();              // включение подсветки
 }

void loop() {
   mq3 = analogRead(A1);   // считываем данные с порта A1

   Serial.print("Alcohol: ");
   Serial.println(mq3);          // выводим значение на монитор

   LCD.setCursor(0,0);          // ставим курсор на 1 символ первой строки
   LCD.print("Alcohol: ");
   LCD.print(mq3);                // выводим значение на дисплей

   delay(500);
   LCD.clear();  // очищаем экран дисплея
}

Пояснения к коду:

  1. схема подключения дисплея к Arduino Mega будет отличаться, так как на этом микроконтроллере есть отдельные пины SDA, SCL;
  2. на дисплее будут отображаться значения с MQ3, обработанные АЦП (Аналогово Цифровым Преобразователем) микроконтроллера.

Датчик паров спирта MQ-3 «Troyka-модуль»

Датчик паров спирта MQ-3 Troyka-модуль
Датчик паров спирта MQ-3 «Troyka-модуль»

Используя аналоговый датчик MQ3 (пусть и с цифровым выходом) невозможно получить точные значения концентрации паров спирта в воздухе. Получится лишь грубое приближение к настоящим значениям, после длительной калибровки сенсора. Но используя цифровой датчик, например, от компании Амперка (Troyka-модуль) и библиотеку TroykaMQ.h можно узнать точную концентрацию газов в воздухе.

Схема алкотестера на Ардуино Нано с дисплеем

Схема сборки алкотестера на Arduino Nano своими руками
Схема сборки алкотестера на Arduino Nano своими руками

На данном датчике имеется две группы контактов. Первая группа — это питание и выходной сигнал, вторая группа служит для включения/выключения нагревателя. При замкнутой перемычке на плате MQ3, нагреватель находится всегда во включенном состоянии, поэтому вторая группа контактов не используется. После сборки схемы, согласно приведенной картинке, загрузите следующий код в Arduino Nano.

Скетч алкотестера на Ардуино Нано с дисплеем

#include <TroykaMQ.h>                    // библиотека для MQ датчиков

#include <Wire.h>                             // библиотека для протокола I2C
#include <LiquidCrystal_I2C.h>       // библиотека для LCD 1602 
LiquidCrystal_I2C LCD(0x27,20,2);  // присваиваем имя дисплею

MQ3 mq3(A1);

void setup() {
   Serial.begin(9600);   // запускаем монитор порта
   LCD.init();                   // инициализация дисплея
   LCD.backlight();         // включение подсветки
   mq3.calibrate();        // калибровка датчика MQ3
 }

void loop() {
   Serial.print("Alcohol: ");
   Serial.print(mq3.readAlcoholMgL());    // выводим значение на монитор
   Serial.println(" mG/L");

   Serial.print("Alcohol: ");
   Serial.print(mq3.readAlcoholPpm());    // выводим значение на монитор
   Serial.println(" ppm");

   LCD.setCursor(0,0);
   LCD.print("Alcohol: ");
   LCD.print(mq3.readAlcoholMgL());        // выводим значение на дисплей
   LCD.print(" mG/L");

   LCD.setCursor(0,1);
   LCD.print("Alcohol: ");
   LCD.print(mq3.readAlcoholPpm());        // выводим значение на дисплей
   LCD.print(" ppm");

   delay(500);
   LCD.clear();  // очищаем экран дисплея
}

Пояснения к коду:

  1. как и сенсор MQ-2 Arduino, датчик выводит информацию о концентрации паров спирта в долях на миллион (ppm), а также в миллиграммах на литр (mG/L);
  2. оба скетча будут работать на разных платах — Uno и Nano. Главное установить библиотеку TroykaMQ.h, которую можно скачать на нашем сайте здесь.

Заключение. Если дисплея 1602 у вас под рукой нет, то можете просто закомментировать или удалить ненужную часть кода. При этом информация с датчика MQ-3, подключенного к плате Arduino, будет выводиться только на монитор порта Arduino IDE. Если у вас остались вопросы по подключению или программированию MQ-3 сенсора для алкотестера на Arduino, оставляйте их в комментариях к этой записи.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка...

Подборка на тему: Алкотестер Ардуино (датчик паров спирта MQ-3)

Один комментарий для “Алкотестер Ардуино (датчик паров спирта MQ-3)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *