内容介绍
内容介绍
一、创意方向
现在市面上普通电子温度计缺少图像展示功能,不能直观查看一段时间内的温度状况,本次借助贸泽电子M-Design创意设计竞赛来提交一个创意。要在采集温度的同时显示出一段时间内的温度折线变化。
二、设计思路及效果展示
本次完成的任务是任务三:无线通信、物联网
设计框图如下所示,使用ESP32采集BMP280的温度,采集到数据后,把数据以折线图的形式,展示到触摸屏上。
实物图如下图所示,是手指按压着传感器温度直线上升,当松开手后温度开始下降。
三、硬件介绍
本次活动用到了Comchip厂商的SS8050 三极管,用作ESP32下载程序时切换模式。
SS8050器件介绍
最大直流电集电极电流: 1.5 A 集电极—发射极最大电压 VCEO: 25 V
集电极—基极电压 VCBO: 40 V 发射极 - 基极电压 VEBO: 5 V
集电极—射极饱和电压: 500 mV
本次使用的屏幕为2.4英寸的触摸显示屏,BMP280传感器和ESP32模块。如下图所示。
四、关键代码及说明
如下所示:
1. BMP280初始化。
2. 触摸屏幕要进行初始化,初始化时要拉低对应的CS引脚。
// BMP280初始化
Wire.begin(I2C_SDA,I2C_SCL);
bool status;
//设置自定义 I2C 端口
if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
// 确保触摸屏和TFT屏幕的CS引脚拉高,防止初始化冲突
digitalWrite(XPT2046_CS, HIGH);
digitalWrite(TFT_CS, HIGH);
digitalWrite(XPT2046_CS, LOW);
// 初始化触摸屏
touchscreenSPI.begin(XPT2046_CLK, XPT2046_MISO, XPT2046_MOSI, XPT2046_CS);
touchscreen.begin(touchscreenSPI);
touchscreen.setRotation(2); // 设置触摸屏旋转
3. 读取BMP280的温度值并打印。
#if TEMP_CELSIUS
float bmp_temp = bmp.readTemperature();
#else
float bmp_temp = 1.8 * bmp.readTemperature() + 32;
#endif
//重置刻度范围(图表 y 轴)变量
scale_min_temp = 120.0;
scale_max_temp = -20.0;
// 将值移动到数组的左侧,并在末尾插入最新的读数
for (int i = 0; i < BMP_NUM_READINGS; i++) {
if(i == (BMP_NUM_READINGS-1) && float(bmp_temp) < 120.0) {
bmp_last_readings[i] = float(bmp_temp);
}
else {
bmp_last_readings[i] = float(bmp_last_readings[i + 1]); // Shift values to the left of the array
}
//获取数组中的最小值/最大值以设置刻度范围(图表 y 轴)
if((float(bmp_last_readings[i]) < scale_min_temp) && (float(bmp_last_readings[i]) != -20.0 )) {
scale_min_temp = bmp_last_readings[i];
}
if((float(bmp_last_readings[i]) > scale_max_temp) && (float(bmp_last_readings[i]) != -20.0 )) {
scale_max_temp = bmp_last_readings[i];
}
}
Serial.print("Min temp: ");
Serial.println(float(scale_min_temp));
Serial.print("Max temp: ");
Serial.println(float(scale_max_temp));
Serial.print("BMP last reading: ");
Serial.println(float(bmp_last_readings[BMP_NUM_READINGS-1]));
lv_draw_chart();
五、程序流程图
六、活动总结
很感谢2025贸泽电子M-Design创意设计竞赛活动,让我有机会通过这个活动做一些很有意义的事情,来挑战自己。这之中虽然遇到了一些难题,比如触摸屏和显示屏的引脚共用问题,好在努力查找问题,最终解决了问题,本次项目的成品略显粗糙,实用性还有能改进空间,我将有机会后续优化。
附件下载
TFT-TochLCD.rar
程序
团队介绍
个人
评论
0 / 100
查看更多
猜你喜欢
M-Design设计竞赛 - 8通道高精度温度采集器该项目使用了Platformio语言、立创EDA,实现了8通道工业级温度采集器的设计,它的主要功能为:使用立创EDA绘制了电路图,基于面包板模块化搭建硬件,采用Freertos框架设计多线程任务,支持串口AT指令。。
该项目使用了立创·ESP32S3R8N8,MAX31856模块 热电偶模块,实现了24位温度采集的设计,它的主要功能为:采用两路SPI通讯获取8通道24位温度采集,可串口最高5Hz输出8通道温度数据,Serialstudio可视化。。
该项目使用了ModBus 485 USB模块,实现了ModBus RTU的设计,它的主要功能为:采用ModBus Poll进行温度数据问询,方便用户进行数据查询与采集可视化。。
2345vor
64
M-Design设计竞赛 - 基于ESP32的墨水屏温湿度显示该项目使用了ESP32,实现了墨水屏温湿度显示的设计,它的主要功能为:基于ESP32和AHT20的墨水屏温湿度显示。
叶佳敏
19
M-Design设计竞赛 - 基于VFD显示屏与LVGL的自动校时电子钟该项目使用了STM32F407开发板与VFD显示屏,实现了自动校时电子钟的设计,它的主要功能为:支持自动校时的VFD时间显示。
枫雪天
22