#include <Arduino.h>

#include<OneWire.h>
#include<DallasTemperature.h>
#include <U8g2lib.h>

#define BUS 15
OneWire onewire(BUS);
DallasTemperature sensors(&onewire);



#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

 // All Boards without Reset of the Display;
 //设置OLED屏通讯针脚
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ RX, /* data=*/ TX, /* reset=*/ U8X8_PIN_NONE);  

void setup(void) {
  u8g2.begin();
  u8g2.enableUTF8Print();   //启用对Arduino print()函数的UTF8支持
  //Serial.begin(115200);     //设置通讯波特率
  //sensors.begin();
  
}

char t_str[3];

float t;

void loop(void) {

  sensors.requestTemperatures();
  t = sensors.getTempCByIndex(0);    //读温度(摄氏度)
  
  strcpy(t_str, u8x8_u8toa(t, 2));   //将t转换为两位数的字符串

  u8g2.setFont(u8g2_font_unifont_t_chinese3);  //设置显示屏字体
  //u8g2.setFont(u8g2_font_wqy13_t_chinese3);
  u8g2.setFontDirection(0);                    //设置字体方向
  u8g2.clearBuffer();
  u8g2.setCursor(0, 15);
  u8g2.print("当前温度");
  u8g2.setCursor(50, 40);
  u8g2.print(t_str);  
  u8g2.sendBuffer();
  delay(500);
}