csdn_article

张开发
2026/4/21 3:19:36 15 分钟阅读

分享文章

csdn_article
南京邮电大学电子装配实习从原理图到实物全流程实战记录 实习时间2026年春季 学校南京邮电大学 项目数据中心温湿度监测系统ESP8266 DHT11 OLED‍ 指导电子实训创新实践教研室一、实习概述本次电子装配实习以**“数据中心温湿度监测”**为主线贯穿了从方案设计 → 电路原理图绘制 → PCB设计 → 硬件焊接 → 固件开发 → 功能测试的全流程。核心任务使用ESP8266作为主控芯片通过DHT11温湿度传感器采集数据将数据实时显示在0.96寸 OLED 屏幕上二、方案设计2.1 项目背景随着数据中心规模的扩大温湿度监控成为基础设施运维的重要环节。本项目设计一个基于 ESP8266 的温湿度采集终端实时采集并显示机房环境数据。2.2 系统架构整个系统分为三个核心模块┌─────────────────────────────────────────────┐ │ ESP8266 主控芯片 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌─────────┐ │ │ │ DHT11 │ → │ 采集与 │ → │ OLED │ │ │ │ 传感器 │ │ 数据处理 │ │ 显示屏 │ │ │ └──────────┘ └──────────┘ └─────────┘ │ │ ↑ ↑ │ │ 采集信号 显示数据│ └─────────────────────────────────────────────┘2.3 关键器件选型模块器件说明主控ESP8266国产物联网芯片带WiFiGPIO丰富传感器DHT11数字温湿度传感器单总线通信显示0.96寸 OLED (SSD1306)I2C接口128×64分辨率电源USB 5V → 3.3V通过 BL1117 LDO 转换2.4 信号转换原理电路只能处理电信号温湿度不是电信号如何转换传感器Transducer/Sensor——一种检测装置感受被测量的信息并按一定规律变换成电信号输出。传感器的应用举例自动门利用人体红外微波感应开关烟雾报警器利用烟敏电阻测量烟雾浓度手机摄像头利用光学传感器捕获图像三、电路设计嘉立创EDA3.1 开发工具使用嘉立创EDA立创标准版进行原理图和PCB设计官网https://pro.lceda.cn/特点免费使用自带元器件库支持原理图→PCB一站式设计3.2 新建工程文件 → 新建 → 工程 → 工程标题学号姓名3.3 原理图设计要点模块一ESP8266最小系统关键电路包括电源电路USB 5V → BL1117 → 3.3V为ESP8266供电串口电路USB转UARTCH340用于程序烧录和调试复位电路RST按键BOOT选择电路GPIO0通过按键接地选择烧录模式模块二DHT11接口DHT11 (4针): VCC → 3.3V GND → GND DATA → GPIO5 (可自定义)模块三OLED接口OLED SSD1306 (4针, I2C协议): VCC → 3.3V GND → GND SCL → GPIO14 (I2C时钟) SDA → GPIO2 (I2C数据)3.4 PCB设计要点布局原则遵循先大后小先难后易核心控制芯片ESP8266居中放置接口连接器靠边布置便于接线操作电源滤波电容紧靠芯片VCC引脚走线尽可能短、直布线规则布线顺序信号线 → 电源线 → 地线线宽选择GND线 电源线 信号线GND线20mil电源线15mil信号线10mil双面板布线通过快捷键B底层/T顶层切换走线层常见错误⚠️错误类型说明未完成连接导线未连接到目标焊盘走线交叉同一层走线相互跨越元器件堆叠器件投影重叠四、开发板焊接4.1 元器件识别直插元器件电阻色环法读值色环黑棕红橙黄绿蓝紫灰白金银数值01234567890.10.01读取方法找到误差环与其他四环间距较大放在最右边从左到右依次读值电容容值计算3位数码表示法222 22 × 10² PF 2.2nF 0.0022μF 104 10 × 10⁴ PF 100nF 0.1μF贴片元器件贴片电阻读值三位数字法472→ 4700Ω151→ 150Ω含小数2R4→ 2.4ΩR15→ 0.15ΩIC芯片引脚识别壳体有凹陷圆点该圆点为起点按逆时针方向递增计数各引脚。4.2 焊接步骤焊接顺序先低后高ESP8266芯片最关键先焊BL1117 LDO贴片电阻注意方向贴片电容注意正负极按键开关三极管发光二极管注意正负极连接器直插电容注意极性贴片焊接技巧1. 其中一个焊盘先加锡 2. 用镊子将元器件推到焊盘上固定 3. 焊接元器件另一端 4. 最后回来补焊第一端4.3 焊接完成检查✅ 找指导老师打分✅ 用签字笔在开发板上写上学号和姓名✅ 正面拍照留档五、固件开发MicroPython5.1 开发环境项目软件/工具编程语言MicroPythonPython 3精简版开发工具uPyCraft驱动CH340USB转串口固件ESP8266 MicroPython固件5.2 固件烧录步骤安装CH340驱动ch341ser.exe打开uPyCraft选择正确的COM口点击烧录固件选择ESP8266芯片等待烧录完成5.3 基础测试程序LED闪烁importtimefrommachineimportPin ledPin(4,Pin.OUT)# 建立LED对象与GPIO4连接whileTrue:led.value(1)# 设置GPIO4为高电平time.sleep(0.5)# 延时0.5秒led.value(0)# 设置GPIO4为低电平time.sleep(0.5)# 延时0.5秒ESP8266可用GPIO口4、5、12、13、14⚠️ GPIO16用于DeepSleep唤醒有特殊限制OLED显示frommachineimportPin,I2Cimportssd1306# 初始化I2COLED连接在GPIO14(SCL)和GPIO2(SDA)oledssd1306.SSD1306_I2C(128,64,I2C(sclPin(14),sdaPin(2)))# 显示Hello Worldoled.fill(0)# 清屏oled.text(Hello World,10,10)oled.show()读取温湿度importdht dht11dht.DHT11(Pin(5))# DATA引脚连接GPIO5dht11.measure()# 执行测量print(dht11.temperature())# 获取温度℃print(dht11.humidity())# 获取湿度%5.4 WiFi功能连接WiFi热点importnetwork wlannetwork.WLAN(network.STA_IF)# 创建Station接口wlan.active(True)# 激活接口wlan.connect(WiFi名称,密码)# 连接WiFiprint(网络配置:,wlan.ifconfig())# 打印IP地址等信息设置WiFi热点importnetwork apnetwork.WLAN(network.AP_IF)# 创建AP接口ap.active(True)# 激活接口ap.config(essidETC,password12345678)# 设置热点名称和密码六、PWM应用——舵机控制6.1 PWM基本概念PWMPulse Width Modulation——脉冲宽度调制通过改变一个周期内高电平的持续时间比例来控制输出电压的平均值。占空比Duty Ratio 高电平时间 / 整个周期时间┌─────────────────────┐ │ 占空比 50% │ → 平均电压 3.3V × 50% 1.65V │ ████████████░░░░░░ │ └─────────────────────┘ ┌─────────────────────┐ │ 占空比 25% │ → 平均电压 3.3V × 25% 0.825V │ ██████░░░░░░░░░░░░ │ └─────────────────────┘6.2 舵机控制原理舵机利用PWM脉冲驱动参数值脉冲周期20ms50Hz高电平0.5ms→ 0°高电平1.5ms→ 90°高电平2.5ms→ 180°6.3 舵机控制代码frommachineimportPin,PWM# 创建PWM对象频率50HzservoPWM(Pin(5),freq50)# 占空比与角度的关系式需要实测标定# 0°: duty40左右, 90°: duty115左右, 180°: duty215左右defangle_to_duty(angle):return40int(angle*175/180)# 控制舵机旋转到指定角度servo.duty(angle_to_duty(0))# 旋转到 0°servo.duty(angle_to_duty(90))# 旋转到 90°servo.duty(angle_to_duty(180))# 旋转到 180°七、温湿度监测完整代码# main.py - 数据中心温湿度监测系统importdhtfrommachineimportPin,I2Cimportssd1306importtime# 初始化 # DHT11 温湿度传感器DATA连接GPIO5dht11dht.DHT11(Pin(5))# OLED 显示屏I2C接口# SCLGPIO14, SDAGPIO2i2cI2C(sclPin(14),sdaPin(2))oledssd1306.SSD1306_I2C(128,64,i2c)# 主循环 defmain():whileTrue:try:# 读取温湿度dht11.measure()tempdht11.temperature()humdht11.humidity()# OLED显示oled.fill(0)oled.text(Data Center,0,0)oled.text(Monitor v1.0,0,12)oled.text(-----------,0,24)oled.text(Temp:,0,36)oled.text(str(temp) C,50,36)oled.text(Hum:,0,48)oled.text(str(hum) %,50,48)oled.show()print(温度: {} C, 湿度: {} %.format(temp,hum))exceptOSErrorase:print(传感器读取错误:,e)time.sleep(2)# 每2秒刷新一次# 执行main()八、实习总结8.1 知识点回顾阶段核心技能方案设计系统架构设计、传感器原理、GPIO分配电路设计嘉立创EDA使用、原理图绘制、PCB布局布线硬件焊接直插/贴片焊接技巧、元器件识别固件开发MicroPython编程、GPIO控制、I2C通信功能测试传感器读取、OLED显示、PWM舵机控制8.2 经验总结经验1PCB布局时核心芯片放中间接口放边缘走线最短优先。经验2焊接贴片芯片时先固定一个引脚再逐个焊接其余引脚避免虚焊。经验3ESP8266的GPIO16有特殊限制不支持普通PWM需注意引脚分配。经验4MicroPython固件烧录失败时先检查COM口选择和芯片型号设置。8.3 拓展创新方向 增加WiFi连接实现数据上云MQTT协议 开发手机APP远程查看温湿度数据 增加历史数据存储SD卡或Flash 设置温湿度阈值报警功能九、附录常用快捷键嘉立创EDA功能快捷键放置导线W放置网络标签N切换到底层B切换到顶层T修改线宽Tab引脚连接汇总外设GPIO说明DHT11 DATAGPIO5温湿度传感器OLED SCLGPIO14I2C时钟OLED SDAGPIO2I2C数据LED板载GPIO4板载蓝色LED串口TXGPIO1程序烧录/调试串口RXGPIO3程序烧录/调试声明本文为南京邮电大学电子装配实习个人记录内容基于课堂PPT和实际操作经验整理供学习交流参考。如有疏漏欢迎指正。

更多文章