
В предыдущих статьях рассказывал о датчике температуры и влажности HTU21D, так же, показывал пример подключения его к ESP8266. Сегодня приведу пример подключения датчика HTU21D к Arduino UNO с отображением показаний на OLED дисплей.
Необходимые детали:
► Контроллер Arduino UNO R3 на CH340G x 1 шт.
► Провода DuPont, 2,54 мм, 20 см x 1 шт.
► Датчика температуры и влажности HTU21D x 1 шт.
► OLED-дисплей 0.96,128х64, 3.3-5B, SPI, IIC, синий x 1 шт.
Описание:
В данном примере с помощью контроллера Arduino UNO будем считывать показания с датчика HTU21D, полученные данные (температура и влажность) отобразим, последовательно на OLED дисплеи, так же будем дублировать данные в «Последовательный порт»
Подключение:
Подключение не сложное, так как датчик HTU21D и OLED дисплей работают по шине I2C, подключение будет к одним выводам Arduino UNO. Теперь подключаем интерфейс I2C, выводы A4 и A5 (Arduino UNO) подключаем к выводам DA и CL (HTU21D), затем к этим же выводам подключаем OLED дисплей, вывод SDA и SCL. Далее, осталось подключить питание, выводы с HTU21D (VCC и GND) и выводы OLED дисплея (V3V и GND), подключаем к Arduino UNO (3.3V и GND). Вот и все, для удобства приведу сеху подключения.

Установка библиотеки:
В данном примере используются две библиотеки «SparkFunHTU21D» и «OLED_I2C» скачать ее можно с «Менеджер библиотек» или в конце статьи, на 20.09.2021 версия 1.0.5.

В строке поиска вводим «HTU21D» находим библиотеку «SparkFunHTU21D» и устанавливаем ее.

Библиотеку «OLED_I2C» скачиваем файлом в конце статьи.
Программа:
Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в Arduino IТеперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в NodeMCU, незабываем указать свои данные сети.UNO
/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 19.09.2021г.
*/
#include <Wire.h> // Подключаем библиотеку Wire
#include <OLED_I2C.h> // Подключение библиотеки OLED_I2C
OLED myOLED(SDA, SCL, 8);
#include "SparkFunHTU21D.h" // Подключаем библиотеку SparkFunHTU21D
HTU21D myHumidity; // Создаем объект для работы с датчиком
extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
extern uint8_t SmallFont[]; // Подключение маленьких
void setup()
{
Serial.begin(9600); // Открытие последовательного порта на скорости 9600
Serial.println("HTU21D Example!"); // Отправка сообщения в последовательного порт
myOLED.begin(); // Инициализация OLED
myHumidity.begin(); // Инициализация HTU21D
}
void loop()
{
float humd = myHumidity.readHumidity(); // Считываем влажность
float temp = myHumidity.readTemperature(); // Считываем температуру
myOLED.clrScr(); // Очищаем экран
myOLED.setFont(MegaNumbers); // Включаем большой шрифт
myOLED.print(String(myHumidity.readTemperature() , 1), CENTER, 12);
myOLED.setFont(SmallFont); // Включаем маленький шрифт
myOLED.print("Temperature", CENTER, 57); // Отображение надписи
myOLED.update(); // Обновляем информацию на дисплее
delay(1000);
myOLED.clrScr(); // Очищаем экран
myOLED.setFont(MegaNumbers); // Включаем большой шрифт
myOLED.print(String(myHumidity.readHumidity() , 1), CENTER, 12);
myOLED.setFont(SmallFont); // Включаем маленький шрифт
myOLED.print("Humidity", CENTER, 57); // Отображение надписи
myOLED.update(); // Обновляем информацию на дисплее
delay(1000);
Serial.print("Temperature:"); // Отправка сообщения
Serial.print(temp, 1); // Отправка температуры
Serial.print("C"); // Отправка сообщения
Serial.print(" Humidity:"); // Отправка сообщения
Serial.print(humd, 1); // Отправка влажности
Serial.print("%"); // Отправка сообщения
Serial.println(); // Отправка сообщения
delay(1000); // Пауза
}
Открываем «Мониторинг порта«, где можно увидеть показания температуры и влажности.

Ссылки
Библиотека OLED_I2C
Библиотека SparkFunHTU21D
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, белый, DC 3.3-5B, SPI, IIC
Датчика температуры и влажности HTU21D
Купить в Самаре и области
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, 3.3-5B, SPI, IIC, белый
Датчика температуры и влажности HTU21D
Здравствуйте! У меня не отображается минусовая температура. Что может быть?