🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


💧 Проект: сигнализация влажности с выводом на LCD1602 на AM2320

Датчик AM2320 и LCD1602

AM2320 выводит текущую влажность на LCD1602 в реальном времени и включает зуммер, если она выходит за безопасный диапазон — полезно для винного погреба, теплицы или архива с документами.

Как это работает

AM2320 — комбинированный цифровой датчик температуры и влажности с ёмкостным сенсором: чувствительный элемент меняет электрическую ёмкость в зависимости от количества водяного пара в воздухе, которую встроенный контроллер датчика оцифровывает и отдаёт по шине I2C уже готовыми значениями, без необходимости калибровать переводные формулы самостоятельно.

Особенность AM2320 (в отличие от более дешёвого DHT11/DHT22 с однопроводным протоколом) — именно цифровая шина I2C, что удобно, если на той же шине уже висит LCD-дисплей: не нужен отдельный пин под датчик, строки/столбцы можно экономить для других задач.

В проекте задан допустимый диапазон влажности (`minHumidity`/`maxHumidity`), выход за который включает зуммер. Для винного погреба обычно держат 60-70%, для хранения документов и электроники — наоборот, пониженную влажность 30-45%, для теплицы с рассадой — 50-70% в зависимости от культуры.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите AM2320 по шине I2C: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  2. Подключите LCD1602 с I2C-переходником на ту же шину (SDA/SCL общие, адреса у датчика и дисплея разные).
  3. Подключите активный зуммер: сигнал → D8, GND → GND.
  4. Измените значения `minHumidity`/`maxHumidity` в коде под вашу задачу, прежде чем прошивать.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

#include <Wire.h>
#include <AM2320.h>
#include <LiquidCrystal_I2C.h>

AM2320 th;
LiquidCrystal_I2C lcd(0x27, 16, 2); // адрес 0x27 — самый частый, у некоторых плат 0x3F

const int buzzerPin = 8;           // сигнальный пин активного зуммера
const float minHumidity = 40.0;    // нижняя граница нормы, % — подберите под свою задачу
const float maxHumidity = 70.0;    // верхняя граница нормы, %

void setup() {
  Serial.begin(9600);
  Wire.begin();
  lcd.init();
  lcd.backlight();
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  int result = th.measure(); // обновляет и температуру, и влажность за один вызов

  if (result != 1) {
    // ненулевой код — ошибка чтения (шум на шине, нет контакта); пропускаем цикл
    Serial.println("Ошибка чтения AM2320");
    delay(2000);
    return;
  }

  float h = th.Humidity;

  lcd.setCursor(0, 0);
  lcd.print("Humidity: ");
  lcd.print(h);
  lcd.print("%  ");

  Serial.print("Влажность: ");
  Serial.print(h);
  Serial.println(" %");

  digitalWrite(buzzerPin, (h < minHumidity || h > maxHumidity) ? HIGH : LOW);

  delay(2000); // AM2320 рекомендуется опрашивать не чаще раза в 2 секунды
}

Библиотека AM2320 ставится через Менеджер библиотек. Диапазон `minHumidity`/`maxHumidity` подбирается под задачу — для винного погреба это одни цифры, для теплицы совсем другие.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🌧️ отключение полива по дождю💡 автовключение фитосвета по датчику освещён… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 491 ₽ 442 ₽ (экономия 49 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA