Главная chevron_right Наши уроки chevron_right Arduino chevron_right Урок 7. Термометр на базе DS18B20 и OLED дисплея 128X64

Урок 7. Термометр на базе DS18B20 и OLED дисплея 128X64

Собираем простой термометр на Arduino с датчиком DS18B20 и OLED-дисплеем 128×64. Подключаем влагозащитный датчик, устанавливаем библиотеки и выводим температуру на экран

Для термометра отлично подходит датчик температуры DS18B20. Он позволяет измерять температуру в домашних, так и в уличных условиях, потому что исполнен с водонепроницаемом корпусе. В качестве дисплея будем использовать матрицу 0.96 128X64 OLED.

Для создания термометра нам понадобятся следующие компоненты:

Для реализации проекта нам необходимо установить сразу несколько библиотек:

Сборка:

1) OLED дисплей подключаем к arduino следующим образом:

Arduino UnoЭкран 0.96 128X64 OLED
5VVCC
GNDGND
Pin 9SCL
Pin 8SDA

Для удобства подключения можно использовать макетную плату.

2) Датчик температуры DS18B20 подключается к arduino следующим образом.

Распиновка для влагозащитного датчика DS18B20 с метровым проводом:

Arduino UNOВлагозащитный датчика DS18B20
5VКрасный провод ( 5V)
GNDЧерный провод (GND)
Pin 10Желтый провод (Сигнальный) (Необходимо подтянуть резистором 4,7кОм к 5V )

В случае, если Вы будете использовать не влагозащитный датчик в корпусе to92.(Датчик температуры DS18B20 в корпусе TO-92)

Теперь необходимо записать скетч в arduino Скачать пример.

#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <iarduino_OLED.h>

#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
iarduino_OLED myOLED(0x78);

extern const uint8_t SmallFontRus[]; // Русский шрифт
extern const uint8_t MegaNumbers[]; // Подключение больших шрифтов
extern const uint8_t SmallFont[]; // Базовый шрифт без поддержки русскийх символов.

void setup()
{
        sensors.begin();
        myOLED.begin();
}

void loop()
{
        sensors.requestTemperatures();
        myOLED.clrScr(); // очищаем экран
        myOLED.setFont(SmallFontRus); // Устанавливаем русский шрифт
        myOLED.print("Ntvgthfnehf", OLED_C, 0); // Выводим надпись "Температура"
        myOLED.setFont(SmallFont);
        myOLED.print("iarduino.ru", OLED_C, 55); // вывод текста
        myOLED.setFont(MegaNumbers);
        myOLED.print(String(sensors.getTempCByIndex(0) , 1), OLED_C, 9);   // Отображение температуры
        myOLED.update();
        delay(100);
}

Результаты:

Комплект для повторения проекта

Что понадобится

Это быстрый ориентир по основным модулям и деталям. Полный список для повторения проекта смотрите в самой статье.

3 позиции
Все уроки Arduino