OLED термометр и гигрометр на SHT30\31


В этой статье расскажу расскажу как с помощью датчика температуры и влажности SHT32 и OLED дисплея сделать небольшую и главное недорогую метеостанцию, в качестве контроллера будем использовать Arduino UNO.
Необходимые детали:
► Контроллер Arduino UNO R3 x 1 шт.
► Провода DuPont, 2,54 мм, 20 см x 1 шт.
► Модуль датчика температуры и влажности SHT30\31 x 1 шт.
► OLED-дисплей 0.96, 128х64, I2C, SSD1306, синий x 1 шт.
Описание:
В данном примере с помощью контроллера Arduino UNO будем считывать показания с датчика SHT30, полученные данные (температура и влажность) отобразим, последовательно на OLED дисплеи, так же будем дублировать данные в последовательный монитор
Подключение:
Подключение не сложное, так как датчик SHT30 и OLED дисплей работают по шине I2C, подключение будет к одним выводам Arduino UNO. Теперь подключаем интерфейс I2C, выводы A4 и A5 (Arduino UNO) подключаем к выводам SDA и SCL ( SHT30), затем к этим же выводам подключаем OLED дисплей, вывод SDA и SCL. Далее, осталось подключить питание, выводы с SHT30 (VCC и GND) и выводы OLED дисплея (V3V и GND), подключаем к Arduino UNO (3.3V и GND). Вот и все, для удобства приведу сеху подключения.

Установка библиотеки:
В данном примере используются две библиотеки «Adafruit_SHT31» и «OLED_I2C»/ Переходим в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «Adafruit_SHT31 », найдите библиотеку «Adafruit SHT31 Library» жмем установить.

Программа:
Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в Arduino. Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в NodeMCU, незабываем указать свои данные сети.UNO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
/* Тестировалось на Arduino IDE 1.8.5 Дата тестирования 19.09.2021г. */ #include <OLED_I2C.h> // Подключение библиотеки OLED_I2C OLED myOLED(SDA, SCL, 8); #include "Adafruit_SHT31.h" // Подключаем библиотеку Adafruit_SHT31 Adafruit_SHT31 sht31 = Adafruit_SHT31(); // Создаем объект extern uint8_t MegaNumbers[]; // Подключение больших шрифтов extern uint8_t SmallFont[]; // Подключение маленьких void setup() { Serial.begin(9600); // Открытие последовательного порта на скорости 9600 myOLED.begin(); // Инициализация OLED sht31.begin(0x44); // Инициализация датчик, с адресом 0х44 } void loop() { float temp = sht31.readTemperature(); // Считываем показания температуры float humd = sht31.readHumidity(); // Считываем показания влажности myOLED.clrScr(); // Очищаем экран myOLED.setFont(MegaNumbers); // Включаем большой шрифт myOLED.print(String(sht31.readTemperature() , 1), CENTER, 12); myOLED.setFont(SmallFont); // Включаем маленький шрифт myOLED.print("Temperature", CENTER, 57); // Отображение надписи myOLED.update(); // Обновляем информацию на дисплее delay(1000); myOLED.clrScr(); // Очищаем экран myOLED.setFont(MegaNumbers); // Включаем большой шрифт myOLED.print(String(sht31.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); // Пауза } |
Загрузите скетч и откройте «Последовательный монитор» из Arduino IDE. Если все правильно сделали, можно увидеть показания температуры и влажности.

Ссылки Библиотека OLED_I2C
Библиотека Adafruit_SHT31
Купить на Aliexpress Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, белый, DC 3.3-5B, SPI, IIC
Модуль датчика температуры и влажности SHT30/SHT31
Купить в Самаре и области Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
OLED-дисплей 0.96,128х64, 3.3-5B, SPI, IIC, белый
Модуль датчика температуры и влажности SHT30
Модуль датчика температуры и влажности SHT31
А с этим датчиком https://robotchip.ru/bme280-datchik-atmosfernogo-davleniya-vlazhnosti-i-temperatury/