一、前言

本文章在教师指导下,通过在课堂上通过分发的硬件和deepseek生成的代码,完成连接和调试。需要注意的是NANO开发板有蓝板和粉板,需要选择不同的processor(处理器);代码需要C语言的格式,在Arduino上运行。

二、硬件选择

1、Arduino Nano 开发板

在这里插入图片描述

2、0.96寸oled屏幕

在这里插入图片描述

3、DS18B20温度传感器

在这里插入图片描述

4、TapC-USB数据线

5、杜邦线若干

三、引脚连接

在这里插入图片描述

四、前置库的下载

在Arduino软件中点工具–管理库 搜索下载即可

在这里插入图片描述

五、代码

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// OLED屏幕设置
#define SCREEN_WIDTH 128 // OLED宽度,像素
#define SCREEN_HEIGHT 64 // OLED高度,像素
#define OLED_RESET     -1 // Reset pin
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// DS18B20温度传感器设置
#define ONE_WIRE_BUS 2 // DS18B20数据线连接的引脚
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

// 个人信息 - 请替换为你的实际学号和姓名
const char* studentID = "20230001";
const char* studentName = "张三";

void setup() {
  Serial.begin(9600);
  
  // 初始化OLED
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println(F("SSD1306分配失败"));
    for(;;); // 卡死在这里
  }
  
  // 显示初始画面
  display.display();
  delay(2000); // 暂停2秒
  
  // 初始化温度传感器
  sensors.begin();
  
  // 清屏
  display.clearDisplay();
}

void loop() {
  // 获取温度数据
  sensors.requestTemperatures(); // 发送温度获取命令
  float tempC = sensors.getTempCByIndex(0); // 获取第一个传感器的摄氏温度
  
  // 在串口监视器打印温度
  Serial.print("温度: ");
  Serial.print(tempC);
  Serial.println(" °C");
  
  // 在OLED上显示信息
  display.clearDisplay();
  
  // 设置文本大小和颜色
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  
  // 显示学号和姓名
  display.setCursor(0, 0);
  display.print("学号: ");
  display.println(studentID);
  display.print("姓名: ");
  display.println(studentName);
  
  // 显示温度
  display.setCursor(0, 30);
  display.setTextSize(2);
  display.print("温度: ");
  display.print(tempC);
  display.println(" C");
  
  // 显示更新时间和分隔线
  display.setTextSize(1);
  display.setCursor(0, 55);
  display.print("更新时间: ");
  display.print(millis() / 1000);
  display.println("s");
  display.drawLine(0, 25, 127, 25, SSD1306_WHITE);
  
  display.display();
  
  delay(2000); // 每2秒更新一次
}

六、成品图

在这里插入图片描述

在这里插入图片描述

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐