基于STM32设计的森林火灾监测系统

文章目录

  • 一、前言
    • 1.1 项目介绍
      • 【1】项目开发背景
      • 【2】设计实现的功能
      • 【3】项目硬件模块组成
      • 【4】研究背景与意义
    • 1.2 设计思路
    • 1.3 系统功能总结
    • 1.4 开发工具的选择
      • 【1】设备端开发
      • 【2】上位机开发
    • 1.5 参考文献
  • 二、部署华为云物联网平台
    • 2.1 物联网平台介绍
    • 2.2 开通物联网服务
    • 2.3 创建产品
      • (1)创建产品
      • (2)填写产品信息
      • (3)产品创建成功
      • (4)添加自定义模型
    • 2.4 添加设备
      • (1)注册设备
      • (2)根据自己的设备填写
      • (3)保存设备信息
      • (4)设备创建完成
      • (5)设备详情
    • 2.5 MQTT协议主题订阅与发布
      • (1)MQTT协议介绍
      • (2)华为云平台MQTT协议使用限制
      • (3)主题订阅格式
      • (4)主题发布格式
    • 2.6 MQTT三元组
      • (1)MQTT服务器地址
      • (2)生成MQTT三元组
    • 2.7 模拟设备登录测试
      • (1)填入登录信息
      • (2)打开网页查看
      • (3)MQTT登录测试参数总结
    • 2.8 创建IAM账户
    • 2.9 获取影子数据
  • 三、上位机开发
    • 3.1 Qt开发环境安装
    • 3.2 新建上位机工程
    • 3.3 设计UI界面与工程配置
      • 【1】打开UI文件
      • 【2】开始设计界面
    • 3.5 编译Windows上位机
    • 3.6 配置Android环境
      • 【1】选择Android编译器
      • 【2】创建Android配置文件
      • 【3】配置Android图标与名称
      • 【3】编译Android上位机
  • 四、STM32代码开发
      • 代码说明
      • 运行逻辑
  • 五、总结

一、前言

本项目设计里用到的全部工具软件、模块的源代码都可以在这里下载(放在网盘里了)。

https://pan.quark.cn/s/145a9b3f7f53

1.1 项目介绍

【1】项目开发背景

森林火灾是全球范围内频繁发生的自然灾害之一,不仅对生态环境造成严重破坏,还可能威胁到人类的生命财产安全。传统的森林防火措施主要依赖人工巡逻和地面观测站,这种方式效率低下,且在森林中难以实现全面覆盖。随着物联网技术的发展,智能监测系统逐渐成为预防森林火灾的有效手段。基于此背景,设计了一款基于STM32F103RCT6的森林火灾监测系统,通过现代传感技术和无线通讯技术提高森林火灾预警的及时性和准确性。

该系统集成了多种传感器,包括用于检测环境温度和湿度的SHT30传感器、能够识别火焰的火光检测传感器以及用于监测烟雾浓度的MQ2气体传感器。这些传感器可以实时收集环境数据,一旦检测到异常情况如温度骤升、烟雾浓度增加或出现火焰等,将立即启动蜂鸣器发出警报,同时通过Air724UG-4G模块将数据上传至华为云IOT物联网服务器。这一过程不仅实现了对森林火灾的快速响应,也为后续的救援工作提供了准确的信息支持。

为了便于森林管理员无论身处何地都能及时接收到火灾报警信息,本项目还特别开发了适用于Android手机和平板电脑的应用程序及Windows上位机软件,用户可以通过这些客户端实时查看由监测点上传的数据,了解各监测区域的环境状况。此外,考虑到森林地区的特殊地理条件,系统设计时充分考虑了能源供应的问题,采用了太阳能充电方案,确保监测系统能够在远离电网的野外长期稳定运行。

综上所述,本项目构建一个高效、可靠、易于管理的森林火灾监测平台,通过集成先进的传感技术和网络通信技术,为森林防火提供了一种新的解决方案,有助于提升森林防火工作的智能化水平,减少森林火灾造成的损失。

image-20241104165914366

image-20241104170150719

【2】设计实现的功能

(1)环境温湿度监测:通过SHT30传感器实时检测森林内的环境温度和湿度,并将数据发送给主控芯片STM32F103RCT6进行处理。

(2)火焰检测:使用火光检测传感器监控森林区域内是否有火焰出现,一旦发现火焰,立即将信号传递给主控芯片,作为火灾预警的一部分。

(3)烟雾浓度监测:利用MQ2气体传感器检测空气中的烟雾浓度,当烟雾浓度超过预设阈值时,向主控芯片发送警报信号。

(4)自动报警功能:当系统检测到火焰或烟雾浓度超标时,会自动激活有源蜂鸣器发出声音警报,提醒现场人员注意安全并采取相应措施。

(5)数据远程传输:通过Air724UG-4G模块,采用MQTT协议将采集到的环境参数和报警信息上传至华为云IOT物联网服务器,实现数据的远程监控和管理。

(6)移动设备实时监控:开发了专门的Android手机APP和Windows上位机软件,森林管理员可以通过这些客户端实时查看监测点上传的数据,包括温度、湿度、烟雾浓度等信息,以及接收火灾报警通知。

(7)OLED显示屏本地显示:在监测站点安装0.96寸SPI接口OLED显示屏,用于实时显示环境参数和系统状态,方便护林员现场检查设备工作情况和传感器读数是否正常。

(8)太阳能充电支持:为了解决森林地区供电不便的问题,系统配备了太阳能充电装置,确保即使在偏远无电源的情况下也能持续运行。

【3】项目硬件模块组成

(1)主控模块:选用STM32F103RCT6作为系统的主控芯片,负责协调各个传感器的工作、处理数据、控制报警以及与4G模块进行数据交换。

(2)环境温湿度传感器模块:采用SHT30数字温湿度传感器,用于精确测量环境中的温度和湿度,并将数据传输给主控芯片进行处理。

(3)火焰检测模块:使用火焰传感器来检测是否有明火出现,一旦检测到火焰,立即将信号反馈给主控芯片,作为火灾预警的重要依据。

(4)烟雾浓度检测模块:通过MQ2气体传感器监测空气中烟雾的浓度,当烟雾浓度达到一定阈值时,触发报警机制。

(5)报警模块:采用高电平触发的有源蜂鸣器,当系统检测到火灾风险时,蜂鸣器将自动发出警报声,提醒周边人员注意安全。

(6)数据传输模块:利用Air724UG-4G模块,结合MQTT协议,将采集到的数据上传至华为云IOT物联网服务器,实现远程监控和管理。

(7)本地数据显示模块:配备0.96寸SPI接口的OLED显示屏,用于实时显示环境参数(如温度、湿度、烟雾浓度等)和系统状态,便于现场工作人员快速了解设备运行情况。

(8)太阳能充电模块:设计了太阳能充电系统,包括太阳能电池板、充电控制器和蓄电池,以解决森林内无固定电源供应的问题,保证监测系统长时间稳定运行。

(9)外部电源模块:为了确保系统的可靠性,在太阳能充电模块之外,还提供了5V 2A的外置电源供电选项,可以在需要时为系统提供电力支持。

【4】研究背景与意义

森林火灾是全球面临的一大环境挑战,不仅会导致严重的生态破坏,还会造成巨大的经济损失和人员伤亡。传统的森林防火措施多依赖于人工巡逻和定点监测,这种模式效率低下,覆盖范围有限,难以及时发现和应对突发火灾。近年来,随着物联网、大数据、云计算等技术的迅速发展,智能监测系统开始应用于森林防火领域,极大地提高了火灾预警的准确性和响应速度。基于此背景,本项目提出了一套基于STM32F103RCT6的森林火灾监测系统,旨在通过集成先进的传感器技术和无线通信技术,构建一个高效、可靠的火灾预警平台。

本项目的设计实现了对森林环境中温度、湿度、烟雾浓度和火焰等关键参数的实时监测,并通过4G网络将数据上传至云端,利用华为云IOT平台进行数据分析和处理。当监测到异常情况时,系统能够自动触发警报,并通过移动应用和上位机软件将警报信息推送给森林管理员,确保他们能够第一时间了解火灾情况并采取相应的应急措施。此外,系统还支持太阳能充电,解决了森林内部署监测设备时面临的供电难题,保证了系统的长期稳定运行。

研究的意义在于,本项目不仅为森林防火提供了一种新的解决方案,还促进了物联网技术在环境保护领域的应用和发展。通过精准监测和及时预警,可以有效降低森林火灾的发生率,减少火灾造成的生态破坏和经济损失,保护人民生命财产安全。同时,该项目的成功实施也将为其他类似应用场景提供参考,推动智慧林业的发展,助力实现可持续发展目标。

1.2 设计思路

在设计基于STM32F103RCT6的森林火灾监测系统时,首先明确了系统的主要目标:实现对森林环境中温度、湿度、烟雾浓度和火焰的实时监测,并能够及时发出警报,同时将数据上传至云端,以便森林管理员能够远程监控和管理。为了达成这一目标,在设计过程中遵循了以下几个核心思路:

选择高性能的主控芯片STM32F103RCT6作为系统的控制中心。STM32F103RCT6具有强大的处理能力和丰富的外设接口,能够高效地处理来自多个传感器的数据,并支持复杂的算法运算,满足系统对数据处理的高要求。此外,它还具备低功耗特性,适合长时间在野外运行。

选用了多种高精度传感器来实现对环境参数的全面监测。SHT30温湿度传感器能够提供准确的温度和湿度数据;火焰传感器和MQ2烟雾传感器则分别用于检测火焰和烟雾浓度。这些传感器的选择确保了系统能够及时捕捉到火灾的早期迹象,从而提前发出预警。

为了实现数据的远程传输,采用了Air724UG-4G模块。该模块支持4G网络,能够通过MQTT协议将采集到的数据上传至华为云IOT物联网服务器。这样,森林管理员无论身处何地,都可以通过手机APP或Windows上位机软件实时查看监测数据和接收警报信息,大大提高了火灾响应的速度和效率。

在用户界面方面,设计了一个0.96寸的SPI接口OLED显示屏,用于显示本地采集的环境参数和系统状态。这不仅方便了现场工作人员的日常维护和检查,还能在没有网络连接的情况下提供重要的信息反馈。

考虑到森林地区的特殊环境,特别加入了太阳能充电功能。通过太阳能电池板将太阳能转换为电能,并储存在蓄电池中,为整个系统供电。这一设计不仅解决了偏远地区供电困难的问题,还使得系统更加环保和可持续。

为了确保系统的稳定性和可靠性,在软件设计中加入了多种故障检测和自我恢复机制。例如,当传感器发生故障时,系统能够自动切换到备用传感器;当网络连接中断时,系统会自动尝试重新连接。这些措施有效提高了系统的鲁棒性,确保其在复杂多变的自然环境中能够长期稳定运行。

本项目的设计思路围绕着高效、可靠、易用的目标展开,通过集成先进的传感技术、无线通信技术和太阳能供电技术,构建了一个完整的森林火灾监测解决方案。这不仅有助于提高森林防火的智能化水平,也为生态环境保护提供了有力的技术支持。

1.3 系统功能总结

功能模块描述
环境温湿度监测通过SHT30传感器实时检测森林内的环境温度和湿度,并将数据发送给主控芯片进行处理。
火焰检测使用火焰传感器监控森林区域内是否有火焰出现,一旦发现火焰,立即将信号传递给主控芯片。
烟雾浓度监测利用MQ2气体传感器检测空气中的烟雾浓度,当烟雾浓度超过预设阈值时,向主控芯片发送警报信号。
自动报警功能当系统检测到火焰或烟雾浓度超标时,会自动激活有源蜂鸣器发出声音警报,提醒现场人员注意安全并采取相应措施。
数据远程传输通过Air724UG-4G模块,采用MQTT协议将采集到的环境参数和报警信息上传至华为云IOT物联网服务器,实现数据的远程监控和管理。
移动设备实时监控开发了专门的Android手机APP和Windows上位机软件,森林管理员可以通过这些客户端实时查看监测点上传的数据,包括温度、湿度、烟雾浓度等信息,以及接收火灾报警通知。
OLED显示屏本地显示在监测站点安装0.96寸SPI接口OLED显示屏,用于实时显示环境参数和系统状态,方便护林员现场检查设备工作情况和传感器读数是否正常。
太阳能充电支持配备太阳能充电系统,包括太阳能电池板、充电控制器和蓄电池,以解决森林地区供电不便的问题,确保监测系统在偏远无电源的情况下也能持续运行。
外部电源模块提供5V 2A的外置电源供电选项,可以在需要时为系统提供电力支持,确保系统的可靠性。

1.4 开发工具的选择

【1】设备端开发

STM32的编程语言选择C语言,C语言执行效率高,大学里主学的C语言,C语言编译出来的可执行文件最接近于机器码,汇编语言执行效率最高,但是汇编的移植性比较差,目前在一些操作系统内核里还有一些低配的单片机使用的较多,平常的单片机编程还是以C语言为主。C语言的执行效率仅次于汇编,语法理解简单、代码通用性强,也支持跨平台,在嵌入式底层、单片机编程里用的非常多,当前的设计就是采用C语言开发。

开发工具选择Keil,keil是一家世界领先的嵌入式微控制器软件开发商,在2015年,keil被ARM公司收购。因为当前芯片选择的是STM32F103系列,STMF103是属于ARM公司的芯片构架、Cortex-M3内核系列的芯片,所以使用Kile来开发STM32是有先天优势的,而keil在各大高校使用的也非常多,很多教科书里都是以keil来教学,开发51单片机、STM32单片机等等。目前作为MCU芯片开发的软件也不只是keil一家独大,IAR在MCU微处理器开发领域里也使用的非常多,IAR扩展性更强,也支持STM32开发,也支持其他芯片,比如:CC2530,51单片机的开发。从软件的使用上来讲,IAR比keil更加简洁,功能相对少一些。如果之前使用过keil,而且使用频率较多,已经习惯再使用IAR是有点不适应界面的。

image-20221210225339928

【2】上位机开发

上位机的开发选择Qt框架,编程语言采用C++;Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。Qt能轻松创建具有原生C++性能的连接设备、用户界面(UI)和应用程序。它功能强大且结构紧凑,拥有直观的工具和库。

image-20230218001243591

image-20230218001219105

1.5 参考文献

1. 1. 厦门大学航空航天学院2. 闽西职业技术学院信息工程学院.改进TDM-LoRa低功耗森林火灾监测预警系统[J].福州大学学报(自然科学版),2024. 
2. 武风波,张会可,吕茜彤.森林防火监测系统的设计与开发[J].现代电子技术,2018. 
3. 杨春迪,陆娟,储增帮等.基于STM32F103RBT6单片机的新型森林火灾监测报警装置研究[J].科技创新与生产力,2023. 
4. 曾旻,唐治东,张保磊.基于STM32控制电路及Atlas 200加速模块的森林防火机器人集成应用[J].中国仪器仪表,2023. 
5. 徐崇奇,解建国,毕佳琦等.基于STM32的智能火灾监测及灭火系统设计[J].河南科技,2022. 
6. Wu Fengbo, L. Xitong et al. “Design and Development of Forest Fire Monitoring Terminal.2018 International Conference on Sensor Networks and Signal Processing (SNSP)(2018). 
7. 安徽三联学院机器人工程学院.森林灭火辅助机器人设计[J].技术与市场,2021. 
8. 张会可.基于STM32的森林防火监测终端的设计与开发[D].西安科技大学,2017. 
9. Min Yu, Taoyun Zhou et al. “Design of Forest Security Defense System Based on Beidou-Positioning.” Journal of Physics: Conference Series(2021). 
10. 杨晨,祁晋东,谢鑫焱等.基于无线传感网络的智能森林火灾防控系统的设计[J].数字技术与应用,2022. 
11. 秦钰林,周若麟,张珂欣等.基于NB-IoT窄带通信和多传感器组网技术的森林火灾监测预警系统[J].物联网技术,2020. 
12. 李春成,杨云,陈亮等.自供电低功耗森林火灾无线监测系统[J].电子器件,2021. 
13. Rohan Arunkumar, Atul Kumar Dubey. “FireSense: Integrating Deep Learning with ESP32 Microcontrollers for Enhanced Forest Fire Surveillance.2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)(2024). 
14. 王洋.基于嵌入式的森林火灾监测平台设计与实现[D].大连交通大学,2021. 
15. Ziliu Ye, Fuwen Su et al. “Intelligent Fire-fighting robot based on STM32.2019 Chinese Automation Congress (CAC)(2019). 
16. 蔡志伟,张伟光,高亮等.基于物联网的森林环境智能监测系统终端监测节点的设计[J].哈尔滨师范大学自然科学学报,2019. 
17. 大连民族大学信息与通信工程学院.基于物联网技术的智能山火报警系统[J].智能计算机与应用,2024. 
18. 蒋鹏.基于STM32的无线遥控山区物资运输车研究与设计[J].内燃机与配件,2023. 
19. 王强强,李玉丽.基于物联网云平台的火灾监测报警系统设计 附视频[J].技术与市场,2024. 
20. Tammana Viswanadha Muralidhar, Vytla Venkata Sai Sandeep et al. “An IoT based Real Time Forest Fire Detection & Alerting System Using LoRa Communication.2024 11th International Conference on Signal Processing and Integrated Networks (SPIN)(2024). 
21. Zhao Minhua. “A Wireless Fire Detection and Alarm System Based on the Information Fusion Technology.” Electronic Science and Technology(2012). 
22. 李光辉,赵军,王智.基于无线传感器网络的森林火灾监测预警系统[J].传感技术学报,2006. 
23. 赵英,陈淑娟.基于多传感器数据融合的火灾预警系统[J].现代电子技术,2010. 
24. 刘燕燕,杨帮华,丁丽娜等.基于STM32的红外火灾探测系统设计[J].计算机测量与控制,2013. 
25. L. Niu, Zhubing Hu. “Information Fusion Technology Based on Wireless Fire Detection and Alarm System.” Advanced Materials Research(2013). 
26. Yazhou Zhong, Fei Wu et al. “Design of smoke alarm system based on STM32.” International Journal of Engineering Research and(2017). 
27. 朱黎,全斐,王磊等.基于无线网络的环境监测系统[J].电子制作,2022. 
28. 曲惠泽,魏东辉.基于STM32的林间信息采集机器人[J].林业机械与木工设备,2019. 
29. Cao Bin-qia. “Design of data acquisition system based on STM32+FPGA.” Computer Engineering and Design(2014). 
30. K. Zhao. “Design of Distributed Smoke and Heat Detector Based on STM32.” Control and Instruments in Chemical Industry(2015). 

二、部署华为云物联网平台

华为云官网: https://www.huaweicloud.com/

打开官网,搜索物联网,就能快速找到 设备接入IoTDA

image-20221204193824815

2.1 物联网平台介绍

华为云物联网平台(IoT 设备接入云服务)提供海量设备的接入和管理能力,将物理设备联接到云,支撑设备数据采集上云和云端下发命令给设备进行远程控制,配合华为云其他产品,帮助快速构筑物联网解决方案。

使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。

物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。

设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台,平台也可以将控制命令下发给设备。

业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景。

img

2.2 开通物联网服务

地址: https://www.huaweicloud.com/product/iothub.html

image-20221204194233414

点击立即创建

image-20240117134653452

正在创建标准版实例,需要等待片刻。

image-20240117134729401

创建完成之后,点击实例名称。 可以看到标准版实例的设备接入端口和地址。

image-20240425180759670

在上面也能看到 免费单元的限制。

image-20240425180817704

开通之后,点击总览,也能查看接入信息。 当前设备准备采用MQTT协议接入华为云平台,这里可以看到MQTT协议的地址和端口号等信息。

image-20240425180845461

总结:

端口号:   MQTT (1883)| MQTTS (8883)	
接入地址:ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com

**根据域名地址得到IP地址信息: **

打开Windows电脑的命令行控制台终端,使用ping 命令。ping一下即可。

Microsoft Windows [版本 10.0.19045.4170]
(c) Microsoft Corporation。保留所有权利。C:\Users\11266>ping ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com正在 Ping ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com [117.78.5.125] 具有 32 字节的数据:
来自 117.78.5.125 的回复: 字节=32 时间=35ms TTL=93
来自 117.78.5.125 的回复: 字节=32 时间=36ms TTL=93
来自 117.78.5.125 的回复: 字节=32 时间=36ms TTL=93
来自 117.78.5.125 的回复: 字节=32 时间=39ms TTL=93117.78.5.125 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):最短 = 35ms,最长 = 39ms,平均 = 36msC:\Users\11266>

MQTT协议接入端口号有两个,1883是非加密端口,8883是证书加密端口,单片机无法加载证书,所以使用1883端口比较合适。 接下来的ESP8266就采用1883端口连接华为云物联网平台。

2.3 创建产品

(1)创建产品

image-20230109164412041

(2)填写产品信息

根据自己产品名字填写,下面的设备类型选择自定义类型。

image-20240612094809689

(3)产品创建成功

image-20240612095148945

创建完成之后点击查看详情。

image-20240612095134263

(4)添加自定义模型

产品创建完成之后,点击进入产品详情页面,翻到最下面可以看到模型定义。

模型简单来说: 就是存放设备上传到云平台的数据。

你可以根据自己的产品进行创建。

比如:

烟雾可以叫  MQ2
温度可以叫  Temperature
湿度可以叫  humidity
火焰可以叫  flame
其他的传感器自己用单词简写命名即可。 这就是你的单片机设备端上传到服务器的数据名字。

先点击自定义模型。

image-20240612095517900

再创建一个服务ID。

image-20240612095542749

接着点击新增属性。

image-20240612095648815

image-20240612095711898

2.4 添加设备

产品是属于上层的抽象模型,接下来在产品模型下添加实际的设备。添加的设备最终需要与真实的设备关联在一起,完成数据交互。

(1)注册设备

image-20240425181935561

(2)根据自己的设备填写

image-20240612100115167

(3)保存设备信息

创建完毕之后,点击保存并关闭,得到创建的设备密匙信息。该信息在后续生成MQTT三元组的时候需要使用。

image-20240612100128061

(4)设备创建完成

image-20240612100147232

(5)设备详情

image-20240612100202960

image-20240612100217236

2.5 MQTT协议主题订阅与发布

(1)MQTT协议介绍

当前的设备是采用MQTT协议与华为云平台进行通信。

MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。MQTT是专门针对物联网开发的轻量级传输协议。MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。目前MQTT拥有各种平台和设备上的客户端,已经形成了初步的生态系统。

MQTT是一种消息队列协议,使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合,相对于其他协议,开发更简单;MQTT协议是工作在TCP/IP协议上;由TCP/IP协议提供稳定的网络连接;所以,只要具备TCP协议栈的网络设备都可以使用MQTT协议。 本次设备采用的ESP8266就具备TCP协议栈,能够建立TCP连接,所以,配合STM32代码里封装的MQTT协议,就可以与华为云平台完成通信。

华为云的MQTT协议接入帮助文档在这里: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

img

业务流程:

img

(2)华为云平台MQTT协议使用限制

描述限制
支持的MQTT协议版本3.1.1
与标准MQTT协议的区别支持Qos 0和Qos 1支持Topic自定义不支持QoS2不支持will、retain msg
MQTTS支持的安全等级采用TCP通道基础 + TLS协议(最高TLSv1.3版本)
单帐号每秒最大MQTT连接请求数无限制
单个设备每分钟支持的最大MQTT连接数1
单个MQTT连接每秒的吞吐量,即带宽,包含直连设备和网关3KB/s
MQTT单个发布消息最大长度,超过此大小的发布请求将被直接拒绝1MB
MQTT连接心跳时间建议值心跳时间限定为30至1200秒,推荐设置为120秒
产品是否支持自定义Topic支持
消息发布与订阅设备只能对自己的Topic进行消息发布与订阅
每个订阅请求的最大订阅数无限制

(3)主题订阅格式

帮助文档地址:https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

image-20221207153310037

对于设备而言,一般会订阅平台下发消息给设备 这个主题。

设备想接收平台下发的消息,就需要订阅平台下发消息给设备 的主题,订阅后,平台下发消息给设备,设备就会收到消息。

如果设备想要知道平台下发的消息,需要订阅上面图片里标注的主题。

以当前设备为例,最终订阅主题的格式如下:
$oc/devices/{device_id}/sys/messages/down最终的格式:
$oc/devices/663cb18871d845632a0912e7_dev1/sys/messages/down

(4)主题发布格式

对于设备来说,主题发布表示向云平台上传数据,将最新的传感器数据,设备状态上传到云平台。

这个操作称为:属性上报。

帮助文档地址:https://support.huaweicloud.com/usermanual-iothub/iot_06_v5_3010.html

image-20221207153637391

根据帮助文档的介绍, 当前设备发布主题,上报属性的格式总结如下:

发布的主题格式:
$oc/devices/{device_id}/sys/properties/report最终的格式:
$oc/devices/663cb18871d845632a0912e7_dev1/sys/properties/report
发布主题时,需要上传数据,这个数据格式是JSON格式。上传的JSON数据格式如下:{"services": [{"service_id": <填服务ID>,"properties": {"<填属性名称1>": <填属性值>,"<填属性名称2>": <填属性值>,..........}}]
}
根据JSON格式,一次可以上传多个属性字段。 这个JSON格式里的,服务ID,属性字段名称,属性值类型,在前面创建产品的时候就已经介绍了,不记得可以翻到前面去查看。根据这个格式,组合一次上传的属性数据:
{"services": [{"service_id": "stm32","properties":{"DHT11_T":30,"DHT11_H":10,"BH1750":1,"MQ135":0}}]}

2.6 MQTT三元组

MQTT协议登录需要填用户ID,设备ID,设备密码等信息,就像平时登录QQ,微信一样要输入账号密码才能登录。MQTT协议登录的这3个参数,一般称为MQTT三元组。

接下来介绍,华为云平台的MQTT三元组参数如何得到。

(1)MQTT服务器地址

要登录MQTT服务器,首先记得先知道服务器的地址是多少,端口是多少。

帮助文档地址:https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/home

image-20240509193207359

MQTT协议的端口支持1883和8883,它们的区别是:8883 是加密端口更加安全。但是单片机上使用比较困难,所以当前的设备是采用1883端口进连接的。

根据上面的域名和端口号,得到下面的IP地址和端口号信息: 如果设备支持填写域名可以直接填域名,不支持就直接填写IP地址。 (IP地址就是域名解析得到的)

华为云的MQTT服务器地址:117.78.5.125
华为云的MQTT端口号:1883

如何得到IP地址?如何域名转IP? 打开Windows的命令行输入以下命令。

ping  ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com

image-20240425182610048

(2)生成MQTT三元组

华为云提供了一个在线工具,用来生成MQTT鉴权三元组: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

打开这个工具,填入设备的信息(也就是刚才创建完设备之后保存的信息),点击生成,就可以得到MQTT的登录信息了。

下面是打开的页面:

image-20240425183025893

填入设备的信息: (上面两行就是设备创建完成之后保存得到的)

直接得到三元组信息。

image-20240509193310020

得到三元组之后,设备端通过MQTT协议登录鉴权的时候,填入参数即可。

ClientId  663cb18871d845632a0912e7_dev1_0_0_2024050911
Username  663cb18871d845632a0912e7_dev1
Password  71b82deae83e80f04c4269b5bbce3b2fc7c13f610948fe210ce18650909ac237

2.7 模拟设备登录测试

经过上面的步骤介绍,已经创建了产品,设备,数据模型,得到MQTT登录信息。 接下来就用MQTT客户端软件模拟真实的设备来登录平台。测试与服务器通信是否正常。

(1)填入登录信息

打开MQTT客户端软件,对号填入相关信息(就是上面的文本介绍)。然后,点击登录,订阅主题,发布主题。

image-20240509193457358

(2)打开网页查看

完成上面的操作之后,打开华为云网页后台,可以看到设备已经在线了。

image-20240612100508790

点击详情页面,可以看到上传的数据:

image-20240612100529581

到此,云平台的部署已经完成,设备已经可以正常上传数据了。

(3)MQTT登录测试参数总结

MQTT服务器:  117.78.5.125
MQTT端口号:  183//物联网服务器的设备信息
#define MQTT_ClientID "663cb18871d845632a0912e7_dev1_0_0_2024050911"
#define MQTT_UserName "663cb18871d845632a0912e7_dev1"
#define MQTT_PassWord "71b82deae83e80f04c4269b5bbce3b2fc7c13f610948fe210ce18650909ac237"//订阅与发布的主题
#define SET_TOPIC  "$oc/devices/663cb18871d845632a0912e7_dev1/sys/messages/down"  //订阅
#define POST_TOPIC "$oc/devices/663cb18871d845632a0912e7_dev1/sys/properties/report"  //发布发布的数据:
{"services": [{"service_id": "stm32","properties":{"DHT11_T":30,"DHT11_H":10,"BH1750":1,"MQ135":0}}]}

2.8 创建IAM账户

创建一个IAM账户,因为接下来开发上位机,需要使用云平台的API接口,这些接口都需要token进行鉴权。简单来说,就是身份的认证。 调用接口获取Token时,就需要填写IAM账号信息。所以,接下来演示一下过程。

地址: https://console.huaweicloud.com/iam/?region=cn-north-4#/iam/users

**【1】获取项目凭证 ** 点击左上角用户名,选择下拉菜单里的我的凭证

image-20240509193646253

image-20240509193701262

项目凭证:

28add376c01e4a61ac8b621c714bf459

【2】创建IAM用户

鼠标放在左上角头像上,在下拉菜单里选择统一身份认证

image-20240509193729078

点击左上角创建用户

image-20240509193744287

image-20240314153208692

image-20240314153228359

image-20240314153258229

创建成功:

image-20240314153315444

【3】创建完成

image-20240509193828289

用户信息如下:

主用户名  l19504562721
IAM用户  ds_abc
密码     DS12345678

2.9 获取影子数据

帮助文档:https://support.huaweicloud.com/api-iothub/iot_06_v5_0079.html

设备影子介绍:

设备影子是一个用于存储和检索设备当前状态信息的JSON文档。
每个设备有且只有一个设备影子,由设备ID唯一标识
设备影子仅保存最近一次设备的上报数据和预期数据
无论该设备是否在线,都可以通过该影子获取和设置设备的属性

简单来说:设备影子就是保存,设备最新上传的一次数据。

设计的软件里,如果想要获取设备的最新状态信息,就采用设备影子接口。

如果对接口不熟悉,可以先进行在线调试:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ShowDeviceShadow

在线调试接口,可以请求影子接口,了解请求,与返回的数据格式。

调试完成看右下角的响应体,就是返回的影子数据。

image-20240509194152229

设备影子接口返回的数据如下:

{"device_id": "663cb18871d845632a0912e7_dev1","shadow": [{"service_id": "stm32","desired": {"properties": null,"event_time": null},"reported": {"properties": {"DHT11_T": 18,"DHT11_H": 90,"BH1750": 38,"MQ135": 70},"event_time": "20240509T113448Z"},"version": 3}]
}

调试成功之后,可以得到访问影子数据的真实链接,接下来的代码开发中,就采用Qt写代码访问此链接,获取影子数据,完成上位机开发。

image-20240509194214716

链接如下:

https://ad635970a1.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/28add376c01e4a61ac8b621c714bf459/devices/663cb18871d845632a0912e7_dev1/shadow

三、上位机开发

为了方便查看设备上传的数据,接下来利用Qt开发一款Android手机APP 和 Windows上位机。

使用华为云平台提供的API接口获取设备上传的数据,进行可视化显示,以及远程控制设备。

3.1 Qt开发环境安装

Qt的中文官网: https://www.qt.io/zh-cn/image-20221207160550486

image-20221207160606892

QT5.12.6的下载地址:https://download.qt.io/archive/qt/5.12/5.12.6

或者去网盘里下载:https://pan.quark.cn/s/145a9b3f7f53

打开下载链接后选择下面的版本进行下载:

qt-opensource-windows-x86-5.12.6.exe 13-Nov-2019 07:28 3.7G Details

软件安装时断网安装,否则会提示输入账户。

安装的时候,第一个复选框里勾选一个mingw 32编译器即可,其他的不管默认就行,直接点击下一步继续安装。

image-20221203151742653

选择MinGW 32-bit 编译器: (一定要看清楚了)

image-20221203151750344

说明: 我这里只是介绍PC端,也就是Windows系统下的Qt环境搭建。 Android的开发环境比较麻烦,如果想学习Android开发,想编译Android程序的APP,需要自己去搭建Android环境。

也可以看下面这篇文章,不过这个文章是在Qt开发专栏里付费的,需要订阅专栏才可以看。 如果不想付费看,也可以自行找其他教程,自己搭建好必须的环境就行了

Android环境搭建的博客链接: https://blog.csdn.net/xiaolong1126626497/article/details/117254453

3.2 新建上位机工程

前面2讲解了需要用的API接口,接下来就使用Qt设计上位机,设计界面,完成整体上位机的逻辑设计。

【1】新建工程

image-20240117144052547

【2】设置项目的名称。

image-20240509195711965

【3】选择编译系统

image-20240117144239681

【4】选择默认继承的类

image-20240117144302275

【5】选择编译器

image-20240314162137170

【6】点击完成

image-20240117144354252

【7】工程创建完成

image-20230421094133333

3.3 设计UI界面与工程配置

【1】打开UI文件

image-20230421094815236

打开默认的界面如下:

image-20240425194845233

【2】开始设计界面

根据自己需求设计界面。

3.5 编译Windows上位机

点击软件左下角的绿色三角形按钮进行编译运行。

image-20240509202031739

3.6 配置Android环境

如果想编译Android手机APP,必须要先自己配置好自己的Android环境。(搭建环境的过程可以自行百度搜索学习)

然后才可以进行下面的步骤。

【1】选择Android编译器

image-20240425232651515

image-20240509202408776

【2】创建Android配置文件

image-20240117144604025

image-20240117144635052

image-20240117144652014

创建完成。

【3】配置Android图标与名称

image-20240612100947190

【3】编译Android上位机

Qt本身是跨平台的,直接选择Android的编译器,就可以将程序编译到Android平台。

然后点击构建。

image-20240509202534407

成功之后,在目录下可以看到生成的apk文件,也就是Android手机的安装包,电脑端使用QQ发送给手机QQ,手机登录QQ接收,就能直接安装。

生成的apk的目录在哪里呢? 编译完成之后,在控制台会输出APK文件的路径。

知道目录在哪里之后,在Windows的文件资源管理器里,找到路径,具体看下图,找到生成的apk文件。

image-20240509202712295

D:/linux-share-dir/QT/build-app_Huawei_Eco_tracking-Android_for_arm64_v8a_Clang_Qt_5_12_6_for_Android_ARM64_v8a-Release/android-build//build/outputs/apk/debug/android-build-debug.apk

四、STM32代码开发

以下是基于STM32F103RCT6的“森林火灾监测系统”的 main.c 的完整代码示例。

#include "stm32f10x.h"
#include "sht30.h"        // 环境温湿度传感器库
#include "mq2.h"          // 烟雾传感器库
#include "flame_sensor.h" // 火焰传感器库
#include "oled.h"         // OLED显示屏库
#include "buzzer.h"       // 蜂鸣器库
#include "air724ug.h"     // 4G模块通信库
#include "delay.h"        // 延时函数库
#include "mqtt.h"         // MQTT协议库// 全局变量
float temperature, humidity;
uint16_t smoke_concentration;
uint8_t flame_detected;
char data_buffer[50];// 函数声明
void System_Init(void);
void Read_Sensors(void);
void Display_Data(void);
void Check_Alarm(void);
void Upload_Data(void);int main(void) {System_Init();  // 系统初始化while (1) {Read_Sensors();     // 读取传感器数据Display_Data();     // 在OLED上显示数据Check_Alarm();      // 检查报警条件Upload_Data();      // 上传数据到云端Delay_ms(5000);     // 每隔5秒运行一次}
}// 系统初始化
void System_Init(void) {Delay_Init();      // 初始化延时SHT30_Init();      // 初始化温湿度传感器MQ2_Init();        // 初始化烟雾传感器Flame_Sensor_Init(); // 初始化火焰传感器OLED_Init();       // 初始化OLED显示Buzzer_Init();     // 初始化蜂鸣器Air724UG_Init();   // 初始化4G模块MQTT_Init();       // 初始化MQTT协议
}// 读取传感器数据
void Read_Sensors(void) {// 读取温湿度SHT30_ReadData(&temperature, &humidity);// 读取烟雾浓度smoke_concentration = MQ2_ReadData();// 读取火焰传感器状态flame_detected = Flame_Sensor_Read();
}// 在OLED显示屏上显示数据
void Display_Data(void) {OLED_Clear();OLED_ShowString(0, 0, "Temp:");OLED_ShowFloat(40, 0, temperature, 2, 1);OLED_ShowString(80, 0, "C");OLED_ShowString(0, 1, "Humidity:");OLED_ShowFloat(64, 1, humidity, 2, 1);OLED_ShowString(104, 1, "%");OLED_ShowString(0, 2, "Smoke:");OLED_ShowNum(48, 2, smoke_concentration, 4, 10);OLED_ShowString(0, 3, "Flame:");if (flame_detected) {OLED_ShowString(48, 3, "YES");} else {OLED_ShowString(48, 3, "NO");}
}// 检查报警条件
void Check_Alarm(void) {// 检测到火焰或烟雾浓度超出阈值则报警if (flame_detected || smoke_concentration > 300) {Buzzer_On();} else {Buzzer_Off();}
}// 上传数据到云端
void Upload_Data(void) {// 将数据格式化为字符串snprintf(data_buffer, sizeof(data_buffer), "{\"temperature\": %.1f, \"humidity\": %.1f, \"smoke\": %d, \"flame\": %d}", temperature, humidity, smoke_concentration, flame_detected);// 使用MQTT协议上传数据MQTT_Publish("forest_fire_monitor/data", data_buffer);
}

代码说明

  1. System_Init():初始化所有硬件模块,包括传感器、OLED显示屏、蜂鸣器、4G模块和MQTT协议。
  2. Read_Sensors():读取各传感器数据。
  3. Display_Data():将采集的数据在OLED显示屏上显示,方便现场查看。
  4. Check_Alarm():检测火灾报警条件,若检测到火焰或烟雾浓度超出阈值,触发蜂鸣器报警。
  5. Upload_Data():通过4G模块上传数据到华为云物联网平台。数据格式化成JSON字符串并通过MQTT协议发布到云服务器的指定主题。

运行逻辑

系统每5秒循环一次,执行数据采集、显示、报警检测和数据上传。

五、总结

森林火灾是全球面临的一大环境挑战,不仅导致严重的生态破坏,还会造成巨大的经济损失和人员伤亡。传统的森林防火措施多依赖于人工巡逻和定点监测,效率低下且覆盖范围有限。为此,本项目设计了一套基于STM32F103RCT6的森林火灾监测系统。该系统集成了多种传感器,包括SHT30温湿度传感器、火焰传感器和MQ2烟雾传感器,能够实时监测森林环境中的温度、湿度、烟雾浓度和火焰情况。当检测到异常情况时,系统会自动触发蜂鸣器报警,并通过Air724UG-4G模块将数据上传至华为云IOT物联网服务器。此外,系统还开发了专门的Android手机APP和Windows上位机软件,森林管理员可以通过这些客户端实时查看监测数据和接收火灾报警信息。为了适应森林地区的特殊环境,系统支持太阳能充电,确保长期稳定运行。本项目旨在提高森林火灾预警的准确性和响应速度,减少火灾造成的损失,为森林防火提供了一种新的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webserver(4.9)本地套接字的通信

目录 本地套接字 本地套接字 TCP\UDP实现不同主机、网络通信 本地套接字实现本地的进程间的通信&#xff0c;类似的&#xff0c;一般采用TCP的通信流程 生成套接字文件 #include<arpa/inet.h> #include<stdio.h> #include<stdlib.h> #include<unistd.h&…

第十五届蓝桥杯C/C++B组题解——数字接龙

题目描述 小蓝最近迷上了一款名为《数字接龙》的迷宫游戏&#xff0c;游戏在一个大小为N N 的格子棋盘上展开&#xff0c;其中每一个格子处都有着一个 0 . . . K − 1 之间的整数。游戏规则如下&#xff1a; 从左上角 (0, 0) 处出发&#xff0c;目标是到达右下角 (N − 1, N …

jmeter常用配置元件介绍总结之安装插件

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之取样器 jmeter常用配置元件介绍总结之安装插件 1.下载插件2.安装插件管理包3.不用插件管理包&#xff0c;直接官网插件下载安装 1.下载插件 jm…

InnoDB 存储引擎<六> Redo log

目录 关于Redo Log 的一些其余问题 小结 本篇承接自InnoDB存储引擎<五>的内容 InnoDB 存储引擎&#xff1c;五&#xff1e; 关于Redo Log 的一些其余问题 4.不同⽇志类型对应了哪些操作&#xff1f; 分析过程&#xff1a; 1.⽇志类型总体可以分为三⼤类&#xff0c;…

Linux挖矿病毒(kswapd0进程使cpu爆满)

一、摘要 事情起因:有台测试服务器很久没用了&#xff0c;突然监控到CPU飙到了95以上&#xff0c;并且阿里云服务器厂商还发送了通知消息&#xff0c;【阿里云】尊敬的xxh: 经检测您的阿里云服务&#xff08;ECS实例&#xff09;i-xxx存在挖矿活动。因此很明确服务器中挖矿病毒…

变电站接地电阻监测装置-输电铁塔接地电阻监测装置:实时监测,预防故障

变电站接地电阻监测装置 接地电阻对电力系统的安全和稳定性至关重要&#xff0c;但在高压环境和极端气候下&#xff0c;接地系统可能出现性能下降&#xff0c;增加故障和跳闸的风险。传统的人工检测方法常常无法及时发现这些问题&#xff0c;并且操作繁琐。为此&#xff0c;我…

练习LabVIEW第四十三题

学习目标&#xff1a; 模拟红绿灯&#xff0c;红灯亮十秒&#xff0c;绿灯亮五秒&#xff0c;交替&#xff0c;并用波形图将波形显示 开始编写&#xff1a; 前面板 两个指示灯&#xff0c;一个红色&#xff0c;一个绿色&#xff0c;一个波形图&#xff1b; 程序框图 创建…

MySQL45讲 第十一讲 怎么给字符串字段加索引?

文章目录 MySQL45讲 第十一讲 怎么给字符串字段加索引&#xff1f;一、引言二、前缀索引&#xff08;一&#xff09;概念与创建方式&#xff08;二&#xff09;数据结构与存储差异&#xff08;三&#xff09;确定前缀长度的方法 三、前缀索引对覆盖索引的影响四、其他索引创建方…

STM32CUBEIDE FreeRTOS操作教程(八):queues多队列

STM32CUBEIDE FreeRTOS操作教程&#xff08;八&#xff09;&#xff1a;queues多队列 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件&#xff0c;不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板为例&#…

2.Python解释器

python解释器程序&#xff0c;用来翻译python代码&#xff0c;并提交给计算机执行。 上一篇博客就是安装了python解释器程序 写一个python文件&#xff0c;在文件中写入多行代码并执行&#xff1a; 进入python后&#xff0c;输入exit()命令退出

JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习

先简单记录下简单使用跟测试&#xff0c;后续再补充具体&#xff0c;最近有用到&#xff0c;简单来说就是后端(服务端)编写个发射器&#xff0c;实现一次请求&#xff0c;一直向前端客户端发射数据&#xff0c;直到发射器执行完毕&#xff0c;模拟ai一句一句回复的效果 Respon…

Liunx:文件fd、重定向、管道

文件fd&#xff1a; 操作系统运行中一定存在着许多被打开的文件&#xff0c;这些文件需要被管理。一个进程会打开若干个文件。一个文件如果在操作系统中被打开&#xff0c;那么必须给该文件创建一个文件对象&#xff0c;包含被打开文件的各种属性。那么进程与文件的关系就变成…

linux笔记(DNS)

一、概念 DNS&#xff08;Domain Name System&#xff09;DNS 是一种分布式网络目录服务&#xff0c;主要用于将人类易于记忆的域名&#xff08;如 www.example.com&#xff09;转换为计算机可识别的 IP 地址&#xff08;如 192.168.1.1&#xff09;。它就像是互联网的电话簿&a…

优衣库在淘宝平台的全方位竞品分析与店铺表现研究:市场定位与竞争策略透视

优衣库品牌在淘宝平台的全方位竞品与店铺表现分析 一、品牌商品分析 1.商品列表与分类分析&#xff08;数据来源&#xff1a;关键词商品搜索接口&#xff1b;获取时间&#xff1a;2024.08.30&#xff09; 商品类别分布柱状图&#xff1a; 根据关键词商品搜索接口获取到的优衣…

RocketMQ 自动注入消费者

目录 前言一、情景介绍二、问题分析三、代码实现 前言 之前接到一个需求&#xff0c;我们项目的技术负责人希望通过配置的形式&#xff0c;在项目启动的时候自动根据配置生成对应的消费者 觉得还有点意思&#xff0c;随即记录一下~ 一、情景介绍 比如我这里有一个消费者 Mes…

数据结构(C语言版)(第2版) 课后习题答案 李冬梅

数据结构(C语言版)(第2版) 第1章 绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数…

Vue 自定义icon组件封装SVG图标

通过自定义子组件CustomIcon.vue使用SVG图标&#xff0c;相比iconfont下载文件、重新替换更节省时间。 子组件包括&#xff1a; 1. Icons.vue 存放所有SVG图标的path 2. CustomIcon.vue 通过icon的id索引对应的图标 使用的时候需要将 <Icons></Icons> 引到使用的…

吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.9-4.10

目录 第四门课 卷积神经网络&#xff08;Convolutional Neural Networks&#xff09;第四周 特殊应用&#xff1a;人脸识别和神经风格转换&#xff08;Special applications: Face recognition &Neural style transfer&#xff09;4.9 内容代价函数&#xff08;Content cos…

界面控件DevExpress WPF中文教程:Data Grid——卡片视图设置

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

LLM训练”中的“分布式训练并行技术;分布式训练并行技术

目录 “LLM训练”中的“分布式训练并行技术” 分布式训练并行技术 数据并行 流水线并行:按阶段(stage)进行切分 张量并行 序列并行 多维混合并行 自动并行 MOE并行 重要的分布式AI框架 “LLM训练”中的“分布式训练并行技术” 随着深度学习技术的不断发展,特别是…