李家钛2506034309 Arduino Nano 温度报警装置一、项目概述本项目基于 Arduino Nano 开发板搭配 DS18B20 温度传感器、SSD1306 OLED 显示屏和有源蜂鸣器模块实现温度实时监测与报警功能。当环境温度超过 30°C 时蜂鸣器自动报警OLED 屏幕同步显示当前温度和报警状态。核心功能实时采集环境温度OLED 屏幕显示温度数值中文界面温度 30°C 时蜂鸣器报警温度 ≤ 30°C 时蜂鸣器静默传感器异常自动提示二、实验材料器材清单序号器材名称数量参考价格1Arduino Nano 3 开发板1¥152DS18B20 温度传感器模块1¥53SSD1306 OLED 显示屏模块128×64I2C1¥84有源蜂鸣器模块1¥35杜邦线公对母/母对母若干¥26面包板可选1¥3合计约¥36三、硬件连接3.1 引脚接线表DS18B20 温度传感器 → Arduino NanoDS18B20 引脚Arduino Nano 引脚VCC5VGNDGNDDQD2SSD1306 OLED 显示屏 → Arduino NanoOLED 模块引脚Arduino Nano 引脚VDD5VGNDGNDSCKA5SDAA4有源蜂鸣器模块 → Arduino Nano蜂鸣器模块引脚Arduino Nano 引脚VCC5VGNDGNDI/OD33.2 硬件连接示意图![所有模块共用 5V 和 GND屏幕用3.3v)数据线分别连接 D2DS18B20、A5/A4OLED I2C、D8蜂鸣器。四、软件编程4.1 所需库安装在 Arduino IDE 中安装以下库OneWire — DS18B20 单总线通信库菜单项目 → 加载库 → 管理库 → 搜索 OneWire → 安装DallasTemperature — DS18B20 温度读取库菜单项目 → 加载库 → 管理库 → 搜索 DallasTemperature → 安装Adafruit SSD1306 — SSD1306 OLED 驱动库菜单项目 → 加载库 → 管理库 → 搜索 Adafruit SSD1306 → 安装Adafruit GFX Library — 图形显示基础库菜单项目 → 加载库 → 管理库 → 搜索 Adafruit GFX → 安装4.2 完整源代码#includeWire.h#includeAdafruit_GFX.h#includeAdafruit_SSD1306.h#includeOneWire.h#includeDallasTemperature.h// OLED 配置#defineSCREEN_WIDTH128#defineSCREEN_HEIGHT64#defineOLED_RESET-1Adafruit_SSD1306display(SCREEN_WIDTH,SCREEN_HEIGHT,Wire,OLED_RESET);// 引脚配置#defineONE_WIRE_BUS2// DS18B20 数据引脚#defineBUZZER_PIN3// 有源蜂鸣器控制引脚#defineLED_PIN13// 板载LED报警引脚OneWireoneWire(ONE_WIRE_BUS);DallasTemperaturesensors(oneWire);// 温度报警阈值constfloatTEMP_THRESHOLD28.0;// 文字内容: 王奂熙 | 宽: 47 | 高: 16constunsignedcharbitmap_wanghuanxi[]PROGMEM{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x20,0x00,0x01,0xFF,0x0F,0xC3,0x49,0x00,0x00,0x10,0x08,0x42,0xC9,0x00,0x00,0x10,0x18,0xC3,0xAF,0x00,0x00,0x10,0x1B,0x23,0xA8,0x00,0x01,0xFF,0x11,0x22,0xE8,0x00,0x00,0x10,0x11,0x22,0x48,0x80,0x00,0x10,0x3F,0xF1,0xE7,0x00,0x00,0x10,0x06,0x80,0x00,0x00,0x00,0x10,0x0C,0x41,0x49,0x00,0x03,0xFF,0x38,0x32,0x24,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};// 非阻塞定时变量unsignedlonglastBlink0;unsignedlonglastTempUpdate0;bool alarmStatefalse;floatcurrentTemperature0.0;bool alarmActivefalse;constlongALARM_INTERVAL200;// 开机进度条动画voidshowBootAnimation(){constinttotalSteps40;constintstepDelay50;constintbarX10;constintbarY40;constintbarWidth108;constintbarHeight8;for(intstep0;steptotalSteps;step){intpercent(step*100)/totalSteps;intfillWidth(step*barWidth)/totalSteps;display.clearDisplay();display.setTextSize(2);display.setTextColor(SSD1306_WHITE);display.setCursor(20,10);display.print(Smart);display.setCursor(15,28);display.print(Monitor);display.drawRect(barX,barY,barWidth,barHeight,SSD1306_WHITE);if(fillWidth0){display.fillRect(barX,barY,fillWidth,barHeight,SSD1306_WHITE);}display.setTextSize(1);display.setCursor(50,barY12);display.print(percent);display.print(%);display.display();delay(stepDelay);}delay(200);}voidsetup(){Serial.begin(9600);pinMode(BUZZER_PIN,OUTPUT);digitalWrite(BUZZER_PIN,LOW);pinMode(LED_PIN,OUTPUT);digitalWrite(LED_PIN,LOW);sensors.begin();if(!display.begin(SSD1306_SWITCHCAPVCC,0x3C)){Serial.println(F(SSD1306 初始化失败));for(;;);}display.clearDisplay();showBootAnimation();display.clearDisplay();}voidloop(){unsignedlongnowmillis();if(now-lastTempUpdate1000){lastTempUpdatenow;sensors.requestTemperatures();currentTemperaturesensors.getTempCByIndex(0);if(currentTemperature-100){display.clearDisplay();display.setTextSize(2);display.setCursor(15,20);display.print(Sensor Err);display.display();digitalWrite(BUZZER_PIN,LOW);digitalWrite(LED_PIN,LOW);return;}alarmActive(currentTemperatureTEMP_THRESHOLD);display.clearDisplay();intnameW47;intnameH16;intnameX(128-nameW)/2;intnameY0;display.drawBitmap(nameX,nameY,bitmap_wanghuanxi,nameW,nameH,SSD1306_WHITE);display.setTextSize(1);display.setTextColor(SSD1306_WHITE);display.setCursor(30,nameY18);display.print(2506034324);display.setCursor(15,nameY38);display.print(Temp: );display.print(currentTemperature,1);display.print( C);display.setCursor(15,nameY52);if(alarmActive){display.print(ALARM! High Temp);}else{display.print(Normal Temp);}display.display();Serial.print(Temp: );Serial.print(currentTemperature,1);Serial.print( C Status: );Serial.println(alarmActive?ALARM:Normal);}if(alarmActive){if(now-lastBlinkALARM_INTERVAL){lastBlinknow;alarmState!alarmState;digitalWrite(BUZZER_PIN,alarmState);digitalWrite(LED_PIN,alarmState);}}else{digitalWrite(BUZZER_PIN,LOW);digitalWrite(LED_PIN,LOW);}}六、项目总结本项目通过 Arduino Nano 采集 DS18B20 温度数据在 SSD1306 OLED 上实时显示并实现超温蜂鸣器报警功能。项目涵盖了单总线通信、I2C 显示、汉字字模显示、数字输出控制等常用嵌入式开发技术是一个典型的传感器采集显示控制综合应用。可扩展方向增加湿度传感器如 DHT11/DHT22实现温湿度双监测添加 WiFi 模块如 ESP8266实现远程温度监控增加按键模块支持报警阈值可调记录历史温度数据绘制温度曲线](https://i-blog.csdnimg.cn/direct/a1d1d0ae49da4d0c8e0ce7d9ec5c58e6.jpeg#pic_center)

相关新闻

最新新闻

树莓派 libcamera IPA 框架解析

树莓派 libcamera IPA 框架解析

目录 整体架构概述 类总览 _Module模块类型契约 Algorithm 基类生命周期接口详解 1. init() 2. configure() 3. queueRequest() 4. prepare() 5. process() 算法整体时序 Factory 工厂与注册机制 AlgorithmFactoryBase<_Module> AlgorithmFactory<_Algo…

2026/8/30 11:48:29
LiteParse 锚点系统(Anchor)完全详解:左对齐、右对齐、居中如何精准追踪

LiteParse 锚点系统(Anchor)完全详解:左对齐、右对齐、居中如何精准追踪

LiteParse 锚点系统&#xff08;Anchor&#xff09;完全详解&#xff1a;左对齐、右对齐、居中如何精准追踪 【免费下载链接】liteparse A fast, helpful, and open-source document parser 项目地址: https://gitcode.com/GitHub_Trending/li/liteparse LiteParse 是一…

2026/8/30 11:48:29
Ardour视频音轨制作:影视配乐工作流程完整解析

Ardour视频音轨制作:影视配乐工作流程完整解析

Ardour视频音轨制作&#xff1a;影视配乐工作流程完整解析 【免费下载链接】ardour Mirror of Ardour Source Code 项目地址: https://gitcode.com/gh_mirrors/ar/ardour &#x1f3ac; Ardour作为一款功能强大的开源数字音频工作站&#xff0c;在视频音轨制作和影视配乐…

2026/8/30 11:48:29
用 Ghost 自托管 CMS 跑通博客、会员订阅和 Newsletter(完整指南)

用 Ghost 自托管 CMS 跑通博客、会员订阅和 Newsletter(完整指南)

用 Ghost 自托管 CMS 跑通博客、会员订阅和 Newsletter&#xff08;完整指南&#xff09; 【免费下载链接】Ghost Independent technology for modern publishing, memberships, subscriptions and newsletters. 项目地址: https://gitcode.com/GitHub_Trending/gh/Ghost …

2026/8/30 11:48:29
claude-skills Legacy Modernizer 实战:绞杀榕模式 5 步改造老系统

claude-skills Legacy Modernizer 实战:绞杀榕模式 5 步改造老系统

claude-skills Legacy Modernizer 实战&#xff1a;绞杀榕模式 5 步改造老系统 【免费下载链接】claude-skills 67 Specialized Skills for Full-Stack Developers. Transform Claude Code into your expert pair programmer. 项目地址: https://gitcode.com/GitHub_Trending…

2026/8/30 11:48:29
融合贝叶斯网络、LSTM与高斯过程回归的时间序列概率预测框架

融合贝叶斯网络、LSTM与高斯过程回归的时间序列概率预测框架

简介&#xff1a;本资源是一套面向机器学习与时间序列预测方向研究者及高年级本科生的综合实践材料&#xff0c;聚焦于融合贝叶斯建模思想与深度学习方法提升LSTM预测鲁棒性&#xff0c;特别适用于小样本、高不确定性场景下的回归建模任务。压缩包共278个文件&#xff0c;以201…

2026/8/30 11:43:28