КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

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

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

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

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

Сборка:

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

Arduino Uno Экран 0.96 128X64 OLED
5V VCC
GND GND
Pin 9 SCL
Pin 8 SDA

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

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);
}

Результаты:




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями