Объявление

США начнут предпринимать меры экономического и военного характера, если Россия не прекратит нарушать Договор о ракетах средней и меньшей дальности (ДРСМД)

Решение главы Национального Объединения "Новая Россия - Великая Россия" Rommstaina: http://russianew.ru/viewtopic.php?f=120&t=4039

Погодная станция. Барометр BMP180, термометр DS18B20, OLED.

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

Погодная станция. Барометр BMP180, термометр DS18B20, OLED.

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

Нам понадобится:

Датчик температуры DS18B20.
Экран 0.96 128X64 OLED,
Breadboard
Набор проводов Папа-Папа
Микроконтроллер Arduino
Резистор
Барометр BMP180 GY-68

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

OneWire Arduino Library
OLED I2C OLED_I2C с поддержкой Русского и Украинского языка.
Dallas Temperature
Adafruit BMP085 Библиотека для работы с датчиком давления BMP085

Сборка:

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


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

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

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


3) Барометр BMP180 GY-68 подключается к Arduino следующим образом:

Arduino UNO .....................Барометр BMP180
3.3V ! (строго!)....................Vin
GND ................................GND
A5 ..................................SCL
A4 ..................................SDA


В нашем случае, для удобства мы подключили все модули к питанию 3.3 Вольта. Более наглядную схемы подключения можно посмотреть на фотографии ниже.

Изображение

Код скетча:

Код: выделить все
#include <Wire.h>
#include <Adafruit_BMP085.h> // Библиотека для работы с барометром
float P; // В данную переменную мы будем пересчитывать давление в милиметры ртутного столба
Adafruit_BMP085 bmp;
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10 // номер пина к которому подключен DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
char buffer[25];
char buffer1[25];
#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();
  bmp.begin();
  myOLED.setFont(RusFont);
}
void loop()
{
// Выводим на экран показания температуры
sensors.requestTemperatures();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont);
myOLED.print("Ntvgthfnehf", CENTER, 0); // вывод текста русскими буквами
myOLED.setFont(SmallFont);
myOLED.print("iarduino.ru", CENTER, 55); // вывод текста
myOLED.setFont(MegaNumbers);
myOLED.print(String(sensors.getTempCByIndex(0) , 1), CENTER, 10);   // Отображение значения температуры, с точностью до десятых
myOLED.update();
delay(2000); // Пауза 2 секунды
// Выводим на экран показания атмосферного давления
myOLED.clrScr(); // очищаем экран
myOLED.setFont(RusFont);
myOLED.print("Lfdktybt", CENTER, 0); // вывод текста русскими буквами
myOLED.setFont(SmallFont);
myOLED.print("iarduino.ru", CENTER, 55); // вывод текста
P=bmp.readPressure();
P=(float)0.0075*P; // пересчитываем давления в привычные нам мм ртутного столба.
myOLED.setFont(MegaNumbers);
myOLED.print(String(P , 1), CENTER, 10);   // Отображение значения давления, с точностью до десятых
myOLED.update();
delay(2000);
}


В результате наше устройство отображает сперва температуру, которую фиксирует датчик DS18B20, а спустя 2 секунды он выводит на экран текущее давление, зафиксированное с помощью барометра BMP180.
admin
Администратор
 
Сообщений: 71
Зарегистрирован: 27 ноя 2016, 18:21

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

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

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

cron
/