Паяльник

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Паяльник » Микроконтроллеры » часы,влажность,температура,давление на OLED_l2C_RUS


часы,влажность,температура,давление на OLED_l2C_RUS

Сообщений 1 страница 2 из 2

1

смотрится устройство хорошо
http://s5.uploads.ru/t/7uhJ3.jpghttp://s9.uploads.ru/t/dhlIN.jpghttp://sd.uploads.ru/t/vL9CG.jpghttp://sf.uploads.ru/t/pwld5.jpg

oled_bmp_dht_ds1307

#include <dht11.h>
dht11 sensor;
#define DHT11PIN 2

#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h> // Библиотека для работы с барометром
#define BMP_CS 10
Adafruit_BMP280 bmp(BMP_CS);

#include <OLED_I2C.h>
OLED  myOLED(A4, A5, 8); //пины OLED: SDA на A4, SCK на A5 Arduino

extern uint8_t MegaNumbers[];//Установка шрифтов Больших
extern uint8_t RusFont[];// Установка русских шрифтов
extern uint8_t SmallFont[];// Установка малых шрифтов
extern uint8_t term[];//картинка термометра
extern uint8_t grad[];//картинка градуса
extern uint8_t water[];//картинка флажности
extern uint8_t percentage[];//картинка процента

#include <DS1307.h>//подключение библиотеки часового модуля
DS1307 rtc(A0, A1);//часовой модуль подключен к пинам Arduino: Vcc к +5V, GND к 3емле, SDA к A3, SCL к A2
Time t; // присвоение переменной для времени
int x = 0;
int y = 0;

void setup() {
myOLED.begin();
bmp.begin();
rtc.halt(false);
//rtc.setDOW(FRIDAY);  // Настройка для недели (MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY)
//rtc.setTime(12, 27, 0); // Настройка часов
//rtc.setDate(22, 09, 2017); // Настройка даты
}

void loop() {
sensor.read(2); // Пин сенсора dht11 на Ардуино
if (x >= 10) {  // 10 количество секунд, для переключения на температуру
temp();
//delay(1000);
water_proc();
delay(2000);
x=0;
}
else
{
watch();
}
x++;
}
void watch() {
myOLED.setFont(RusFont);
t = rtc.getTime();
switch (t.dow)
{
case 1:     myOLED.print("GJYTLTKMYBR", CENTER, 0);    break;
case 2:     myOLED.print("DNJHYBR", CENTER, 0);        break;
case 3:     myOLED.print("CHTLF", CENTER, 0);          break;
case 4:     myOLED.print("XTNDTHU", CENTER, 0);        break;
case 5:     myOLED.print("GZNYBWF", CENTER, 0);        break;
case 6:     myOLED.print("CE<<JNF", CENTER, 0);        break;
case 7:     myOLED.print("DJCRHTCTYMT", CENTER, 0);    break;
}
String stringOne = rtc.getTimeStr();
myOLED.setFont(MegaNumbers);
myOLED.print(stringOne.substring(0, 2), 4, 15);
myOLED.print("/", 51, 12);
myOLED.print(stringOne.substring(3, 5), 75, 15);
myOLED.setFont(RusFont);
switch (t.mon)
{
case 1:
myOLED.print(String(t.date), 30, 57);
myOLED.print("ZYDFHZ", CENTER, 57);
myOLED.print(String(t.year), 88, 57);
break;
case 2:
myOLED.print(String(t.date), 26, 57);
myOLED.print("ATDHFKZ", CENTER, 57);
myOLED.print(String(t.year), 92, 57);
break;
case 3:
myOLED.print(String(t.date), 30, 57);
myOLED.print("VFHNF", CENTER, 57);
myOLED.print(String(t.year), 88, 57);
break;
case 4:
myOLED.print(String(t.date), 30, 57);
myOLED.print("FGHTKZ", CENTER, 57);
myOLED.print(String(t.year), 88, 57);
break;
case 5:
myOLED.print(String(t.date), 26, 57);
myOLED.print("VFZ", CENTER, 57);
myOLED.print(String(t.year), 88, 57);
break;
case 6:
myOLED.print(String(t.date), 35, 57);
myOLED.print("B>YZ", CENTER, 57);
myOLED.print(String(t.year), 81, 57);
break;
case 7:
myOLED.print(String(t.date), 32, 57);
myOLED.print("B>KZ", CENTER, 57);
myOLED.print(String(t.year), 86, 57);
break;
case 8:
myOLED.print(String(t.date), 28, 57);
myOLED.print("FDUECNF", CENTER, 57);
myOLED.print(String(t.year), 90, 57);
break;
case 9:
myOLED.print(String(t.date), 24, 57);
myOLED.print("CTYNZ<HZ", CENTER, 57);
myOLED.print(String(t.year), 94, 57);
break;
case 10:
myOLED.print(String(t.date), 26, 57);
myOLED.print("JRNZ<HZ", CENTER, 57);
myOLED.print(String(t.year), 92, 57);
break;
case 11:
myOLED.print(String(t.date), 28, 57);
myOLED.print("YJZ<HZ", CENTER, 57);
myOLED.print(String(t.year), 90, 57);
break;
case 12:
myOLED.print(String(t.date), 26, 57);
myOLED.print("LTRF<HZ", CENTER, 57);
myOLED.print(String(t.year), 92, 57);
break;
}
myOLED.update();
delay(450);
myOLED.setFont(MegaNumbers);
myOLED.print("-", 51, 15);
myOLED.update();
delay(450);
}

void temp() { 
  for(int x = 0; x < 1; x++){
  String stringOne = rtc.getTimeStr();
  myOLED.clrScr();
  myOLED.setFont(SmallFont);
  myOLED.print(stringOne.substring(0, 5), 98, 0);
  myOLED.print(rtc.getDateStr(), 0, 0);
  myOLED.setFont(RusFont);
  myOLED.print("DKF:YJCNM", CENTER, 57); // Влажность
  myOLED.drawBitmap(4, 18, water, 20, 40);
  myOLED.setFont(MegaNumbers);
  myOLED.print(String(sensor.humidity), CENTER, 15);
  myOLED.drawBitmap(90, 18, percentage, 35, 35);
  myOLED.update();
  myOLED.clrScr();
  }
}

void water_proc() { 
  for(int y = 0; y < 1; y++)
  {
  String stringOne = rtc.getTimeStr();
 
  myOLED.clrScr();
  myOLED.setFont(SmallFont);
  myOLED.print(stringOne.substring(0, 5), 98, 0);
  myOLED.print(rtc.getDateStr(), 0, 0);
  myOLED.setFont(RusFont);
  myOLED.print("DKF:YJCNM", CENTER, 57); // Влажность
  myOLED.drawBitmap(4, 18, water, 20, 40);
  myOLED.setFont(MegaNumbers);
  myOLED.print(String(sensor.humidity), CENTER, 15);
  myOLED.drawBitmap(90, 18, percentage, 35, 35);
  myOLED.update();
  myOLED.clrScr();
  delay(3000);
 
// Выводим на экран показания температуры

for(int y = 0; y < 1; y++)
String stringOne = rtc.getTimeStr();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(SmallFont);
myOLED.print(stringOne.substring(0, 5), 98, 0);
myOLED.print(rtc.getDateStr(), 0, 0);
myOLED.setFont(RusFont);
myOLED.print("NTVGTHFNEHF", CENTER, 57); // вывод текста русскими буквами
myOLED.drawBitmap(4, 18, term, 19, 40);
myOLED.setFont(MegaNumbers);
myOLED.print(String(bmp.readTemperature(), 0), CENTER, 15); // Отображение значения температуры, с точностью до десятых(1)
myOLED.drawBitmap(92, 18, grad, 13, 12);
myOLED.update();
myOLED.clrScr();
delay(3000);

// Выводим на экран показания атмосферного давления

for(int y = 0; y < 1; y++)
String stringOne = rtc.getTimeStr();
myOLED.clrScr(); // очищаем экран
myOLED.setFont(SmallFont);
myOLED.print(stringOne.substring(0, 5), 98, 0);
myOLED.print(rtc.getDateStr(), 0, 0);
myOLED.setFont(RusFont);
myOLED.print("LFDKTYBT", CENTER, 57); // вывод текста русскими буквами
myOLED.setFont(MegaNumbers);
myOLED.print(String(bmp.readPressure()/133.322 , 1), CENTER, 15); // Отображение значения давления, с точностью до десятых
myOLED.update();
myOLED.clrScr();
  }
}

Отредактировано besteugen (2017-10-13 03:25:55)

0

2

Красивый такой шрифт "готический". В чем картинки рисовали ?

+1


Вы здесь » Паяльник » Микроконтроллеры » часы,влажность,температура,давление на OLED_l2C_RUS


создать форум