
文章目录一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 框架图1.6 原理图二、硬件选型2.1 STM32F103C8T62.2 OLED显示屏(IIC协议4针)2.3 蜂鸣器模块2.4 GPS+BDS双模定位模块2.5 锂电池供电模块2.6 Air780e模块2.7 stlink下载器2.8 PCB打板焊接购买材料【1】按键【2】单排排针【3】LED灯【4】电阻【5】跳线帽2.9 ADXL345 三轴加速度计模块2.10 继电器2.11 公对母杜邦线三、部署华为云物联网平台3.1 物联网平台介绍3.2 开通物联网服务3.3 创建产品(1)创建产品(2)填写产品信息(3)产品创建成功(4)添加自定义模型【1】创建服务ID【2】GPS 定位信息 字符串类型【3】BEEP 挪动报警 整型【4】Lock 行李箱锁 整型(5)创建完成3.4 添加设备(1)注册设备(2)根据自己的设备填写(3)保存设备信息(4)设备创建完成(5)设备详情3.5 MQTT协议主题订阅与发布(1)MQTT协议介绍(2)华为云平台MQTT协议使用限制(3)主题订阅格式(4)主题发布格式3.6 MQTT三元组(1)MQTT服务器地址(2)生成MQTT三元组3.7 模拟设备登录测试(1)填入登录信息(2)打开网页查看(3)MQTT登录测试参数总结3.8 项目凭证3.9 创建IAM账户3.10 获取影子数据四、Qt开发入门与环境搭建4.1 Qt是什么?4.2 Qt版本介绍4.3 Qt开发环境安装4.4 开发第一个QT程序4.5 调试输出4.6 QT Creator常用的快捷键4.7 QT帮助文档4.8 UI设计师使用4.9 按钮控件组4.10 布局控件组4.11 基本布局控件4.12 UI设计师的布局功能五、上位机开发5.1 Qt开发环境安装5.2 新建上位机工程5.3 切换编译器5.4 编译测试功能5.5 设计UI界面与工程配置【1】打开UI文件【2】开始设计界面5.6 设计代码**(1) 获取华为云IoT的Token****(2) 处理网络请求响应****(3) 查询设备属性****(4) 发送控制命令到设备****(5) 百度地图集成****(6) 自动更新与手动控制****(7) 辅助功能****总结功能流程**5.5 编译Windows上位机5.6 配置Android环境【1】选择Android编译器【2】创建Android配置文件【3】配置Android图标与名称【3】编译Android上位机六、STM32代码设计6.1 硬件连线说明6.2 硬件原理图6.3 硬件组装过程6.4 硬件实物图6.5 KEIL工程6.6 程序下载6.7 程序正常运行效果6.8 取模软件的使用6.9 4G模块与服务器通信**(1) 打印经纬度信息到串口****(2) 组合JSON格式的报文数据****(3) 通过MQTT协议发布数据到云端****(4) 整体功能流程总结****(5) 关键变量说明****(6) 注意事项**6.10 硬件初始化**(1) 串口1初始化****(2) 按键初始化****(3) LED初始化****(4) 系统启动提示****(5) 串口3初始化(GPS模块)****(6) 串口2初始化(4G模块)****(7) 蜂鸣器初始化****(8) LED状态指示初始化****(9) 硬件初始化(报警灯)****(10) OLED显示屏初始化****(11) OLED清屏****(12) ADXL345加速度传感器初始化****总结**6.11 4G模块-初始化**(1) 初始化变量与OLED清屏****(2) 4G模块硬件检测(带重试机制)****(3) 4G模块初始化配置(带重试机制)****(4) GPRS网络服务初始化(带重试机制)****(5) 短信服务初始化(带重试机制)****(6) MQTT协议初始化(带重试机制)****(7) MQTT主题订阅(带重试机制)****(8) 标记连接成功与声光提示****代码逻辑总结****关键设计特点**6.12 按键逻辑代码**(1) 板载按键检测****(2) 锁行李箱功能(按键1按下)****(3) 输入密码页面(按键2或3按下)****代码逻辑总结****关键设计特点**6.13 数据采集与显示**(1) 轮询时间到达判断****(2) 读取三轴加速度数据****(3) 计算倾斜角度****(4) 锁行李箱状态下的防盗检测****(5) 组合数据上传MQTT云端****(6) 显示主页面****代码逻辑总结****关键设计特点**6.14 处理上位机下发的数据**(1) 4G模块数据接收标志检测****(2) 解析开锁指令(Lock=1)****(3) 解析关锁指令(Lock=0)****(4) 解析声光寻行李箱指令(LED=1)****(5) 解析属性修改请求响应****(6) 清理接收缓冲区****代码逻辑总结**七、使用STM32代码的流程以及注意事项7.1 第1步7.2 第2步7.3 第3步八、代码移植更改【1】STM32代码【2】Qt上位机代码【3】QT代码编译注意一、前言1.1 项目介绍【1】项目开发背景随着全球化进程的加快与人们生活水平的提高,旅游、商务出行已成为现代生活的重要组成部分。行李箱作为出行中最基础且不可或缺的物品,其安全性与智能化需求日益突出。传统行李箱仅具备存储与携带功能,无法提供有效的防盗、定位或远程管理手段。一旦在机场、火车站、地铁等公共场所丢失或被盗,往往难以在短时间内找回,给用户造成财产损失与出行困扰。随着科技的发展,将物联网与智能控制技术应用于行李箱防盗管理,已成为一种必然趋势。近年来,嵌入式技术与物联网(IoT)技术的迅速发展为智能行李箱的设计提供了坚实的技术基础。STM32系列单片机凭借其高性能、低功耗以及丰富的外设接口,成为智能硬件控制的理想选择。同时,4G网络通信技术的普及使得设备能够在无Wi-Fi环境下实现稳定的远程数据传输与云端管理。基于此,结合GPS定位技术、加速度姿态检测技术以及MQTT物联网通信协议,设计出一款集防盗报警、实时定位、远程控制、声光寻箱等功能于一体的智能行李箱,具有现实应用价值。在安全性方面,传统行李箱防盗机制往往依赖机械锁或简易密码锁,无法实现实时报警与远程通知。本项目通过ADXL345加速度传感器实时检测行李箱的姿态变化,当箱体被非法移动时,可立即触发蜂鸣器报警,并通过Air780e 4G模块上传云端报警信息,及时提醒用户,从而有效提升防盗能力。在定位与通信方面,项目采用ATGM336H-5N GPS模块实现高精度定位,结合4G模块与华为云IOT平台,实现行李箱状态数据的实时上传与远程控制,为用户提供安全、智能的出行保障。此外,智