Подключение датчика температуры и влажности AHT20 к Arduino


AHT20 и AHT21 представляют собой недорогие датчики температуры и влажности, которые по функционалу похожи на датчик DHT22. Датчики AHT20 и AHT21 взаимозаменяемы. Но в отличие от датчика DHT22, с датчиков AHT20 и AHT21 мы можем считывать данные так часто, как нам будет необходимо. Для подключения датчики используют стандартный интерфейс I2C, поэтому их легко подключить ко всем современным микроконтроллерам. В данной статье мы рассмотрим их подключение к плате Arduino.

Внешний вид датчика AHT20 (вид спереди)

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик температуры и влажности AHT20 (купить на AliExpress).

Датчик AHT20

Первоначально датчик AHT20 был разработан компанией Adafruit и он до сих пор продается в ее официальном магазине под названием Adafruit AHT20. Но в последнее время появилось достаточно много более дешевых китайских клонов этого датчика.

Внешний вид датчика AHT20 (вид сзади)

Точность измерения температуры датчиком AHT20 составляет +-0.3 °C, а точность измерения влажности +- 2%.

Сравнение технических характеристик датчиков AHT21 и AHT20 приведено в следующей таблице.

Сравнение технических характеристик датчиков AHT21 и AHT20

Распиновка (назначение контактов) датчика AHT20 представлено на следующем рисунке.

Распиновка (назначение контактов) датчика AHT20

Примечание: на рисунке изображен внешний вид датчика Adafruit AHT20, внешний вид и расположение контактов у его китайских клонов могут отличаться.

VIN – контакт для подачи питания. Для подачи питания на датчик используйте напряжение логического уровня, с которым работает ваш микроконтроллер/плата. К примеру, если вы подключаете его к плате Arduino, которая работает с логическими уровнями 5V, то и в качестве напряжения питания для датчика вы должны использовать 5V.

GND - общий провод.

SCL – линия синхронизации (тактовых импульсов) в интерфейсе I2C. Логический уровень равен величине напряжения на контакте VIN. Имеет внутренний подтягивающий резистор 10 кОм.

SDA – линия передачи данных в интерфейсе I2C. Логический уровень равен величине напряжения на контакте VIN. Имеет внутренний подтягивающий резистор 10 кОм.

Контакты SCL и SDA датчика AHT20 могут работать с уровнями напряжений от 2.7V и 5.5V, поэтому их можно подключать как к плате Arduino, работающей с логическими уровнями 5V, так и к плате Raspberry Pi, работающей с логическими уровнями 3.3V.

Схема проекта

Схема подключения датчика AHT20 к плате Arduino представлена на следующем рисунке.

Схема подключения датчика AHT20 к плате Arduino

На рисунке изображена плата Adafruit Metro, но данная схема подключения будет аналогична для любых плат Arduino.

На плате датчика AHT20 установлен стабилизатор напряжения питания и конвертер уровней для шины I2C, датчик можно подключать как к 5, так и к 3,3 вольтовой логике. Рекомендуемая частота опроса шины I2C: от 8 до 30 сек.

Подготовка Arduino IDE для работы с датчиком AHT20

Для работы с датчиком AHT20 в Arduino IDE необходимо установить библиотеку Adafruit AHTx0. Ее можно установить с помощью менеджера библиотек (Library Manager). Выберите пункт меню Manage Libraries в Arduino IDE.

Запуск менеджера библиотек в в Arduino IDE

В открывшемся менеджере библиотек выполните поиск Adafruit AHTx0. После этого в результатах поиска выберите библиотеку Adafruit AHTx0.

Установка библиотеки Adafruit AHTx0 в Arduino IDE

Затем то же самое необходимо повторить для библиотеки Adafruit BusIO.

Установка библиотеки Adafruit BusIO в Arduino IDE

Примечание: в русскоязычном сегменте интернета для работы с датчиком AHT20 также рекомендуют библиотеку https://github.com/enjoyneering/AHT10.

Откройте пример, расположенный по адресу File -> Examples -> Adafruit AHTx0 -> adafruit_aht_test, и загрузите его в плату Arduino. Затем откройте окно монитора последовательной связи (Tools->Serial Monitor) и установите в нем скорость 115200. Вы должны будете увидеть в нем выводимые значения температуры и влажности.

Тестирование работы датчика AHT20

Исходный код программы (скетча)

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

(Проголосуй первым!)
Загрузка...
3 629 просмотров

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

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