Обзор датчика температуры и влажности SHT30, SHT31
На сегодняшний день существует множество датчиков температуры и влажности и наверно самые популярные, это DHT11 и DHT22. Но у них есть существенный недостаток, это большая погрешность и одно проводный протокол связи. В этой статье расскажу об еще одном датчике температуры и влажности SHT30, так же приведу пример подключения его к контроллеру Arduino UNO R3.
Технические параметры датчика SHT30
► Напряжение питания: 2.15…5.5В;
► Потребляемый ток: 2 мкА в режиме ожидания, до 1.5мА при измерении;
► Время измерения: 2.5…15мс;
► Погрешность: ±0.3°C, ±2% влажности;
► Диапазон измерения температуры: -40…125°C;
► Диапазон измерения влажности: 0…90%;
► Интерфейс: I2C;
► Максимальная скорость передачи данных: 1МГц;
► Разрешение: 0.015°C, 0.01%RH;
► Повторяемость: 0.06-0.24°C, 0.10-0.25%RH;
► Габариты: 10 × 13 × 2 мм;
► Вес: 2 грамм.
Обще сведенья о датчика SHT30
Немного расскажу о самом модуле, на верхней части установлен сам датчик SHT30 (производитель Sensirion), собранный в 8-контактов корпусе DFN, габариты которого 2.5 х 2.5 мм с высотой 0.9 мм. Связь с микроконтроллером осуществляется по шине I2C с частотой 1 МГц доступно на выбор два адреса 0x44 (по умолчанию) или 0x45 На обратной стороне плате установлена минимальная электронная обвязка, конденсаторы и подтягивающие резисторы для шины I2C.
Датчик SHT30 может работать независимо без микроконтроллера (или может просто оповещать контроллер о превышении заданного предела), для этого необходимо его запрограммировать на определенную температуру или влажность при достижения которой, датчик будет посылать сигнал на вывод LA (ALERT). Только не забываем, что максимальный ток вывода LA (ALERT) составляет 1.5 х Vdd мА (зависит от питания модуля) и если ходите использовать его независимо, нагрузку необходимо подключать через транзистор. Так же, в датчике есть встроенный нагреватель, который можно включить в любой момент.
Если точность датчика SHT30 не хватает, можно занимать его на более точный SHT31 или SHT35, более подробную информацию можно получить из документации.
Назначение контактов:
► VIN — вывод питания 2.15 — 5.5 В;
► GND — заземляющий вывод питания;
► SAA/RH (SDA) — вывод данных I2C подключается к линии I2C;
► SCL/T — вывод I2C, подключается к линии I2C микроконтроллера;
► AL (ALERT) — вывод прерывания;
► AD (ADDR) — вывод выбора адреса.
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Модуль датчика температуры и влажности SHT30 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение датчика температуры и влажности SHT30 к Arduino
Описание:
В первом примере покажу как подключить модуль датчика температуры и влажности SHT30, все показания будем передавать в последовательный порт.
Подключение:
Из приведенной ниже принципиальной схемы можно увидеть, что мы используем всего четыре провода. Выводы SDA и SCL с датчика SHT30, подключаем к выводам A4 и A5 Arduino UNO. Контакты VCC и GND датчика подключаем к 5 В и GND Arduino UNO.
Установка библиотек:
Для работы с модулем необходимо установить библиотеку «Adafruit_SHT31». Переходим в Скетч —> Подключить библиотеку —> Управление библиотеками.
В строке поиска введите «Adafruit_SHT31 », найдите библиотеку «Adafruit SHT31 Library» жмем установить.
Программа:
Теперь запускаем среду разработку Arduino IDE и загружаем скетч в контроллер.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#include "Adafruit_SHT31.h" // Подключаем библиотеку Adafruit_SHT31 Adafruit_SHT31 sht31 = Adafruit_SHT31(); // Создаем объект void setup() { Serial.begin(9600); // Открываем последовательную связь, на скорости 9600 sht31.begin(0x44); // Инициализация датчик, с адресом 0х44 } void loop() { float t = sht31.readTemperature(); // Считываем показания температуры float h = sht31.readHumidity(); // Считываем показания влажности Serial.print("Temp *C = "); // Отправка текста Serial.print(t); // Отправка температуры Serial.print("\t\t"); // Отправка текста Serial.print("Hum. % = "); // Отправка текста Serial.println(h); // Отправка температуры delay(1000); // Пауза 1 с } |
Загрузите скетч и откройте «Последовательный монитор» из Arduino IDE. Если все правильно сделали, можно увидеть показания температуры и влажности.
Ссылки
Документация на SHT3x
Библиотека Adafruit_SHT31
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Модуль датчика температуры и влажности SHT30/SHT31
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Модуль датчика температуры и влажности SHT30
Модуль датчика температуры и влажности SHT31