简要介绍(串口屏创建冰箱控制系统)
随着科技的不断进步,我们的家用电器越来越功能齐全且易于使用。
作为一名电子爱好者,我对家用电器的控制系统特别感兴趣。
我们的冰箱目前不具备任何人机交互界面功能,但如果冰箱配备人机交互界面,用户可通过触摸屏操作,实现对冰箱制冷效率的调节、显示冰箱内部当前温度、显示室内外当前温度,以及提供冰箱使用反馈(如运行天数、滤网寿命等),这将为用户带来极大的便利和实用性。
因此,今天我将简单地使用触摸屏制作一个冰箱控制界面。显示屏为STONE STVC050WT-01。
STONE STVC050WT – 01是一款5英寸触摸显示模块,分辨率为480 * 272。该模块已集成显示屏和触摸屏驱动程序,开发人员只需在官方TOOL设计软件中完成相关UI界面设计并生成编程文件,下载至STONE显示模块,再通过串口(RS232/RS485/TTL)与之通信,即可实现复杂的UI设计功能。
访问官方网站获取更多信息:
制作 UI 显示界面
在 TOOL 软件中创建项目
将新项目导入 STONE STVC050WT-01 开发软件 TOOL,然后导入设计的 UI 图片,添加对应的按钮和显示文本,效果如下:
制元件较少,仅包含数字文本显示控制和增量调整控制,但这两种控制已足以完成所需功能。
- UI界面上部为冰箱冷冻室的相关控制,显示当前温度、冰箱工作功率及调节功率的按键操作。“Fast”按钮表示单击后功率设置为最大。
- UI界面中部为冰箱相关控制区域,显示当前温度、冰箱工作功率及调节功率的键盘操作。 “快速”按钮表示单击后功率设置为最大。
- UI界面下方为状态显示区域,用户可直观查看冰箱运行天数、滤网寿命、室外温度及室内温度。
单片机通信
文本控件
涉及MCU通信相关内容时,需明确显示屏与MCU的通信机制及数据来源。
STONE STVC050WT-01通过串口与单片机通信。
此前在设计UI时,我们使用了显示控件。这些显示控件的显示数据实际上存储在STONE STVC050WT-01闪存的某个地址中。
在此,我们将展示温度显示。温度数据来自温度传感器,温度传感器连接至单片机。当单片机采集到温度数据后,只需通过串口将温度数据传输至显示控件的指定地址,即可在屏幕上实时显示温度数据。
数据写入指令可在STONE STVC050WT-01规格书中查阅。
该指令表示将0x00和0x04写入数据存储区域的0x0020地址:0xA5 0x5A 0x05 0x82 0x00 0x20 0x00 0x04
在此我使用单片机代码实现以下功能:
当单片机通过串口连接至显示屏后,单片机串口发送上述指令,即可修改显示屏中0x0020地址以上的数据,该地址对应冰箱的温度显示值。
其他所有显示数据的位置也遵循相同原理,只需更改数据地址即可。
按钮
本项目中使用了大量按钮
调节冰箱制冷功率实际上是修改中间显示控制地址中的值,因此我们可以使用单片机中的代码定期读取该显示控制的地址数据。读取地址的指令如下:
0xA5 0x5A 0x03 0x83 0x00 0x22
这条指令表示读取0x0022处的值,在本项目中表示读取用户调整后的冰箱制冷功率,随后单片微控制器控制外围设备执行相应动作。单片微控制器代码如下:
当需要读取显示控制数据时,只需注册读取指令,通过MCU向串口屏幕发送指令,串口屏幕将返回相关寄存器数据至微控制器,MCU接收数据后即可准备执行对应控制设备,此处为控制冰箱的制冷功率。
运行状态
运行状态包括
- 运行天数
- 滤芯寿命
- 室外温度
- 室内温度
要获取这些数据,除了第一项外,其他三项需要相应的传感器进行数据采集。
滤芯寿命采集传感器和温度传感器分别需要。
当单片机采集到这些数据后,通过串口将数据传输到指定的显示控制地址,显示控制上的数值相应变化。
运行天数可通过两种方式实现:
- 使用STONE STVC050WT-01串口显示屏的RTC直接在屏幕上显示数据
- 使用单片微计算机的RTC将数据传输至串口显示屏进行显示
STONE STVC050WT-01串口显示屏内置RTC,具体可参考STONE开发手册。
运行效果