Датчик MQ-3 Arduino может определять концентрацию паров алкоголя в воздухе. На основе модуля MQ-3 и дисплея 16×2 можно собрать алкотестер своими руками (устройство для определения концентрации алкоголя в крови по выдыхаемому воздуху). Датчик паров алкоголя (спирта) MQ-3 довольно просто подключить к микроконтроллеру, а также легко написать программу для платы Ардуино с жк дисплеем или тремя светодиодами.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- датчик паров спирта MQ-3
- светодиоды и резисторы
- дисплей LCD 1602 i2c
- макетная плата
- коннекторы
- библиотека LiquidCrystal_I2C.h
Дополнительные материалы на эту тему:
Датчик MQ-3 представляет собой недорогое полупроводниковое устройство для измерения наличия паров алкоголя при их концентрации в воздухе от 0,05 мг/л до 10 мг/л. Модуль на основе элемента SnO2 использует химическую реакцию для определения содержания алкоголя (спирта). Алкодетектор имеет низкую проводимость в чистом воздухе, которая практически линейно увеличивается при появлении паров алкоголя в воздухе.
MQ-3 Arduino распиновка, характеристики

Характеристики MQ-3 Arduino (datasheet)
- Источник питания: 5 В
- Аналоговый выход
- Размеры: 37 x 27 x 13 мм
Модуль MQ-3 обладает высокой чувствительностью и защищен от помех, таких как дым и пары углеводородов. Аналоговый датчик имеет 4 выхода: питание VCC и заземление GND, а также цифровой и аналоговый выход. Для точных измерений необходимо достичь рабочей температуры с помощью встроенного нагревателя (около 40 градусов), оставив включенным спиртовой модуль Arduino MQ-3 на 10 минут в режиме нагрева.
Подключение датчика паров спирта MQ-3 Ардуино

В первом варианте алкотестера на Ардуино мы будем использовать светодиоды для индикации уровня алкоголя в воздухе. При превышении допустимого значения алкоголя загорается оранжевый или красный светодиод. Обратите внимание, что датчик является аналоговым, поэтому его необходимо откалибровать. С помощью алкотестера можно узнать концентрацию спирта в долях на миллион (ppm) и в миллиграммах на литр (mG/L).
Скетч для алкотестера на Ардуино со светодиодами
#define 10 GRN
#define 11 ORG
#define 12 RED
int mq3;
void setup() {
pinMode(A1, INPUT);
analogWrite(A1, LOW);
pinMode(GRN, OUTPUT);
pinMode(ORG, OUTPUT);
pinMode(RED, OUTPUT);
Serial.begin(9600);
}
void loop() {
mq3 = analogRead(A1);
Serial.print("Alcohol: ");
Serial.println(mq3);
if (mq3 < 100) {
digitalWrite(GRN, HIGH);
digitalWrite(ORG, LOW);
digitalWrite(RED, LOW);
}
if (mq3 > 200 and mq3 < 200) {
digitalWrite(GRN, LOW);
digitalWrite(ORG, HIGH);
digitalWrite(RED, LOW);
}
if (mq3 > 200) {
digitalWrite(GRN, LOW);
digitalWrite(ORG, LOW);
digitalWrite(RED, HIGH);
}
}
Подключение датчика MQ-3 к Ардуино с дисплеем

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Соберите схему, как показано на рисунке выше. Порты SDA и SCL дисплея Arduino подключены к контактам A4 и A5 у микроконтроллера Arduino Uno (Nano). Датчик должен быть подключен к 5 В и GND, а аналоговый выход — к контакту A1. При первом включении датчика может появиться неприятный запах, исходящий от MQ3 при нагревании — это нормально. Информация также будет выводиться на монитор порта Arduino IDE.
Скетч для алкотестера на Ардуино своими руками
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27,16,2);
int mq3;
void setup() {
pinMode(A1, INPUT);
analogWrite(A1, LOW);
Serial.begin(9600);
LCD.init();
LCD.backlight();
}
void loop() {
mq3 = analogRead(A1);
Serial.print("Alcohol: ");
Serial.println(mq3);
LCD.setCursor(0,0);
LCD.print("Alcohol: ");
LCD.print(mq3);
delay(100);
LCD.clear();
}
Заключение. Если у вас нет в наличии дисплея LCD 1602 i2c, вы можете просто закомментировать или удалить ненужную часть кода. В этом случае информация с датчика MQ-3, подключенного к плате Ардуино, будет отображаться только на последовательном мониторе порта Arduino IDE. Если у вас есть вопросы по программированию датчика MQ-3 для сборки алкотестера на Arduino Uno, оставляйте их в комментариях к статье.

Здравствуйте!
А можете написать скетч для платы ESP32 ? (под этот датчик спирта)