Подключение датчика AHT20 + BMP280 к Arduino UNO

Введение

Сегодня расскажу о комбинированном датчике AHT20 + BMP280, позволяющем одновременно измерять температуру, влажность воздуха и атмосферное давление (Дешевая замена BME280). Этот модуль широко применяется в метеорологических станциях, экологическом мониторинге, интеллектуальных системах управления домом и зданиями.

Технические характеристики

  • Напряжение питания: 3,3В;
  • Ток потребления: 1мА;
  • Диапазон измерения и погрешность измерения: 0 — 100 % влажности (погрешность ±2%); — 40…+8585°C (погрешность ±0.3°C), 300…1100 гПа (погрешность ±1 гПа);
  • Максимальная частота I2C: 400кГц;
  • Габаритные размеры: 15 х 15 х 2 мм;
  • Вес: 2 грамма

Описание

Модуль оснащен двумя датчиками: AHT20 и BMP280. Первый датчик, AHT20, обеспечивает точное измерение относительной влажности воздуха в диапазоне от 0% до 100%, а также фиксирует температуру окружающей среды в пределах от −40°C до +85°C. Второй датчик, BMP280, позволяет измерять атмосферное давление в интервале от 300 гПа до 1100 гПа и дополнительно определяет температуру в аналогичном температурном диапазоне.

Обмен данными с модулем осуществляется посредством протокола I²C, который позволяет подключать модуль к микроконтроллеру Arduino или другим контроллерам.

Назначение контактов
► VCC  — питание модуля 3.3В;
► SDA — линия данных I²C;
► GND — земля;
► SDA — линия тактирования I²C.

Подключение модуля AHT20 и BMP280 к Arduino UNO

Приведу пример схемы подключения модуля AHT20+BMP280 к плате Arduino UNO, а также напишу простейший скетч, позволяющий выводить значения температуры, влажности и атмосферного давления непосредственно в последовательный интерфейс Arduino.

Необходимые детали

  • Контроллер Arduino UNO R3  x 1 шт.
  • Провода DuPont, 2,54 мм, 20 см x 1 шт.
  • Модуль измерения давления, температуры и влажности BMP280 и AHT20 x 1 шт.

Подключение

Подключение довольно простое и осуществляется посредством протокола I²C. Для этого соедините контакты A5 и A4 платы Arduino UNO соответственно с выводами SCL и SDA обоих датчиков AHT20 и BMP280. Далее обеспечьте подачу питания, подключив выводы VCC и GND модуля к соответствующим контактам +5В и GND Arduino UNO. Обратите внимание, что уровень напряжения выхода логики Arduino UNO составляет 5В, тогда как сам модуль рассчитан на работу от 3,3В. Желательно применять преобразователь логических уровней, однако в данном примере мы пренебрегаем этим требованием. Проверяем еще раз схему и приступаем к загрузке скетча.

Установка библиотеки

Для работы, будем использовать библиотеки «Adafruit_BMP280» и «Adafruit_AHTX0» скачать можно используя интегрированную среду разработки Arduino IDE», для этого откройте «Скетч → Подключение библиотеки → Менеджер библиотек…», так же выложу библиотеки в конце статьи.

Установка «Adafruit_BMP280»

Для работы библиотеки необходимо установить зависимые библиотеки, нажимаем «Установить все»

Установка «Adafruit_AHTX0»

Для работы библиотеки необходимо установить зависимые библиотеки, нажимаем «Установить все»

Программа

Открываем среду разработки Arduino IDE и загружаем первую программу в Arduino UNO.

Если все правильно сделали при открытия мониторинга порта увидим показания с датчиков

Описание программы:

Сначала подключаются необходимые библиотеки для работы с датчиками BMP280 и AHT20.

Создаются объекты для работы с датчиками.

В функции setup, инициализируем последовательного порта со скорость 9600 бит/с., затем производим проверку доступности датчиков BMP280 и AHT20. Если датчик не найден, выводится сообщение об ошибке.

В основном цикле программы (loop) данные температуры и влажности запрашиваются методом aht.getEvent() и помещаются в структуру типа sensors_event_t. Полученные значения сохраняются в переменных temperature и humidity. Далее считываются показания давления, которые затем делятся на коэффициент 133.3 для перевода полученных показаний в миллиметры ртутного столба (мм рт. ст.).

Далее, все показания отправляем в последовательный порт.

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

Вам может также понравиться...

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

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