Датчик влажности и температуры AHT20, QIIC

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

В отличие от резистивных датчиков: DHT11, DHT22 и AM2320, которые часто используются в DIY-проектах, AHT20 содержит другой тип чувствительного элемента — ёмкостный. Это позволяет изготавливать такие датчики по технологии MEMS. Именно поэтому он такой крошечный.

Датчик температуры и влажности AHT20 RobotClass

Датчик выполнен в корпусе размером всего 3×3, поэтому для эксперимента мы используем модуль RobotClass AHT20. Вокруг датчика на плате имеются вырезы, которые необходимы для минимизации передачи тепла от других компонентов платы к датчику. Кроме самого датчика, на модуле расположены два разъёма шины QIIC, для совместимости с другими модулями и контроллерами от RobotClass.

Характеристики модуля RobotClass AHT20

  • напряжение питания: 3,3 В;
  • потребляемый ток при измерении: 890 мкA;
  • потребляемый ток в режиме ожидания: 250 нA;
  • диапазон измерения температуры: от -40 до 85 °C;
  • погрешность измерения температуры: 0,3 °C;
  • гистерезис измерения температуры: 0,1 °C;
  • диапазон измерения влажности: от 0 до 100%;
  • погрешность измерения влажности: 2%;
  • гистерезис измерения влажности: 1%;
  • время отклика при измерении влажности: 8 с;
  • размер: 23 х 23 мм;
  • расстояние между монтажными отверстиями: 18 мм.

Список необходимых компонентов

Для выполнения простого примера с датчиком AHT20, кроме модуля датчика, потребуется отладочная плата Графит-32S или аналогичная на основе ESP32, переходник и кабель для шины QIIC, а также немного проводов розетка-розетка. Если вам не хватает что-то из этого, можно добавить эти компоненты в корзину прямо здесь и затем оформить заказ в нашем интернет-магазине.

В корзину
В корзину
В корзину
В корзину
В корзину

Подключение

Датчик AHT20 работает с напряжением 3.3 Вольта, а значит мы должны подключать его к контроллеру с такими же уровнями, либо использовать преобразователь уровней. В этом уроке мы используем отладочную плату Графит-32S (подойдет также любой Node-MCU).

Подключаем датчик к плате Графит-32S по стандартной схеме для I2C интерфейса:

Графит-32SGnd3.3SDA/23SCL/22
AHT20GVCCSDASCL

Подтяжка I2C

Для правильной работы шины I2C необходимо, чтобы линии SDA и SCL были подтянуты к питанию с помощью резистора соответствующего номинала. Эту подтяжку нужно сделать всего один раз на всей линии I2C.

На лицевой стороне платы имеется тройная перемычка I2C-PU. Её необходимо полностью соединить для обеспечения подтяжки шины I2C.

Программа

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

#include <Wire.h>

#include <SparkFun_Qwiic_Humidity_AHT20.h>
AHT20 humiditySensor;

void setup()
{
  Serial.begin(115200);

  Wire.begin(); // инициализации шины I2C

  // инициализация и проверка подключения
  // если датчик не обнаружен, вводим программу в бесконечный цикл
  if (humiditySensor.begin() == false){
    Serial.println("AHT20 not detected");
    while (1);
  }
}

void loop(){
  // если от датчика получены свежие данные, выводим их
  if (humiditySensor.available() == true)
  {
    float temperature = humiditySensor.getTemperature(); // получаем температуру
    float humidity = humiditySensor.getHumidity(); // получаем относительную влажность

    // выводим данные в COM-порт
    Serial.print("Temperature: ");
    Serial.print(temperature, 2);
    Serial.print(" C\t");
    Serial.print("Humidity: ");
    Serial.print(humidity, 2);
    Serial.print("% RH");

    Serial.println();
  }

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

Загружаем программу на контроллер и открываем монитор COM-порта. Не забываем указать скорость обмена — 115200 бод.

Пример Arduino датчик AHT20 RobotClass

В заключении

Несмотря на лучшие, относительно DHT11 и DHT22 характеристики, датчик AHT20 имеет ряд недостатков. Они обусловлены типом чувствительного элемента. Ёмкостные элементы имеют склонность к старению, загрязнению и дрейфу калибровочных значений.

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

Как вы уже понял, точное измерение относительной влажности — сложный процесс, подверженный искажениям из-за множества факторов. Благо, что в большинстве DIY-задач такой точности не требуется.

Полезные ссылки

Библиотека для Arduino IDE:

https://github.com/sparkfun/SparkFun_Qwiic_Humidity_AHT20_Arduino_Library

Также библиотеку можно установить через менеджер библиотек в Arduino IDE. В поисковой строке менеджера необходимо ввести «SparkFun Qwiic Humidity AHT20«.

Спецификация производителя:

https://download.robotclass.ru/spec/AHT20.pdf


Изменено:

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.