#include <Wire.h>//用于支持I2C通信协议
#include <Adafruit_GFX.h>//2-3用于控制SSD1306 OLED显示屏
#include <Adafruit_SSD1306.h>
#include <OneWire.h>//4-5用于与DSB18B20温度传感器通信
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2//DS18B20传感器连接到的Arduino的数字引脚是2
#define OLED_RESET -1//表示OLED显示屏的复位引脚是-1
OneWire oneWire(ONE_WIRE_BUS); //初始化OneWire和DallasTemperature对象,用于与DS18B20传感器通信。
DallasTemperature sensors(&oneWire);
Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);//声明OLED
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);//初始化OLED显示屏,指定电源模式和I2C地址(0x3C)
display.setTextColor(WHITE);//设置OLED显示屏的文本颜色为白色
display.clearDisplay();//清屏
display.setTextSize(2); //设置字体大小
}
void loop() {
sensors.requestTemperatures();//请求从DS18B20传感器读取温度
float Temp;
Temp = sensors.getTempCByIndex(0);//从DS18B20传感器获取温度值(以摄氏度为单位),并存储在变量Temp中。
display.clearDisplay();//清屏
display.setCursor(30,0);//设置光标,接着显示文本“temp”和温度值,最后更新显示屏以显示内容。
display.print("temp");
display.setCursor(25,30);
display.print(Temp);
display.println(" C");
display.display();//开显示
}