Рисунок 6 – Изменение считывания влажности датчика при закорачивании его дорожек
Датчик уровня воды
Эти датчики (рисунок 7) предназначены для определения уровня воды в различных емкостях, где недоступен визуальный контроль, с целью предупреждения перенаполнения ёмкости водой через критическую отметку.
Рисунок 7 – Датчик влажности почвы
Данный датчик является погружным. Чем больше погружение датчика в воду, тем меньше сопротивление между двумя соседними контактами.
Датчик имеет три контакта для подключения к контроллеру.
– + /VCC – питание датчика;
8
–- / GND – земля;
–S / OUT – аналоговое значение.
На вывод S подается аналоговое значение, которое можно передавать в контроллер для дальнейшей обработки, анализа и принятия решений.
В листинге 3 представлен код для измерения уровня с помощью датчика, представленного на рисунке 8. Результат работы кода представлен на рисунке 9.
Листинг 3 – Код для съёма данных об уровне воды ESP32
// Используем GPIO 14
const int waterSensorPin = 14;
void setup() { Serial.begin(115200); pinMode(waterSensorPin, INPUT);
}
void loop() {
// У ESP32 значение будет от 0 до 4095
int sensorValue = analogRead(waterSensorPin);
Serial.print("Water Level Raw: ");
Serial.println(sensorValue);
delay(500);
}
Рисунок 8 – Подключенный датчик уровня на основе платы ESP32
9
Рисунок 9 – Изменение считывания уровня датчика при его накренивании
Датчик горючих газов и дымаx (заменённый датчиком влажности схожей распиновки)
Датчик газа (рисунок 10) позволяет улавливать примеси в воздухе. Его можно использовать в проектах умных домов, чтобы улавливать оставленную включенной газовую плиту, протечку газа или возникновение пожара и задымления.
Датчик MQ-2 чувствителен к дыму и нижеследующим воспламеняющимся газам:
–Сжиженному природному газу;
–Бутану;
–Пропану;
–Метану;
–Спирту;
–Водороду.
10
Рисунок 10 – Датчик газа
Сопротивление датчика MQ-2 меняется в зависимости от типа газа. Принцип работы датчика газа представлен на рисунке 11.
Чувствительность датчика настраивается при помощи встроенного потенциометра.
Напряжение, выдаваемое датчиком, меняется в зависимости от уровня дыма/газа в окружающей атмосфере:
–Чем выше концентрация газа, тем выше выходное напряжение.
–Чем ниже концентрация газа, тем ниже выходное напряжение.
Рисунок 11 – Принцип работы датчика газа
11
Датчик имеет 3 вывода для подключения:
–OUT – подключается к аналоговому выводу на плате Arduino;
–VCC – питание;
–GND – земля.
Выходной сигнал датчика изменяется в диапазоне от 0 В до 5В.
При работе датчика газоанализатор нагревается с помощью нагревательного элемента для осуществления химической реакции, поэтому нужно соблюдать осторожность при работе с данным датчиком. Также перед первым использованием рекомендуется прогреть датчик на протяжение 24 часов для получения стабильного результата. Кроме этого, показания датчика зависят от температуры и влажности воздуха в помещении.
В листинге 4 представлен код для имитации измерения данных о газе с помощью датчика, представленного на рисунке 12. Результат работы кода представлен на рисунке 13.
Листинг 4 – Код для имтиации съёма данных о газе ESP32
const int gasSensorPin = 14;
void setup() {
// Скорость 115200 Serial.begin(115200); pinMode(gasSensorPin, INPUT);
Serial.println("Прогрев датчика газа (нужно около 20-60
сек)...");
}
void loop() {
// Считываем значение (от 0 до 4095) int gasValue = analogRead(gasSensorPin);
Serial.print("Уровень газа/дыма: ");
Serial.println(gasValue);
// Порог срабатывания (должен подбираться опытном путём) if (gasValue > 2500) {
Serial.println("!!! ВНИМАНИЕ: ОБНАРУЖЕН ГАЗ ИЛИ ДЫМ !!!");
}
delay(1000);
12
