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


Хотите вести журнал климатических данных в теплице, создать систему управления температурой или отслеживать данные о температуре и влажности для проекта метеостанции? Датчик температуры и влажности AM2320 может стать для вас правильным выбором! Датчик AM2320 откалиброван на заводе и требует для работы лишь нескольких внешних компонентов. Таким образом, с помощью нескольких подключений и кода на Arduino вы можете сразу начать измерять относительную влажность и температуру.

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

Также на нашем сайте мы рассматривали подключение к плате Arduino и других датчиков температуры и влажности:

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

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

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Датчик AM2320

Общие сведения

AM2320 — недорогой, простой в использовании и достаточно точный цифровой датчик температуры и влажности от компании AOSONG. Он похож на популярные датчики температуры и влажности DHT11/DHT22 , но, в отличие от классических датчиков DHT, имеет интерфейс I2C!

Датчик AM2320

Датчик AM2320 способен измерять влажность во всем диапазоне от 0 до 100% относительной влажности с типичной точностью ±3% в диапазоне от 20% до 80% относительной влажности (разрешение 0,024% относительной влажности).

Максимальный диапазон температур составляет от -40 до 80 °C, типичная точность — ±0,5 °C при 25 °C (разрешение 0,01 °C).

AM2320 может выводить данные с максимальной частотой дискретизации 0,5 Гц, т.е. одно показание каждые две секунды.

Потребляемая мощность

Сам датчик работает от напряжения 3,3–5,5 В, что делает его совместимым с напряжениями 3 В и 5 В. Поэтому вы можете без проблем использовать его с вашим любимым микроконтроллером на 3,3 В или 5 В.

AM2320 потребляет менее 0,95 мА во время измерений и менее 10 мкА в спящем режиме. Низкое энергопотребление позволяет использовать его в устройствах с питанием от аккумуляторов, таких как мобильные телефоны, носимые устройства и умные часы.

Интерфейс I2C

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

Датчик имеет фиксированный адрес I2C, равный 0x5C (HEX). Для связи с несколькими датчиками AM2320 по одной шине требуется мультиплексор.

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

Напряжение питания 3,3 В – 5,5 В
Потребление тока
  • ~0,95 мА (во время измерений)
  • ~10 мкА (в спящем режиме)
Диапазон измерения влажности от 0 до 100 % относительной влажности
Точность измерения влажности ±3% в диапазоне от 20% до 80% относительной влажности
Диапазон измеряемых температур от -40°С до +80°С
Точность температуры ±0,5°С при 25°С
Частота дискретизации 0,5 Гц (одно показание каждые две секунды)

Более подробную информацию можете посмотреть в техническом описании датчика AM2320.

Распиновка датчика

Распиновка датчика AM2320

VDD — это контакт питания. Поскольку датчик потребляет от 3,3 до 5,5 В постоянного тока, подайте на него напряжение, равное логическому уровню вашего микроконтроллера. Например, для микроконтроллера с напряжением 5 В, такого как Arduino, используйте 5 В.

SDA — это контакт данных I2C, требующий подтяжки 2,2 кОм – 10 кОм к VDD.

GND — общий провод (земля).

SCL — это контакт синхронизации I2C, требующий подтяжки 2,2 кОм – 10 кОм к VDD.

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

Поскольку AM2320 использует шину I2C, подключить его к Arduino достаточно просто. Схема подключения датчика температуры и влажности AM2320 к плате Arduino представлена на следующем рисунке.

Схема подключения датчика температуры и влажности AM2320 к плате Arduino

Чтобы начать использовать датчик, нужно подключить всего четыре контакта: один для VCC, один для GND и две линии данных для связи по протоколу I2C.

Подключите вывод SCL к выводу синхронизации I2C, а вывод SDA — к выводу данных I2C на плате Arduino. Обратите внимание, что каждая плата Arduino имеет разные выводы I2C, которые следует подключать соответствующим образом. На платах Arduino с компоновкой R3 выводы SDA (линия данных) и SCL (линия синхронизации) расположены на разъёмах рядом с выводом AREF. Они также называются A5 (SCL) и A4 (SDA).

У AM2320 нет внутренних подтягивающих резисторов для шины I2C. Поэтому их необходимо добавить извне. Любое значение от 2,2 кОм до 10 кОм должно подойти. Резисторы подключены к выводам VDD, SCL и SDA.

Установка библиотеки для работы с датчиком

Для работы датчика вам потребуется установить библиотеку Adafruit AM2320. Она доступна в менеджере библиотек Arduino.

Чтобы установить библиотеку, перейдите в раздел Sketch > Include Library > Manage Libraries…. Подождите, пока менеджер библиотек загрузит индекс библиотек и обновит список установленных библиотек.

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

Отфильтруйте свой поиск, введя «am2320», и установите библиотеку.

Поиск библиотеки для работы с датчиком в менеджере библиотек Arduino IDE

Библиотека Adafruit_AM2320 использует бэкенд поддержки датчиков Adafruit. Найдите в менеджере библиотек Adafruit Unified Sensor и установите его (возможно, придётся немного прокрутить страницу).

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

Вам также необходимо установить вспомогательную библиотеку Adafruit Bus IO. Она абстрагируется от транзакций и регистров I2C и SPI.

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

Код Arduino для работы с датчиком AM2320

Ниже представлен базовый скетч для Arduino. Загрузите его на Arduino. Вы увидите текущую температуру и влажность в комнате!

После загрузки кода откройте последовательный терминал на скорости 9600 бит/с. Вы должны увидеть что-то похожее на показанное ниже. Попробуйте подышать на датчик, чтобы увидеть изменения значений влажности и температуры!

Тестирование работы кода в окне монитора последовательной связи

Объяснение работы кода

Это, пожалуй, самый простой скетч, который только может быть. В начале подключаются Adafruit_Sensor.hбиблиотеки Adafruit_AM2320.hи создаётся объект Adafruit_AM2320 в глобальном пространстве.

В настройке мы инициализируем последовательную связь с ПК и вызываем begin()функцию инициализации объекта.

После инициализации объекта вы можете получить доступ к методам объекта (am2320) с помощью оператора точки.

am2320.readTemperature() возвращает значение температуры с плавающей запятой (десятичная + дробная) в °C. Значение можно перевести в градусы Фаренгейта, умножив на 1,8 и прибавив 32.

am2320.readHumidity() возвращает показание влажности, также как значение с плавающей запятой от 0 до 100 (это означает % влажности).

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

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

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