收藏 分销(赏)

基于μCOS-III+ST...Win的智能外卖柜系统设计_马凯凯.pdf

上传人:自信****多点 文档编号:292426 上传时间:2023-07-10 格式:PDF 页数:4 大小:2.40MB
下载 相关 举报
基于μCOS-III+ST...Win的智能外卖柜系统设计_马凯凯.pdf_第1页
第1页 / 共4页
基于μCOS-III+ST...Win的智能外卖柜系统设计_马凯凯.pdf_第2页
第2页 / 共4页
基于μCOS-III+ST...Win的智能外卖柜系统设计_马凯凯.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023.6电脑编程技巧与维护1概述随着科技的不断发展和人们生活的节奏提高,外卖行业飞速成长,外卖行业的用户群体规模也呈直线上升趋势。通常外卖配送都是由配送人员将外卖配送到指定位置,再通过打电话的方式通知用户取餐,这样的配送方式有时会给骑手和用户带来很大的困扰。假如一个学生在点外卖后去上课了,在配送人员将外卖送达的时候还没有下课,这时配送人员便只能选择原地等待或将外卖放在学生要求的指定位置。原地等待的话会浪费配送人员大量的时间;而放在指定位置外卖又有可能被人误拿。根据实际用户群体的需求,设计一套基于STM32+COS+STemWin框架 的智能外卖柜系统,系 统 通 过ATK-ESP8266模

2、块连接上指定网络后,接入原子云平台实时传输智能外卖柜的各种数据。2智能外卖柜系统组成智能外卖柜系统采用ST公司开发的STM32F103RCT6芯片作为主控芯片,在开发板上接入了液晶显示屏(LCD),通过温湿度传感器DHT11模块和红外反射传感器TCRT5000模块,实现对外卖柜的温湿度数据和柜门 开 关 状 态 数 据 的 采 集,将 采 集 到 的 数 据 经 过STM32F103RCT6芯 片 处 理 后,通 过 无 线 网 络ATK-ESP8266模块连接网络,将处理后的数据上传到原子云平台,系统架构如图1所示。3系统 COS-III 的移植和使用3.1COS-III 的移植COS-II

3、I是Micrium公司在2009推出的基于优先级的实时内核操作系统。该系统除了可裁剪、可固化、可剥夺的多任务系统外,还拥有很多重要的特性,例如,优先级数量不受限制、任务数量不受限制、内核对象数量不受限制等。首先,准备好官方移植好的STM32F1xx工程文件和COS-III的源码,可以在Micrium的官网上下载。工程文件和源码准备好后,在自己项目的工程文件目录中新建一个空文件夹,并重命名为COSIII以便于以后工程的修改,然后在新建好的COS-III文件夹中新建两个文件夹,一个命名为COS_BSP,另一个命名为COS_CONFIG,将官方移植工程例程中的COS-III、C-LIB和C-CPU复

4、制到COSIII文件夹中。随后,要 将 官 方 移 植 例 程 工 程 中COS-III文 件 夹 里 的os_cfg_app.h、os_cfg.h、os_app_hooks.h、os_app_hooks.c、lib_cfg.h、includes.h、cpu_cfg.h、app_cfg.h这8个文件复制到刚刚新建的COS_CONFIG文件夹中,将官方移植例程工程中BSP文件夹中的bsp.c和bsp.h文件移植到刚刚新建的COS_BSP文件夹中。在Cortex-M3中,有3种跟踪源,分别是数据跟踪,由DWT产生;指令跟踪,由ETM产生;调试消基金项目:武汉商学院大学生创新创业项目,项目名称:“健

5、康佳”智能柜系统(项目编号为202211654057)。作者简介:马凯凯(2002),男,本科,研究方向为物联网工程;亓相涛(1985),男,硕士,讲师,研究方向为物联网工程;王卫国(1979),男,本科,中级工程师,研究方向为电力系统自动化、物联网工程;何明睿(2001),男,本科,研究方向为物联网工程。基于 COS-III+STemWin 的智能外卖柜系统设计马凯凯1,亓相涛1,王卫国2,何明睿1(1.武汉商学院,武汉430056;2.山东鲁软数字科技有限公司,济南250000)摘要:以 STM32F103RCT6 为主控芯片,在硬件平台上加入嵌入式实时操作系统 COS-III,同时利用嵌

6、入式开发图形软件库 STemWin 设计出了便于进行用户操作的用户界面(UI)。通过板载的输入/输出(I/O)口采集温湿度传感器和红外传感器的数据,同时配合 ATK-ESP8266 模块实现设备联网,将采集到的数据同步上传至原子云平台,实现远程的数据传送功能。关键词:外卖柜;STM32 芯片;ESP8266 模块;COS-III 系统;STemWin 库图1智能外卖柜系统架构ATK-ESP8266模块DHT11模块TCRT5000模块STM32F103RCT6芯片LCD显示屏下载烧写模块电源供电模块统COS-III操作系统系统STemWIN操作界面122DOI:10.16184/prg.202

7、3.06.0282023.6电脑编程技巧与维护息,由ITM产生。在此系统中只使用DWT的CYCCNT寄存器(地址为0XE0001004)和CTRL控制寄存器(地址为0XE0001000)。要使用DWT,首先要将DEMCR寄存器(地址为0XE000EDFC)的TRCENA位(bit24)置为1,将这些寄存器的配置放置在bsp.c和bsp.h文件中。在os_cpu_c.c文件中,OSTaskStkInit()函数是用来堆栈初始化的,在这里要注意入栈顺序,硬件会自动将FPSCR、xPSR、PC、LR、R12、R0R3这些寄存器入栈,剩下的寄存器R4-R11需要手动入栈。在os_cfg_app.h文件

8、中,对COS-III内部的一些系统任务进行了配置,例如,COS-III的系统时钟节拍、任务优先级、任务堆栈等,这些系统任务的配置都采用宏定义来配置。现在回到自己的工程文件,将整个工程文件设置为支持COS。首先打开工程中的sys.h文件,这个文件有着 许 多 重 要 的 宏 定 义,找 到#define SYSTEM_SUP-PORT_OS 0这条语句,将后面的0改为1,此时整个工程便支持COS-III了。3.2COS-III 的使用系统使用COS-III创建了4个任务,第一个任务是起始任务,剩下的任务一个用来运行STemWin,一个用来运行ATK-ESP8266,还有一个负责LCD的触摸功能。

9、首先,依次定义这4个任务,并分配相应的优先级和堆栈大小。然后,在主文件main.c中分别编写这4个任务的函数。这些任务函数编写好后,在主函数main()中添加COS-III的初始化函数OSInit(&err),初始化函数添加后,紧接着添加函数OS_CRITICAL_ENTER()进入临界区,添加起始任务相关语句。起始任务创建好后,添加函数OS_CRITICAL_EXIT()退出临界区,最后添加OSStart(&err)函数开启COS-III。4STemWin 的移植和设计4.1STemWin 的移植在智能外卖柜的实际应用中,需要实现人机交互功能,那么UI的创建便是必不可少的。通常简单的UI可以

10、自己调用LCD的库函数来写代码。但是,像智能外卖柜这种复杂并且需要交互的界面,自己来写的话难度和耗费的时间都会比较大。StemWin是SEGGER公司授权给ST公司的emWin版本,STemWin不但针对ST的芯片做了优化,而且允许ST的芯片免费使用STemWin。项目选择采用STemWin进行能够人机交互的UI设计。首先在ST的官网下载STemWin的源码,在上节添加COS-III的工程文件中,添加一个名为STEMWIN的 文 件 夹,将STemWin源 码 文 件 中 的 内 容 复 制 到StemWin文件中,接着在工程中添加StemWin相应的源程序文件和头文件路径,如图2所示。STe

11、mWin源码添加到工程后,打开GUIConf.h文件,将“#define GUI_OS(0)”和#“define GUI_SUP-PORT_TOUCH(0)”(不支持操作系统和触摸)分别修改成“#define GUI_OS(1)”和“#define GUI_SUPPORT_TO-UCH(1)”(支持操作系统和触摸)。由于系统采用的STM32F103RCT6芯片自带的随机存储器(RAM)容量是64 kB,所以要修改STemWin的内存大小:打开文件GUIConf.c,将“#define GUI_NUMBYTES(1001024)”修改为“#define GUI_NUMBYTES(201024)”

12、。4.2STemWin 的界面设计StemWin提供了许多有用的控件,可以通过这些控件来完成所需要的界面设计。系统在进行STemWin界面设计时采用了GUIBuilder这个软件进行,这个软件是STemWin本身自带的,可以在这个软件上配合各种控件绘制好的界面,然后自动生成界面的框架代码。智能外卖柜启动后,自动连接系统事先设置好的WiFi,同时在主界面的右上角显示“WiFi is connect-ing”,提示智能柜正在连接WiFi和原子云服务器中。WiFi和原子云服务器连接成功后,右上角提示刷新,显示为“WiFi is OK!”。此时,智能外卖柜便已经成功连接上WiFi和原子云服务器,外卖配

13、送员和骑手可以对智能柜进行使用了。智能外卖柜的基本使用流程如图3所示。系统使用GUIBuilder设计2个UI,并且生成Win-dowDLG.c和FramewinDLG.c文件,其中一个是智能外图2添加STemWin源码的工程图图3智能外卖柜的基本使用流程智能外卖柜存外卖?NY输入手机尾号输入顾客手机尾号打开外卖柜向原子云服务器发送柜号和对应的手机尾号1232023.6电脑编程技巧与维护卖柜主界面的UI设计;另一个是数字键盘的UI设计。下一步,是将两个STemWin的界面组合在一起。首先要知道使用GUIBuilder生成的StemWin代码中包含4个部分,第1部分是界面控件的宏定义;第2部分是

14、控件的创建函数;第3部分是控件的回调函数;第4部分是界面的启动函数。打开刚刚生成的WindowDLG.c和FramewinDLG.c这两个文件,将WindowDLG.c文件中的控件宏定义复制到FramewinDLG.c文件 的控 件 宏 定 义的下面,这时会发现主界面的控件宏定义和键盘控件宏定义的标识符和字符串出现了相同部分。这时将主界面控件的宏定义进行修改:将ID_BUTTON_0修改 成ID_BUTTON_20、ID_EDIT_0修 改 成ID_EDIT_1、(GUI_ID_USER+0 x00)修改成(GUI_ID_USER+0 x10)、(GUI_ID_USER+0 x01)修改成(G

15、UI_ID_USER+0 x11)、(GUI_ID_USER+0 x02)修改成(GUI_ID_USER+0 x12)、(GUI_ID_USER+0 x03)修改成(GUI_ID_USER+0 x13)、(GUI_ID_USER+0 x04)修改成(GUI_ID_USER+0 x14)。修改后,控件宏定义的冲突便得到了解决,接下来继续分别将主界面的控件创建函数、控件回调函数、界面启动函数复制到FramewinDLG.c文件对应的位置,并将冲突部分按照刚刚修改控件宏定义的方式继续修改。4.3STemWin 的功能实现在智能外卖柜主界面中,放置了一个Radio单选按钮和一个Edxt文本输入框。单选

16、按钮用来选择当前输入的模式,当按钮选择为“Put”时,智能外卖柜为存放模式,进入存放模式后,单击文本输入框会弹出一个数字键盘,此时外卖配送人员将客户的手机尾号的后6位数字输入后,单击数字键盘上的“OK”按钮,在还有空柜的情况下便可开启一个柜门,同时智能外卖柜的ATK-ESP8266模块会自动地将当前开柜的柜号和该柜对应的手机尾号发送到原子云服务器中。当用户手机端App接收到的原子云数据中包含了自己手机尾号的信息时,便会在App上显示外卖已送达的消息,用户看见消息后便可以前往智能外卖柜取外卖。用户取外卖时,先将单选按钮选中“Get”再点文本输入框,弹出数字键盘后输入自己的手机尾号,输入完毕后单击

17、数字键盘上的“OK”按钮即可打开自己外卖所在的外卖柜。首 先 实 现 主 界 面 单 选 按 钮Radio的 功 能:单 击“Put”进入存放模式;单击“Get”进入取货模式。定义一个全局变量,它为0时代表存放模式;为1时代表取货模式,接着在主界面的回调函数中找到ID_RADIO_0控件,并在case WM_NOTIFICATION_VALUE_CHANGED下添加两行代码,sign_code=RADIO_GetValue(hItem)和hItem=WM_GetDialogItem(pMsg-hWin,ID_RA-DIO_0)。接着实现单击主界面Edit控件弹出数字键盘功能,同理找到主界面回调

18、函数中的ID_EDIT_1控件,并在“case WM_NOTIFICATION_CLICKED”中 添 加 一 行语句,GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),_cbDialog,WM_HBKWIN,0,0)。主界面的两个按钮功能实现完毕后,开始实现数字键盘的按键功能。先定义两个全局变量“char Edit_buff10;”和“char put_buff 10;”用来存储用户输入的数据。然 后 找 到 按 键 数 字0对 应 回 调 函 数 的case,“WM_NOTIFICATION_CLICKED”,添加

19、“if(strlen(Ed-it_buff)6)strcat(Edit_buff,“0”)和Edit_SetText(Ed-it_buff)”。这两条语句用来进行按键按下后的处理。当按下按键后,若当前字符串Edit_buff的位数小于6则在字符串Edit_buff的末尾加上“0”,再通过Edit_Set-Text(Edit_buff)函数将Edit_buff中的字符串写入Edit控件中。同理,其他除了“OK”按键都可以按照这种写法来写。当输入完手机尾号后,需要单击“OK”按键来进行确认,所以该按键添加了整体的逻辑判断功能。首先判断如果输入的数据小于6位数,则说明手机号输入有误,直接清空当前Ed

20、it_buff中的数据,在屏幕上给出提示信息并break出当前函数。接着判断标志sing_code的状态,为0时进行存放的相关操作;为1时进行取出的相关操作。智能外卖柜的主界面如图4所示。5数据的网络传输设计5.1柜内数据的获取智能外卖柜系统在每个柜内都接入了DHT11温湿度传感器模块,用来获取柜内的温湿度数据,该模块输出的是数字信号,拥有非常高的可靠性和稳定性。同图4智能外卖柜主界面(下转第144页)1242023.6电脑编程技巧与维护时,在每个柜子柜门的底部都嵌入了一个TCRT5000红外传感器模块,通过柜门底部的红外传感器模块,可以实时监测到当前柜子的开关状态。5.2ATK-ESP826

21、6 的连接系统的网络设计采用正点原子生产的无线串口通信模块ATK-ESP8266,该模块支持LVTTL串口,并且适用于3.3 V和5 V的单片机系统。相比于其他的ESP8266模块,它有着可以免费接入原子云服务器的优点。ATK-ESP8266模块一共有3个WiFi模式,AP模式、STA模式和AP+STA模式,此系统采用的是STA模式。首先,通过串口向ATK-ESP8266发送指令AT+CWMODE=1,将WiFi设置为STA模式;然后,连接设定好的WiFi,发送指令“AT+CWJAP”=“WIFI账号”,“WiFi密码”。连接后,发送指令:AT+ATKCLDSTA=“原子云设备编号”“原子云设

22、备密码”,连接原子云服务器。连接成功后,可以登录云网站,单击设备管理可以看到当前设备的状态变为已连接。成功连接原子云服务器后,智能外卖柜便不断向原子云服务器发送被占用柜子的柜号和对应的手机尾号、温湿度和柜门的开关状态。用户手机App接收到信号后,便会向柜内已经存放外卖的用户发送消息,提示柜号和柜内的温湿度状态。当用户使用自己的手机尾号成功开柜的15 s后若柜门若没关闭,则App会向用户发送提示,提醒用户及时关闭外卖柜柜门。6结语智能外卖柜系统是以STM32F103RCT6为主控芯片,通过使用实时嵌入式操作系统COS-III对界面显示、触摸控制、数据远程传送这3个功能进行控制,具有实时性强、灵敏

23、度高的优点。采用了StemWin进行界面的设计,为复杂的单片机图形设计提供了极大的便利,大大缩短了该系统的开发时间。同时使用正点原子生产的ATK-ESP8266无线通信模块进行远程数据通信,该模块具有低功耗、性能稳定、适应的温度范围广,并且还能够免费接入原子云平台的优点。系统经过后续测试后,功能与预期相符,能够实现存取、外卖的数据处理及无线数据传输的功能。相比于传统外卖柜,智能外卖柜拥有实时向用户上传柜内温湿度状态并且可以提示用户及时关闭柜门的优点。参考文献1刘壮林,俞纪良,王瑶,等.多功能智能外卖柜的设计研究J.电脑知识与技术(学术版),2022,18(4):118-119.2刘建强,李建义

24、,梁力水,等.基于COS-+EMWIN的自动驾驶系统设计J.廊坊师范学院学报(自然科学版),2018,18(4):38-42.3徐世翔,曹原.基于MQTT协议的阿里云IoT平台远程电压采集系统设计J.物联网技术,2023,13(1):134-136.4申小军,王乾伍,郝海林,等.无接触配送应成为高校校园外卖配送的常态J.山西青年,2020(14):35.5丁心怡.“Flash Show智能外卖柜”创业项目分析与商业设想J.时代金融,2020(12):98-99.6王世琼,张文姣.大学生外卖存取情况调查研究J.现代商业,2019(30):8-9.7许奇,柏宇,刘超凡.基于移动通信的智能外卖柜的设

25、计与实现J.中国新通信,2018,20(21):33.8刘天成,田学军.基于ESP8266与STM32的智能晾衣杆系统设计J.山西电子技术,2021(6):6-10.出现的,例如,搭建开发环境和后续迁移等问题。经过测试与运行充分证明此系统可以达到预期效果,可以充分利用云开发的优势、降低开发周期、节省成本,同时具有易维护、易传播、使用便捷等优点。参考文献1史剑.基于Spark MLlib的房屋估价系统D.大连:大连理工大学,2017.2徐丹丹.基于多元线性回归模型与BP神经网络的西安市房价预测对比研究J.房地产世界,2022(8):11-13.3罗博炜,洪智勇,王劲屹.多元线性回归统计模型在房价预测中的应用J.计算机时代,2020(6):51-54.4张倩.基于随机森林回归模型的住房租金预测模型的研究D.长春:东北师范大学,2019.5陈言凤.基于Hedonic模型的二手房价格评估系统的设计与实现D.合肥:安徽工业大学,2019.(上接第124页)144

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服