🛒
0 товар.
0 руб.
Логотип

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

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

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

Датчик AM2320 и LCD1602

AM2320 выводит влажность на LCD1602 и включает зуммер за пределами безопасного диапазона.

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

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

В отличие от дешёвого DHT11/DHT22 с однопроводным протоколом, у AM2320 именно I2C — удобно, если на той же шине уже висит LCD-дисплей: отдельный пин под датчик не нужен.

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

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

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

  1. Подключите AM2320 по I2C: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  2. Подключите LCD1602 с I2C-переходником на ту же шину.
  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("%  ");

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

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

Диапазон подбирается под задачу — для погреба одни цифры, для теплицы другие.

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

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

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

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

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

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

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

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

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

Корзина

Поиск


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