-
感谢大家对本次活动的支持与参与,恭喜以下获奖的童鞋,获奖码豆将于10月31日前发放至您的获奖账号,请注意查收。为保证您顺利领取奖品,请您及时查看活动信息并最迟于12月9日前前往码豆中心>礼品专区<兑换领取实物奖品,过期兑换入口将关闭。如对获奖结果或礼品兑换有疑问,请联系版主反馈。状元奖用户(1名)hw_008615852390672_01奋斗奖用户(20名)songxiaoweihwyzq13516078375wuxiaomenghwguguanggangzyw13019809851huaweiqiujiewangyuyanhwhw60930959xuexiaolidinghw71567953zhaoyuhuajdhwqiujiehwzhaoyuhualidingsuninghuaweilizhengqsongxiaomthw_008618214592309_01yzq369861178zgx1636964790dandongjikongzhongxin勤学奖用户(19名)wangshuangmaomaohw14362064zhengguixiangziyuw130matthew84cftang007lix0001ziyuweihw82524968Jack20guoky1894159hid__8vkdyxy26r5abjlovelydong1hw70558544cauxiaoweihw36175659yuanlinglangnukinsanhw007323840⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐【活动时间】2022年6月15日~2022年10月8日【活动参与方式】1、报名华为开发者大赛任意赛道云应用创新赛道 无人车赛道 代码上太空赛道 世界难题赛道 乾坤云服务赛道2、完成以下任意技能提升任务,均可获得学习激励【活动奖励】状元奖 2人 奖励 350000码豆条件1:完成任意2门技能测评考试条件2:通过任意1门开发者认证考试综合以上两个条件方可获得奖励奋斗奖 20人 奖励 35000码豆通过任意2门技能测评的开发者勤学奖 30人 奖励 25000码豆通过任意1门技能测评的开发者(码豆可在>礼品专区<兑换实物奖品)⭐ 技能提升推荐课堂列表 ⭐领域技能提升课程EI领域AI基础课程(4门课程 |7个课时)技术领域课程(5门课程 |12个课时)技术应用场景(5门课程 |12个课时)IoT领域物联网基础知识入门(9门课程 |19个课时)物联网设备开发(5门课程 |13个课时)物联网应用开发(2门课程 |2个课时)物联网深度学习(1门课程 |1个实验)PaaS领域软件开发平台DevCloud介绍及实战AppCube介绍与开发实战区块链全景实践课媒体领域实时音视频HRTC课程 视频直播服务Live:高清流畅低延迟课程云原生领域云原生王者之路黄金课程云原生王者之路钻石课程云原生王者之路王者课程KubeEdge 系列直播课程无需反馈截图,报名大赛后,直接点击下方链接参与测评即可,获奖结果将在活动结束后自动统计,报名后请勿更改昵称和账号 ⭐ 技能测评列表 ⭐领域技能测评等级数据库与大数据初级中级中间件区块链初级中级高级华为云云原生初级中级高级Python开发初级中级高级JAVA开发初级中级高级人工智能初级中级高级物联网初级中级高级云迁移初级中级高级C/C++C语言实战进阶测评C++语言实战进阶测评领域开发者认证云原生云原生入门级开发者认证云原生云原生工作级开发者认证-基础设施人工智能人工智能入门级开发者认证大数据数据仓库工作级开发者认证操作系统华为云欧拉操作系统入门级开发者认证数据库GaussDB入门级开发者认证-Java发现技能Gap?赶快参与活动找到适合自己的提升路径,坚持学习,必将多种技能加持,为你拥有的技能树点亮更多盏灯!温馨提示1、参与本活动需报名华为开发者大赛任意赛道,否则参与无效。2、本技能测评需在电脑端进行,同一奖项,如出现平分,考试次数最少、用时最短、最早通过考试者获奖。3、为保证您顺利领取活动奖品,请于10月31日前填写奖品收货信息并完成实名认证,否则视为放弃奖励。(由于开发者大赛云应用创新赛道报名延长至10月14日,延长活动奖项公布时间,请理解)4、本活动最终解释权归华为云所有,其他事宜请参考【华为云社区常规活动规则】。
-
【功能模块】【操作步骤&问题现象】已经按照SDK指导步骤编译成功,在云平台上注册产品和设备,并且修改完成username和password,运行MQTT_Demo.o文件时出现如下报错:【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
5月26日,2022中国国际大数据产业博览会(以下简称“数博会”)线上正式开幕。数博会是全球首个以大数据为主题的博览会,由国家发展和改革委员会、工业和信息化部、国家互联网信息办公室和贵州省人民政府共同主办,是助力全球大数据技术应用和产业发展的重要平台。大会开幕式上,华为高级副总裁、华为云CEO张平安发表主题演讲。聚焦大会主题“抢数字新机,享数字价值”,他在演讲中主张,发挥数据的集聚规模效应,以数智融合重塑数据价值,围绕“一切皆服务”帮助更多企业容易上云、方便上云、用好云:让数据资源在集聚中实现效益最优“东数西算”是把握数字经济发展机遇期、构建算力新格局的重要举措。为加快推动“东数西算”建设,全力打造“中国数谷”,华为云已在贵州布局全球总部和最大的云数据中心,持续发挥数据资源集聚的规模效应,提升资源使用效率。以“数智融合”重塑数据价值数字时代,数据是千行百业重要的生产要素和资产,目前数据的价值仍未充分得以利用,实现高效的数据治理、促进“数智融合”仍是业界难题。华为云着力打造“数智融合”云平台,打通数据治理生产线、AI开发生产线,构建统一的开发环境、统一的元数据管理、统一的存储,让数据开发效率由“周”级提升到“小时”级,大幅降低数据存储成本,让数据和AI开发进入现代化的生产阶段。一切皆服务,让千行百业真正用好云为帮助千行百业的客户容易上云、方便上云、用好云,华为云提出“一切皆服务”,把基础设施、技术以及经验云化、服务化。例如,不少企业缺乏专家和训练数据,未能有效地将AI能力与业务场景结合,因此难以快速开发出AI应用;为此华为云已将AI、大数据,音视频等核心技术云化,集成海量开发工具,让所有客户随取随用,高效开发。同时,华为云持续深耕政府、金融、工业等行业,将华为与伙伴、客户的合作创新以及数字化转型经验沉淀成为云服务,已陆续开放了50多个应用场景,提供超过2万个API服务,让更多企业就不必重复“造轮子”,通过云服务即获得全行业最优秀的数字化经验。本届数博会上,华为云还斩获了多项大奖,涵盖从数据库、数据湖、到数据和AI融合分析的技术创新,以及运用湖仓库AI技术支持的梦饷集团创新实践入选“十佳大数据案例”,充分证明了业界对华为云数据领域技术创新的认可:在数博会的重头戏——“数博发布”特色活动中,华为云GaussDB(for openGauss)分布式数据库斩获领先科技成果“新产品”奖。该奖项是数博会的最高奖项,同时也是唯一以大数据为主题的社会科技奖励,其专业性、权威性、引领性获业界一致认可。 华为云GaussDB(for openGauss) 基于华为主导的开放生态openGauss而打造,是主打政企核心业务负载的金融级分布式数据库旗舰产品。 例如,在工商银行核心交易系统分布式改造过程中,华为云GaussDB提供了完备的一站式数据迁移解决方案,实现高可用、性能线性扩展、弹性部署三大核心价值,助力客户数据库选型安心、迁移放心、管理省心,让核心交易系统可靠性得到了大幅度提升,持续满足未来长期业务发展需求。 华为云数智融合平台为企业在云上打造了统一的数据底座,把原本散落在各个部门和组织的数据统一汇聚到数据湖中,省去开发者关注各种底层的琐碎文件管理,以及大量、复杂的分析引擎、AI引擎和管理运维工作,支持开发者在集成的开发平台上,便捷地使用最新的算法模型挖掘各种数据的潜在价值。 例如,平台助力T3出行将多套集群架构优化至湖仓一体的存算分离架构,同时支撑数据分析的BI和数据智能的AI场景,不仅使TCO降低20%以上,更解决了出行场景下“长尾支付”系统更新慢的难题,数据处理效率提升150%。数智融合,让企业像管理代码一样管理数据,让机器学习的效率更高,提升乘客的安全体验。华为云FusionInsight MRS IoTDB聚焦工业物联网领域的工业复杂时序数据的处理,解决通用数据库在超大规模复杂时序场景的功能短板和性能瓶颈,形成跨越端、边、云的工业物联网大数据的利器。 目前,清华大学和华为云已开展合作,以Apache IoTDB开源组件为基础,持续探索新型的、基于开源社区的“产、学、研”合作模式,加快在华为云FusionInsight MRS云原生数据湖服务中完成IoTDB商用版本开发和集成,进一步完善MRS“三湖一集市”能力,为工业海量时序数据分析提供企业级的时序数据库。IoTDB相关技术已在交通、制造等众多工业级时序数据分析应用中落地。 作为“新电商”领域创新者,梦饷集团全面拥抱云、大数据、AI技术,与华为云合作数据创新,让200万“宝妈”不需要投入成本、无需复杂的数字技术背景,即可利用碎片时间进行数字圈层电商营销。以数据智能进行业务创新和社会价值创造,该案例也入选联合国可持续发展目标(SDGs)最佳案例。在数智融合实践中,梦饷集团实现了TCO下降30%,实时分析能力提升50%。其中,华为云DWS提供涵盖T+1批量分析、流式分析、小微实时分析、IoT分析、交互式分析以及复杂高维业务分析等;华为数仓技术提供了100PB级数据容量,以超大集群、混合负载的关键能力,保障多租户、高并发场景可为用户输出持续稳定的SLA,让梦饷集团轻松应对电商高并发业务挑战。基于超过10年的数据领域研发与投入,华为云以成熟的全生命周期数据治理能力,持续帮助电商、游戏、金融、保险、物流、零售等行业客户实现业务智能,释放企业数据价值。围绕“一切皆服务”,华为云面携手客户、合作伙伴和开发者持续创新,帮助千行百业的客户容易上云、方便上云、用好云。
-
【功能模块】【操作步骤&问题现象】截图中明明是iot云主动推送状态,但是接口文档又是iot云通信的ip和端口号,不应该是业务平台的地址吗?想问下还有别的方式获取发送状态吗【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
墨子僵尸网络行为分析一、背景乾坤云服务长期观测中,发现大量用户被Mozi僵尸病毒持续攻击,部分客户内网多台主机已被感染,感染客户集中于政府、医疗、制造业领域,传播领域广泛。墨子僵尸网络主要通过物联网设备进行传播,具有强感染,弱感知的特点,同时由于物联网设备难以管理、难以漏洞修复等特点,导致无法快速通过版本升级方式防御墨子僵尸网络传播。被墨子僵尸网络感染的主机成为肉鸡的同时,会再次向其他主机进行传播。随着被感染主机数量的持续性增加,使得攻击者具备了发动大规模恶意活动的能力,例如发送垃圾邮件,分布式拒绝攻击等,严重危害客户网络安全。在乾坤云服务解决方案下,可通过云端协同,在不升级物联网设备的场景下,快速防御墨子僵尸网络攻击。详细分析见下文。 二、Mozi僵尸病毒简介Mozi作为一种以P2P通信在物联网中扩散的僵尸网络,在2020年迅速崛起,据统计目前已占到所有物联网(IoT)僵尸网络流量的90%,Mozi僵尸网络以DHT 协议寄生在 P2P 网络中进行通信,并通过10多种n-day漏洞利用和telnet弱口令方式进行传播,传播物联网设备主要集中于路由器、摄像头等。 三、Mozi僵尸病毒行为分析墨子僵尸网络是一个区别于传统的僵尸网络通信方式,选择使用P2P进行通信的僵尸网络,通过物联网设备漏洞和Telnet弱密码进行扩散传播。根据分析蠕虫本体,对提取出来的利用报文进行分析,墨子僵尸网络扩散自身节点所使用的漏洞如下:漏洞目标设备CVE-2018-10561GPON 路由器CVE-2018-10562GPON 路由器CVE-2017-17215Huawei HG532CVE-2014-8361使用Realtek SDK的设备Eir D1000 无线路由器 命令注入Eir D1000 无线路由器CVE-2008-4873Sepal SPBOARDCVE-2016-6277Netgear R7000/R6400Netgear setup.cgi 未授权任意命令执行Netgear DGN1000MVPower DVR 命令执行MVPower DVR TV-7104HECVE-2015-2051D-Link DIR-645D-Link UPnP SOAP 命令执行D-Link DIR-300/DIR-600/DIR-645/DIR-845/DIR-865Multiple CCTV-DVR Vendors 远程代码执行多家CCTV-DVR供应商的设备Telnet弱口令爆破所使用的弱口令字典如下:包含 admin、super等常见设备弱口令。 当以上的方法存在一种能成功入侵目标设备,僵尸网络节点会通过执行wget/curl,将蠕虫本体下载至目标机器上,然后赋予权限执行,然后蠕虫本体开始执行后会先检查否存在/usr/bin/python文件,然后根据结果修改蠕虫程序自身的进程名为"dropbear"或"sshd"进行伪装。接着使用iptables对22,23,2323端口进行阻断,防止被其他恶意程序所再次利用其中墨子僵尸网络节点之间的通信使用了自行扩展的DHT协议来构建P2P网络。当攻陷一台新的设备,新的墨子僵尸网络节点需要加入对应的DHT网络时,会向"ia.51.la"发送请求以注册自身,以下为蠕虫本体硬编码的公共节点,这些节点将作为引导节点引导新节点加入该僵尸网络节点收到网络请求后会根据匹配到的内容返回跳转到对应的功能实现位置,以下为功能分发目录以及对应的功能简介 请求功能1:q4:pingDHT请求,直接回复pong,作用是探测一个节点,用以判断该节点是否仍然在线1:q9:find_nodeDHT请求,未单独处理,并入get_peers进行处理1:q9:get_peersDHT请求,回复 got_peers,若请求来自Mozi节点1:q13:announce_peerDHT请求,不支持请求包小于等于99字节非DHT请求,回复自身Config文件请求包大于99字节非DHT请求,执行Config文件 其中Mozi僵尸网络节点本身都存在一个异或加密的初始Config字段,经过对其功能的分析后提取出对应的密钥为4E665A8F80C8AC238DAC4706D54F6F7E,通过编写脚本解密可得到对应的初始配置文件内容蠕虫程序会根据Config内的标签进行解析,然后执行具体的功能,主要的功能有以下几种1、DDOS:通过[atk]标签控制,复用了Gafgyt和Mirai的攻击代码,其中在botv2版本更新了[cnc]标签,提高了ddos攻击的效率,使得不仅可以作者自己使用节点,也可以将整个网络出租给其他团伙2、上传节点设备信息:由[idp]标签触发,通过GET请求将节点主机信息藏匿于Referer中,模板如下,具体的格式化内容为/[节点ID]/[节点ip]/[端口]/[本体完整路径]/[网关ip]/[CPU架构])3、执行命令:由[rn]标签触发,分为系统命令与BOT自定义的命令两类,共有以下三种直接执行系统命令,自定义的GET命令(发送节点id至对端),自定义的run命令(执行对端下发的指令,并将结果回传) 完整的Config标签如下字段标签标签作用[cnc][/cnc]指定C2,等待C2下发的指令进行DDos攻击[dip]ip:port[/dip]设置漏洞扫描和弱口令爆破的目标[atk][/atk]指定ddos攻击类型和目标[count]url[idp][/count]在该url登记Mozi节点[ver][/ver]设置Mozi-DHT协议v字段中固定字节的值[hp][/hp]设置Mozi节点hash的前缀[ud][/ud]更新本体[dr][/dr]从该url下载程序并运行[ss][/ss]指定节点标记,只有带有相同标记的Mozi节点会使用该config文件[cpu][/cpu]指定cpu类型,只有相同类型的Mozi节点会使用该config文件[sv][/sv]控制Mozi节点是否用该config更新本地config文件[rn][/rn]执行指定的cmd指令或http请求[nd][/nd]指定Mozi节点要连接的DHT节点[set][/set]设置MiTM模块[hj][/hj]MiTM模块相关 四、乾坤云服务防护效果 通过攻击分析验证,墨子僵尸网络所有的Nday漏洞利用均被华为乾坤云100%检测识别,同时墨子僵尸网络攻击方式也可被精确标注,并实现秒级攻击智能阻断。漏洞攻击目标设备防护效果CVE-2018-10561GPON 路由器准确识别CVE-2018-10562GPON 路由器准确识别CVE-2017-17215Huawei HG532准确识别CVE-2014-8361使用Realtek SDK的设备准确识别Eir D1000 无线路由器 命令注入Eir D1000 无线路由器准确识别CVE-2008-4873Sepal SPBOARD准确识别CVE-2016-6277Netgear R7000/R6400准确识别Netgear setup.cgi 未授权任意命令执行Netgear DGN1000准确识别MVPower DVR 命令执行MVPower DVR TV-7104HE准确识别CVE-2015-2051D-Link DIR-645准确识别D-Link UPnP SOAP 命令执行D-Link DIR-300/DIR-600/DIR-645/DIR-845/DIR-865准确识别Multiple CCTV-DVR Vendors 远程代码执行多家CCTV-DVR供应商的设备准确识别
-
【赛事资讯】2022年5月21日--5月27日✨【热门赛事】2022华为嵌入式软件大赛,报名截止倒计时3天,你报名了吗?摘要:华为嵌入式软件大赛是华为公司面向在校大学生举办的大型嵌入式软硬件竞赛,在华为嵌入式软件大赛的舞台上,不仅可以充分展示你的软硬件作品,而且可以收获奖金、奖杯等奖励。此次比赛分为算法组(纯编码赛题)与实物组(提交软硬结合的原型作品),比赛分初赛、复赛和总决赛三个阶段,其中各赛区复赛将在各赛区研究所举办,全国总决赛将汇集各路英豪决战松山湖欧洲小镇。✨【征文活动】与云原生的故事,征文获奖名单出炉!摘要:“与云原生的故事”有奖征文获奖名单正式出炉啦!让我们一同恭喜获奖者!✨【直播回顾】华为云IoT创新应用开发大赛总决赛摘要:优质物联网应用方案线上直击!想了解华为云IoT如何助力企业构建物联网应用方案吗?本次将为大家直播华为云IoT创新应用开发大赛总决赛现场。20支优秀团队现场竞演,参赛作品覆盖智联生活、智能制造、智慧城市、智慧农业、智慧医疗等场景,带你全方位了解华为云IoT全场景智慧物联!✨【热门活动】华为伙伴暨开发者大会技术检阅场 · 活动集合摘要:各位开发者们,欢迎来到华为伙伴暨开发者大会社区活动集合,我们为大家准备了丰富多彩的活动以及奖品,精彩不容错过~往期回顾:【赛事资讯】2022年3月25日精彩速递-提交倒计时|2022软挑作品提交通道已开启【赛事资讯】2022年3月18日精彩速递-第八届华为软件精英挑战赛火热报名中,超全FAQ来袭!【赛事资讯】2022年3月11日精彩速递-2022华为大学生无线基站Massive MIMO创新大赛正式开启,快来报名参赛吧!【赛事资讯】2022年3月4日精彩速递-官宣!2022年第八届华为软件精英挑战赛正式启动报名
-
本文分享自华为云社区《[基于STM32+华为云IOT设计智能称重系统](https://bbs.huaweicloud.com/blogs/351546?utm_source=csdn&utm_medium=bbs-ex&utm_campaign=iot&utm_content=content)》,作者:DS小龙哥 。 伴随着网络技术,各种通讯技术,传感器技术的飞速发展,物联网技术成为了当今技术领域发展为迅速的技术。而物联网技术的核心仍然是以互联网技术为基础的,物联网是新一代信息技术的重要组成部分,也是信息化时代的重要发展阶段。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。 本设计的模型来源于物流、矿山、高速公路等场合,车辆称重地螃的智能化升级要求,设计基于物联网的智能在线称重方案,开发智能称重控制器,合理选择部署多个重量传感器和必要的算法、通过WIFF通信模块、GPS定位模块,采集车辆重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重、地图位置等重要信息,实现对称重系统的远程监测。 随着物联网技术的逐步发展和日趋成熟,物联网技术是一个大而广的应用技术,并非仅仅局限于延伸应用。相信对地磅来说必然会有更多创新的应用实践。总的来说,地磅现代化、信息化、智能化一定紧随物联网技术的发展,而物联网技术的发展也必将促使地磅兴起新的技术革命。 # 1.设计的技术与硬件选项总结: (1)云端通信模块采用ESP8266-WIFI (2)联网通信模块采用:ESP8266 (3)GPS模块:采用ATGM336H双模GPS模块 (4)电子秤模块:用于称重 (5)物联网云平台:采用华为云物联网平台 # 设计总结: (1)采用ESP8266连接OneNet上传称重数据和GPS数据到云端(采用HTTP协议) 云端上显示2个数据:GPS定位数据–地图显示,称重传感器的数据值 (2)3个称重传感器接一个秤面称重计算平均值 (3)本地OLED显示屏显示GPS经纬度数据、称重传感器的数据值。 (4)OLED设计一个页面显示并设置当前的报警上限。通过按键进行加减 当称重的阀值超出了设置阀值,蜂鸣器报警。     # 2. 硬件选型 ## 2.1 STM32F103C8T6 STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。  ## 2.2 电子秤传感器  HX711 是一款专为高精度称重传感器而设计的24位A/D 转换器芯片。 ## 2.3 ESP8266-wifi  ## 2.4 GPS模块  ## 2.5 蜂鸣器  # 3. 创建云端产品与设备 ## 3.1 创建产品 地址:https://www.huaweicloud.com/?locale=zh-cn     ## 3.2 创建设备 地址: https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/device/all-device   ## 3.3 自定义模型数据 链接:https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-dev/all-product/7211833377cf435c8c0580de390eedbe/product-detail/6277d70223aaf461a0f72a56 这个模型数据就是设备要上传的数据。      ``` { "device_id": "6277d70223aaf461a0f72a56_weigh", "secret": "12345678" } 服务ID: weigh 属性名称 数据类型 访问方式 描述 weigh int(整型) 可读 重量 GPS string(字符串) 可读 GPS定位信息 ``` ## 3.4 MQTT密匙生成 创建完产品、设备之后,接下来就需要知道如何通过MQTT协议登陆华为云服务器。 官方的详细介绍在这里: https://support.huaweicloud.com/devg-iothub/iot_01_2127.html#ZH-CN_TOPIC_0240834853__zh-cn_topic_0251997880_li365284516112 属性上报格式: https://support.huaweicloud.com/api-iothub/iot_06_v5_3010.html   MQTT设备登陆密匙生成地址: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/   ``` DeviceId 6277d70223aaf461a0f72a56_weigh DeviceSecret 12345678 ClientId 6277d70223aaf461a0f72a56_weigh_0_0_2022050814 Username 6277d70223aaf461a0f72a56_weigh Password 0a3d097c6449b8526a562006a74c8c5e61ce63d6c831ea291560736a3332cf77 华为云物联网平台的域名是: 161a58a78.iot-mqtts.cn-north-4.myhuaweicloud.com ``` 华为云物联网平台的IP地址是:121.36.42.100 在软件里参数填充正确之后,就看到设备已经连接成功了。 接下来打开设备页面,可以看到设备已经在线了。   ## 3.5 主题订阅与发布 ``` //订阅主题: 平台下发消息给设备 $oc/devices/6277d70223aaf461a0f72a56_weigh/sys/messages/down //设备上报数据 $oc/devices/6277d70223aaf461a0f72a56_weigh/sys/properties/report //上报的属性消息 (一次可以上报多个属性,在json里增加就行了) {"services": [{"service_id": "weigh","properties":{"GPS":"lat:12.345,lng:45.678"}}]} ``` 通过MQTT客户端软件模拟上报测试:  查看控制台页面,数据已经上传成功了。  ## 3.6 应用侧开发 为了更方便的展示设备数据,与设备完成交互,还需要开发一个配套的上位机,官方提供了应用侧开发的API接口、SDK接口,为了方便通用一点,我这里采用了API接口完成数据交互,上位机软件采用QT开发。 帮助文档地址: https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html 设备属性就是设备上传的传感器状态数据信息,应用侧提供了API接口,可以主动向设备端下发请求指令;设备端收到指令之后需要按照约定的数据格式上报数据;所以,要实现应用层与设备端的数据交互,需要应用层与设备端配合才能完成。   在使用接口时,最好先使用华为自己的调试接口测试。 https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ListProperties  上位机软件采用Qt框架设计,Qt是一个跨平台的C++图形用户界面应用程序框架。Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。简单来说,QT可以很轻松的帮你做带界面的软件,甚至不需要你投入很大精力。 QT官网: https://www.qt.io/  # 4. STM32设备端开发 ## 4.1 程序下载  ## 4.2 原理图  ## 4.3 硬件接线 ``` (1)OLED显示屏接线: D0----(SCK)------------------->>PB14 D1----(MOSI)------------------>>PB13 RES—(复位脚低电平有效)-------->>PB12 DC--(数据和命令控制管脚)------>>PB1 CS--(片选引脚)---------------->>PA7 GND--------------------------->>GND VCC--------------------------->>3.3V或者5V (2)ATK-ESP8266 WIFI接线 PA2(TX)--RXD 模块接收脚 PA3(RX)--TXD 模块发送脚 GND---GND 地 VCC---VCC 电源(3.3V~5.0V) (3)外接蜂鸣器模块: 高电平响 BEEP----->PB8 (4)外接按键: KEY1 -PB3 按下是低电平 清零 KEY2 -PB2 按下是低电平 翻页 KEY3 -PB6 按下是低电平 加 KEY4 -PB7 按下是低电平 减 (5)外接LED灯模块: LED1-PB4 低电平亮 LED2-PB5 低电平亮 (6)称重传感器1 VCC--->5V SCK--->PA4 时序控制脚--对STM32--输出模式 DT---->PA5 输出输出脚-对STM32--输入模式 GND--->GND (7)称重传感器2 VCC--->5V SCK--->PA11 时序控制脚--对STM32--输出模式 DT---->PA12 输出输出脚-对STM32--输入模式 GND--->GND (8)称重传感器3 VCC--->5V SCK--->PA6 时序控制脚--对STM32--输出模式 DT---->PA8 输出输出脚-对STM32--输入模式 GND--->GND (9)GPS模块接线说明 GND----GND VCC---3.3V PB11----GPS_TX PB10----GPS_RX (--)板载LED灯:低电平亮 LED1--PC13 BEEP2--PC14 (--)板载按键: KEY1--PA0 按下为高电平 ``` ## 4.4 MQTT连接代码 ``` #include "stm32f10x.h" #include "led.h" #include "delay.h" #include "key.h" #include "usart.h" #include #include "timer.h" #include "bluetooth.h" #include "esp8266.h" #include "mqtt.h" //华为物联网服务器的设备信息 #define MQTT_ClientID "61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510" #define MQTT_UserName "61b9ba3a2b2aa20288c1e7f1_QQ1126626497" #define MQTT_PassWord "385ce91dfe7da5b7431868d5d87e7998163c493344040935d5a00024d6324242" //订阅与发布的主题 #define SET_TOPIC "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/messages/down" //订阅 #define POST_TOPIC "$oc/devices/61b9ba3a2b2aa20288c1e7f1_QQ1126626497_0_0_2021121510/sys/properties/report" //发布 char mqtt_message[200];//上报数据缓存区 int main() { u32 time_cnt=0; u32 i; u8 key; LED_Init(); BEEP_Init(); KEY_Init(); USART1_Init(115200); TIMER1_Init(72,20000); //超时时间20ms USART2_Init(9600);//串口-蓝牙 TIMER2_Init(72,20000); //超时时间20ms USART3_Init(115200);//串口-WIFI TIMER3_Init(72,20000); //超时时间20ms USART1_Printf("正在初始化WIFI请稍等.\n"); if(ESP8266_Init()) { USART1_Printf("ESP8266硬件检测错误.\n"); } else { //非加密端口 USART1_Printf("WIFI:%d\n",ESP8266_STA_TCP_Client_Mode("CMCC-Cqvn","99pu58cb","121.36.42.100",1883,1)); } //2. MQTT协议初始化 MQTT_Init(); //3. 连接华为服务器 while(MQTT_Connect(MQTT_ClientID,MQTT_UserName,MQTT_PassWord)) { USART1_Printf("服务器连接失败,正在重试...\n"); delay_ms(500); } USART1_Printf("服务器连接成功.\n"); //3. 订阅主题 if(MQTT_SubscribeTopic(SET_TOPIC,0,1)) { USART1_Printf("主题订阅失败.\n"); } else { USART1_Printf("主题订阅成功.\n"); } ......... ``` ## 4.5 ESP8266代码 ``` #include "esp8266.h" u8 ESP8266_IP_ADDR[16]; //255.255.255.255 u8 ESP8266_MAC_ADDR[18]; //硬件地址 /* 函数功能: ESP8266命令发送函数 函数返回值:0表示成功 1表示失败 */ u8 ESP8266_SendCmd(char *cmd) { u8 i,j; for(i=0;i10;i++) //检测的次数--发送指令的次数 { USARTx_StringSend(USART3,cmd); for(j=0;j100;j++) //等待的时间 { delay_ms(50); if(USART3_RX_FLAG) { USART3_RX_BUFFER[USART3_RX_CNT]='\0'; USART3_RX_FLAG=0; USART3_RX_CNT=0; if(strstr((char*)USART3_RX_BUFFER,"OK")) { return 0; } } } } return 1; } /* 函数功能: ESP8266硬件初始化检测函数 函数返回值:0表示成功 1表示失败 */ u8 ESP8266_Init(void) { //退出透传模式 USARTx_StringSend(USART3,"+++"); delay_ms(50); return ESP8266_SendCmd("AT\r\n"); } /* 函数功能: 一键配置WIFI为AP+TCP服务器模式 函数参数: char *ssid 创建的热点名称 char *pass 创建的热点密码 (最少8位) u16 port 创建的服务器端口号 函数返回值: 0表示成功 其他值表示对应错误值 */ u8 ESP8266_AP_TCP_Server_Mode(char *ssid,char *pass,u16 port) { char *p; u8 i; char ESP8266_SendCMD[100]; //组合发送过程中的命令 /*1. 测试硬件*/ if(ESP8266_SendCmd("AT\r\n"))return 1; /*2. 关闭回显*/ if(ESP8266_SendCmd("ATE0\r\n"))return 2; /*3. 设置WIFI模式*/ if(ESP8266_SendCmd("AT+CWMODE=2\r\n"))return 3; /*4. 复位*/ ESP8266_SendCmd("AT+RST\r\n"); delay_ms(1000); delay_ms(1000); delay_ms(1000); /*5. 关闭回显*/ if(ESP8266_SendCmd("ATE0\r\n"))return 5; /*6. 设置WIFI的AP模式参数*/ sprintf(ESP8266_SendCMD,"AT+CWSAP=\"%s\",\"%s\",1,4\r\n",ssid,pass); if(ESP8266_SendCmd(ESP8266_SendCMD))return 6; /*7. 开启多连接*/ if(ESP8266_SendCmd("AT+CIPMUX=1\r\n"))return 7; /*8. 设置服务器端口号*/ sprintf(ESP8266_SendCMD,"AT+CIPSERVER=1,%d\r\n",port); if(ESP8266_SendCmd(ESP8266_SendCMD))return 8; /*9. 查询本地IP地址*/ if(ESP8266_SendCmd("AT+CIFSR\r\n"))return 9; //提取IP地址 p=strstr((char*)USART3_RX_BUFFER,"APIP"); if(p) { p+=6; for(i=0;*p!='"';i++) { ESP8266_IP_ADDR[i]=*p++; } ESP8266_IP_ADDR[i]='\0'; } //提取MAC地址 p=strstr((char*)USART3_RX_BUFFER,"APMAC"); if(p) { p+=7; for(i=0;*p!='"';i++) { ESP8266_MAC_ADDR[i]=*p++; } ESP8266_MAC_ADDR[i]='\0'; } //打印总体信息 USART1_Printf("当前WIFI模式:AP+TCP服务器\n"); USART1_Printf("当前WIFI热点名称:%s\n",ssid); USART1_Printf("当前WIFI热点密码:%s\n",pass); USART1_Printf("当前TCP服务器端口号:%d\n",port); USART1_Printf("当前TCP服务器IP地址:%s\n",ESP8266_IP_ADDR); USART1_Printf("当前TCP服务器MAC地址:%s\n",ESP8266_MAC_ADDR); return 0; } /* 函数功能: TCP服务器模式下的发送函数 发送指令: */ u8 ESP8266_ServerSendData(u8 id,u8 *data,u16 len) { u8 i,j,n; char ESP8266_SendCMD[100]; //组合发送过程中的命令 for(i=0;i10;i++) { sprintf(ESP8266_SendCMD,"AT+CIPSEND=%d,%d\r\n",id,len); USARTx_StringSend(USART3,ESP8266_SendCMD); for(j=0;j10;j++) { delay_ms(50); if(USART3_RX_FLAG) { USART3_RX_BUFFER[USART3_RX_CNT]='\0'; USART3_RX_FLAG=0; USART3_RX_CNT=0; if(strstr((char*)USART3_RX_BUFFER,">")) { //继续发送数据 USARTx_DataSend(USART3,data,len); //等待数据发送成功 for(n=0;n200;n++) { delay_ms(50); if(USART3_RX_FLAG) { USART3_RX_BUFFER[USART3_RX_CNT]='\0'; USART3_RX_FLAG=0; USART3_RX_CNT=0; if(strstr((char*)USART3_RX_BUFFER,"SEND OK")) { return 0; } } } } } } } return 1; } /* 函数功能: 配置WIFI为STA模式+TCP客户端模式 函数参数: char *ssid 创建的热点名称 char *pass 创建的热点密码 (最少8位) char *p 将要连接的服务器IP地址 u16 port 将要连接的服务器端口号 u8 flag 1表示开启透传模式 0表示关闭透传模式 函数返回值:0表示成功 其他值表示对应的错误 */ u8 ESP8266_STA_TCP_Client_Mode(char *ssid,char *pass,char *ip,u16 port,u8 flag) { char ESP8266_SendCMD[100]; //组合发送过程中的命令 //退出透传模式 //USARTx_StringSend(USART3,"+++"); //delay_ms(50); /*1. 测试硬件*/ if(ESP8266_SendCmd("AT\r\n"))return 1; /*2. 关闭回显*/ if(ESP8266_SendCmd("ATE0\r\n"))return 2; /*3. 设置WIFI模式*/ if(ESP8266_SendCmd("AT+CWMODE=1\r\n"))return 3; /*4. 复位*/ ESP8266_SendCmd("AT+RST\r\n"); delay_ms(1000); delay_ms(1000); delay_ms(1000); /*5. 关闭回显*/ if(ESP8266_SendCmd("ATE0\r\n"))return 5; /*6. 配置将要连接的WIFI热点信息*/ sprintf(ESP8266_SendCMD,"AT+CWJAP=\"%s\",\"%s\"\r\n",ssid,pass); if(ESP8266_SendCmd(ESP8266_SendCMD))return 6; /*7. 设置单连接*/ if(ESP8266_SendCmd("AT+CIPMUX=0\r\n"))return 7; /*8. 配置要连接的TCP服务器信息*/ sprintf(ESP8266_SendCMD,"AT+CIPSTART=\"TCP\",\"%s\",%d\r\n",ip,port); if(ESP8266_SendCmd(ESP8266_SendCMD))return 8; /*9. 开启透传模式*/ if(flag) { if(ESP8266_SendCmd("AT+CIPMODE=1\r\n"))return 9; //开启 if(ESP8266_SendCmd("AT+CIPSEND\r\n"))return 10; //开始透传 if(!(strstr((char*)USART3_RX_BUFFER,">"))) { return 11; } //如果想要退出发送: "+++" } //打印总体信息 USART1_Printf("当前WIFI模式:STA+TCP客户端\n"); USART1_Printf("当前连接的WIFI热点名称:%s\n",ssid); USART1_Printf("当前连接的WIFI热点密码:%s\n",pass); USART1_Printf("当前连接的TCP服务器端口号:%d\n",port); USART1_Printf("当前连接的TCP服务器IP地址:%s\n",ip); return 0; } /* 函数功能: TCP客户端模式下的发送函数 发送指令: */ u8 ESP8266_ClientSendData(u8 *data,u16 len) { u8 i,j,n; char ESP8266_SendCMD[100]; //组合发送过程中的命令 for(i=0;i10;i++) { sprintf(ESP8266_SendCMD,"AT+CIPSEND=%d\r\n",len); USARTx_StringSend(USART3,ESP8266_SendCMD); for(j=0;j10;j++) { delay_ms(50); if(USART3_RX_FLAG) { USART3_RX_BUFFER[USART3_RX_CNT]='\0'; USART3_RX_FLAG=0; USART3_RX_CNT=0; if(strstr((char*)USART3_RX_BUFFER,">")) { //继续发送数据 USARTx_DataSend(USART3,data,len); //等待数据发送成功 for(n=0;n200;n++) { delay_ms(50); if(USART3_RX_FLAG) { USART3_RX_BUFFER[USART3_RX_CNT]='\0'; USART3_RX_FLAG=0; USART3_RX_CNT=0; if(strstr((char*)USART3_RX_BUFFER,"SEND OK")) { return 0; } } } } } } } return 1; } ```
-
【功能模块】E53IS1【操作步骤&问题现象】1、按着步骤改了,编译失败,看了一下报错,就第三张图,不知道是不是找不到对应头文件,我删了这行代码报错(第四张图)2、已经好久了,请问有解决办法了嘛【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
主题:用IoT打开数字化之门【直播嘉宾】:司世南 语祯物联创始人兼CEO【直播内容】:本期直播为您介绍物联网(IoT )发展趋势,结合案例分享IoT如何助力制造业企业数字化转型,帮助企业降本增效。5月13日(周五)16:00-17:00 点此观看直播~ 【观看直播抽好礼】直播期间可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live2021/12/22第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live2021/12/30第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live2022/1/6第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live2022/1/13第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live2022/2/17第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live2022/2/24第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live2022/3/4第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live2022/3/10第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO) 2022/3/17第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live2022/3/24第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live2022/4/7第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live2022/4/15第十三期 非标装备制造企业如何破除交付困境 张燕聪(广州盛原成科技有限公司CEO)live2022/4/21第十四期 华为终端供应商数字化生产建设方案 仲金柱(华为供应商质量发展协会会长)live2022/4/28第十五期 国产三维CAD助力制造业创新和转型升级 梅敬成(山大华天软件有限公司CTO)live2022/5/6第十六期 用IoT打开数字化之门 司世南(语祯物联创始人兼CEO)live2022/5/13更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
-
主题:用IoT打开数字化之门【直播嘉宾】:司世南 语祯物联创始人兼CEO【直播内容】:本期直播为您介绍物联网(IoT )发展趋势,结合案例分享IoT如何助力制造业企业数字化转型,帮助企业降本增效。5月13日(周五)16:00-17:00 点此观看直播~ 【观看直播抽好礼】直播期间可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live2021/12/22第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live2021/12/30第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live2022/1/6第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live2022/1/13第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live2022/2/17第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live2022/2/24第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live2022/3/4第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live2022/3/10第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO) 2022/3/17第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live2022/3/24第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live2022/4/7第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live2022/4/15第十三期 非标装备制造企业如何破除交付困境 张燕聪(广州盛原成科技有限公司CEO)live2022/4/21第十四期 华为终端供应商数字化生产建设方案 仲金柱(华为供应商质量发展协会会长)live2022/4/28第十五期 国产三维CAD助力制造业创新和转型升级 梅敬成(山大华天软件有限公司CTO)live2022/5/6第十六期 用IoT打开数字化之门 司世南(语祯物联创始人兼CEO)live2022/5/13更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
-
【功能模块】E53IS1【操作步骤&问题现象】1、按着步骤改了,编译失败,看了一下报错,就第三张图,不知道是不是找不到对应头文件,我删了这行代码报错(第四张图)2、环境配置都没问题,其它的示例试过没报错,我今天已经发过一帖子了,能告诉我怎么操作吗(急着用这一模块,麻烦工程师们了)【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
【功能模块】E53IS1【操作步骤&问题现象】1、按着步骤改了,编译失败,看了一下报错,就第三张图,不知道是不是找不到对应头文件,我删了这行代码报错(第四张图)2、环境配置都没问题,其它的示例试过没报错麻烦工程师说详细点,我是新手不会弄。【截图信息】【日志信息】(可选,上传日志内容或者附件)
-
-
【功能模块】E53IS1【操作步骤&问题现象】1、按着步骤改了,编译失败,试了倒数几个案例都失败了2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签