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» жмем установить.

Библиотеку «OLED_I2C» скачиваем файлом в конце статьи.

Программа:
Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в Arduino. Теперь, у нас все готово, копируем скетч в Arduino IDE или скачайте готовый файл и загружаем его в NodeMCU, незабываем указать свои данные сети.UNO

/* 
Тестировалось на 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

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

1 комментарий

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

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