Объявление

Внимание!
Данный форум предназначен только для радиолюбителей!
Никакие прочие объявления, реклама товаров либо услуг невозможны!


Любой спам на нашем форуме запрещён!
Разрешаются только ссылки по темам! 3а нарушения БАН.


Термометр на DS18B20 и OLED 128X64

Правила форума
Внимание! Любой спам на нашем форуме запрещён!
Коммерческая реклама сайтов, ссылки, спам запрещены. Так же запрещены ссылки на сайты в профилях новичков.
Бан без предупреждений.

Термометр на DS18B20 и OLED 128X64

Сообщение admin » 27 ноя 2016, 19:12

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

Для создания термометра нам понадобятся следующие компоненты:
Датчик температуры DS18B20 1 метр. (Герметичный)
Экран 0.96 128X64 OLED,
Breadboard
Набор проводов Папа-Папа
Микроконтроллер Arduino

Для реализации проекта нам необходимо установить сразу несколько библиотек:
OneWire Arduino Library
OLED I2C OLED_I2C с поддержкой Русского и Украинского языка.
Dallas Temperature

Сборка:

1) OLED дисплей подключаем к arduino следующим образом:
Arduino Uno ..............Экран 0.96 128X64 OLED IIC (4SPI)
5V .................................VCC
GND ..............................GND
Pin 9 .............................SCL (D0)
Pin 8 .............................SDA (D1)


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

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

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

Изображение

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

Код: выделить все
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
#include <OLED_I2C.h>
OLED  myOLED(8, 9, 8); // 8pin - SDA , 9pin - SCL
extern uint8_t RusFont[]; // Русский шрифт
extern uint8_t MegaNumbers[]; // Подключение больших шрифтов
extern uint8_t SmallFont[]; // Базовый шрифт без поддержки русскийх символов.
void setup()
{
  sensors.begin();
  myOLED.begin();
}
void loop()
{
sensors.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont); // Устанавливаем русский шрифт
myOLED.print("Ntvgthfnehf", CENTER, 0); // Выводим надпись "Температура"
myOLED.setFont(SmallFont);
myOLED.print("data-ru.ru", CENTER, 55); // вывод текста
myOLED.setFont(MegaNumbers);
myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 9);   // Отображение температуры
myOLED.update();
delay(100);
}


Изображение
admin
Администратор
 
Сообщений: 63
Зарегистрирован: 27 ноя 2016, 18:21

Вернуться в Для новичков. Азы.

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

/