• [版主交流] 【华为云社区外部版主】精彩内容展示(上)
    2022年7月Devcloud版块作者:氟西汀《用c语言组合排列实现0-10的奇数问题——原创》                             《FAQ—DevCloud论坛(问题求助)总结-7月》作者:赫塔穆勒《7月份技术干货贴总结分享》                        《记一次大批量数据质检,心得分享。》  作者:加油O幸福《客服系统敏感词过滤功能开发》应用服务版块作者:仙女本仙《哈夫曼树的实现-python》《FAQ—应用服务论坛(问题求助)总结-7月-仙女本仙》                      作者:多米诺的古牌《应用服务版块各种应用教程贴之汇总贴》《【原创】Spring Security安全框架初识》《Spring Security实现登陆以及权限认证》《js的相关知识》《@ResponseBody注解的总结》《关于File文件的相关知识》《$.ajax中get和post请求的小知识点》《InputStream和OutputStream流的使用》EI企业智能版块作者:黄生                       《ModelArts模型到端侧的落地 - ModelBox端云协同AI开发套件(RK3568)体验》    《EI企业智能2022年7月高热贴合集》作者:运气男孩《基于ModelArts生成“最伟大的作品”歌词》《基于ModelArts训练自动驾驶-车道线检测模型》《ModelArts热门模型合集》昇腾版块作者:张辉《昇腾论坛2022年原创技术干货整理(2022.6.19-2022.7.16)》      《【MindSpore易点通·漫游世界】在Jetson AGX Orin上安装MindSpore 1.7.0 GPU版》《【MindSpore易点通·漫游世界】在Jetson AGX Orin上源码编译安装MindSpore 1.8.0 GPU版》《【CANN体验官第五期】【CANN训练营2022年第二期】CANN目标检测与识别一站式方案体验纪实》《CUDA编程(一)在WSL ubuntu 20.04上安装CUDA环境》《CUDA编程(二)CUDA代码执行原理》《CUDA编程(三)线程层次》《CUDA编程(四)Global Memory》《CUDA编程(五)Event》《CUDA编程(六)存储单元》《在200DK上玩转CANN目标检测与识别一站式方案》《玩转CANN目标检测与识别一站式方案 学习笔记》《CANN目标检测与识别一站式方案体验纪实》《昇思大模型体验平台体验记录》作者:小小啦啦《昇腾7月问题求助合计》《UML(统一建模语言)建模工具及类图画法的详细介绍》IoT物联网版块作者:DS小龙哥《基于STM32设计的智能家居控制系统(华为云IOT+语音控制+环境检测)》   《GPS原始坐标转百度地图坐标(纯C代码)》     《STM32+BH1750光敏传感器获取光照强度》  《STM32+MFRC522完成IC卡号读取、密码修改、数据读写》《STM32+HC05串口蓝牙设计简易的蓝牙音箱》《基于STM32单片机设计的红外测温仪(带人脸检测)》《STM32+MPU6050设计便携式Mini桌面时钟(自动调整时间显示方向)》《STM32+OLED显示屏制作指针式电子钟》《STM32+ULN2003驱动28BYJ4步进电机(根据圈数正转、反转)》《STM32F103ZE+SHT30检测环境温度与湿度(IIC模拟时序)》《STM32F103实现IAP在线升级应用程序》《STM32封装ESP8266一键配置函数:实现实现AP模式和STA模式切换、服务器与客户端创建》《STM32入门开发 NEC红外线协议解码(超低成本无线传输方案)》《STM32入门开发 编写DS18B20温度传感器驱动(读取环境温度、支持级联)》《STM32入门开发 采用IIC硬件时序读写AT24C08(EEPROM)》《基于STM32+华为云IOT设计的智能鱼缸》《嵌入式单片机-STM32物联网开发案例整理》作者:中华小能能《stm32+AT指令+ESP8266接入华为云物联网平台并完成属性上报与下发的命令处理》作者:DevFeng《nginx编译安装操作手册》《1267 - Illegal mix of collations (utf8_croatian_ci,IMPLICIT) and》《7月份物联网原创博客合集》智慧园区版块作者:智慧园区张师傅《智慧园区BBS论坛七月技术贴汇总一览(七月持续更新)》鲲鹏版块作者:乌龟哥哥《华为云鲲鹏论坛7月热门问题汇总》                 作者:Jack20《路由与交换VPN基础笔记分享》《鲲鹏7月精彩资讯内容汇总看》2022年6月Devcloud版块作者:氟西汀《python练习题-原创 难度从小到中到大~欢迎评论交流》                   《数据结构之线性表实现实验—原创》 《实时更新*FAQ—DevCloud论坛(问题求助)总结-6月》作者:赫塔穆勒《springboot 部分注解解析》                        《华为数据库技术干货及问题汇总【省心省时一贴看完!!!】》  作者:加油O幸福《应用魔方AppCube问题汇总》《springboot集成IM即时通讯》应用服务版块作者:仙女本仙    《基于华为云产品上线部署---qqfarm—原创》          《FAQ—应用服务论坛(问题求助)总结1月-6月 集合》           EI企业智能版块作者:黄生                       《强大的视频抠图(RVM)无障碍使用》    《EI企业智能2022年6月高热贴合集》作者:运气男孩《基于ModelArts实现"魔法换天"视频操作》《ModelArts最新动态合集》昇腾版块作者:张辉《昇腾论坛2022年原创技术干货整理(2022.5.19-2022.6.18)》      作者:多米诺的古牌《昇腾论坛六月问题解决汇总贴》《Redis持久化机制之RDB》作者:小小啦啦《昇腾趣味学习案例汇总》IoT物联网版块作者:DS小龙哥《基于STM32+华为云IOT设计的老人防摔倒报警系统》   《基于物联网设计的铂电阻气体测温仪(华为云IOT)》     《C语言-基本数据类型与位运算》  《C语言-语句(if,for,while,switch,goto,return,break,continue)》《C语言-数组》《C语言-函数的定义、声明、传参》《C语言-一维指针定义与使用》《C语言-内联函数、递归函数、指针函数》《C语言-void类型作为万能指针类型》《C语言-指针作为函数形参类型》《C语言-字符串处理》《C语言-结构体与位域》《C语言-学生管理系统(结构体+数组实现)》《C语言-预处理(#define、#if...)》《基于STM32设计的智能家居控制系统(华为云IOT+语音控制+环境检测)》《C语言程序设计全套知识点合集(物联网、单片机底层开发必备)》作者:星恒《6月IOT论坛干货合集》作者:中华小能能《基于TCP/IP协议的物联网安卓应用开发基础教程(Android Studio开发)》作者:DevFeng《pyautogui基本使用》《6月份IOT问题合集》智慧园区版块作者:智慧园区张师傅《智慧园区BBS论坛六月技术贴汇总一览(六月持续更新)》华为云Stack版块作者:huohaohao《华为云---云产品之计算》          《Mysql主从复制配置》           鲲鹏版块作者:乌龟哥哥《基于鲲鹏亲和开发框架进行原生开发》                 《第一讲:鲲鹏DevKit工具基础知识读书笔记--鲲鹏DevKit工具基础知识》《第二讲:鲲鹏代码迁移工具基础知识读书笔记》《基于鲲鹏亲和开发框架进行原生开发》《第三讲:手把手带你使用鲲鹏代码迁移工具实现源码迁移笔记》《第三讲:鲲鹏代码迁移工具基础知识笔记--鲲鹏迁移实战》《linux存储结构与磁盘划分》《浅谈鲲鹏DevKit工具》《华为云鲲鹏论坛6月热门问题汇总》作者:Jack20《好课推荐 | 六大模块,带你快速入门openGauss 数据库》《什么是GO类型系统》《GO语言类型系统之为类型添加方法笔记分享》《GO语言类型系统之值语义和引用语义笔记分享》《GO语言类型系统之结构体与初始化笔记分享》  2022年5月Devcloud版块作者:氟西汀《python之future对象-利用自定义函数、遍历来实现搜索~》           《FAQ—DevCloud论坛(问题求助)总结-5月》 作者:赫塔穆勒《PostgreSQL-14.3稳定版SQL语法》                        《【速进】再也不用爬楼啦。3-5月份所有AppCube已解决及之前经典问题整理汇总》  作者:加油O幸福《华为大赛集合》《5分钟玩转AI语音合成》应用服务版块作者:仙女本仙    《社区论坛活动集合——5月-活动全集》          《如何利用python来实现简单的智能对话?》           EI企业智能版块作者:黄生                       《强大的视频抠图(RVM)在AI Gallery的Notebook案例使用》    《EI企业智能2022年5月高热贴合集》作者:运气男孩《基于华为云ModelArts深度学习算法的语音识别实践》《ModelArts新人学习合集(建议收藏)》作者:可爱又积极《使用kenlm训练语言模型,并对句子进行打分》昇腾版块作者:张辉《【MindSpore易点通】体验 MindSpore v1.7 之 MindSpore Vision》《玩转Atlas 200DK(一)分设环境之开发环境准备》《玩转Atlas 200DK(二)分设环境之运行环境准备》《玩转Atlas 200DK(三)分设环境之运行环境准备(dd镜像方式)》《玩转Atlas 200DK(四)MindStudio安装与配置》《玩转Atlas 200DK(五)OpenCV的安装》《玩转Atlas 200DK(六)番外篇:寻找失去的网卡》《玩转Atlas200DK(七)合设环境准备》《玩转Atlas200DK(八)完成CANN训练营进阶班大作业》《玩转Atlas200DK(九)ATC模型转换》《玩转Atlas 200DK(十)安装华为AI框架MindSpore》《玩转Atlas200DK(十一)番外篇:TF卡扩容》《玩转Atlas200DK(十二)更好的TF卡扩容方式》《玩转Atlas200DK(十三)尝试昇思跑LeNet》《玩转Atlas200DK(十四)玩转CSI摄像头》《MindSpore漫游世界(总目录,不断更新中)》《Windows 11安装TinyMS 0.3.1》《昇腾论坛2022年原创技术干货整理(2022.4.18-2022.5.18)》《【易用性SIG】MindSpore漫游世界》作者:多米诺的古牌《昇腾论坛五月问题解决汇总贴》《@RequestParam和@PathVariable的区别和使用》作者:小小啦啦《ModelZoo提供可用的深度学习算法网络》《Python中OpenCV的基础知识》IoT物联网版块作者:DS小龙哥《基于CC2530和数字温湿度传感器的温湿度采集系统(报告) 》   《GB2312、GBK汉字取模与字库偏移地址的计算-单片机上常用》     《华为云设备接入IoTDA+应用侧开发案例整理分享》  《基于STM32+华为云IOT设计智能称重系统》《基于STM32+华为云IOT设计的智慧路灯》《基于STM32+华为云IOT设计的智能防盗单车锁》作者:星恒《5月IoT论坛资料汇总》作者:中华小能能《微信小程序调用华为云物联网平台的接口【基础教程】》作者:DevFeng《四款华为云严选市场1-100元以内的物联网应用产品》《eth0,lo,virbr0分别是什么》智慧园区版块作者:智慧园区张师傅    《智慧园区BBS论坛五月技术贴汇总一览(五月持续更新)》华为云Stack版块作者:huohaohao《华为伙伴暨开发者大会2022活动指南》          《Oracle常见错误代码及解决方法》           鲲鹏版块作者:乌龟哥哥《华为云鲲鹏论坛5月热门问题汇总》                 作者:Jack20《GO语言问题追踪和调试笔记分享》《GO语言错误处理之panic()和recover()函数笔记分享》《GO语言错误处理之defer接口笔记分享》《GO语言错误处理之error接口笔记分享》  2022年4月Devcloud版块作者:氟西汀《解析policy.json-原创》                         《FAQ—DevCloud论坛(问题求助)总结-4月》 作者:赫塔穆勒《MySQL 的数值数据类型》                        《【速进】四月活动合集【升级版,更全面】,我又来了。全论坛有奖活动合集,只看这一篇就够啦。!!!》  作者:加油O幸福《华为云Devcloud论坛4月AppCube热门问题汇总》应用服务版块作者:仙女本仙    《来体验下python代码带给你的编程体验~【原创】》          《4月论坛活动最新汇总全!快来围观》           EI企业智能版块作者:黄生                       《RVM(视频人像抠图)论文介绍》                                      《EI企业智能2022年4月高热贴合集》作者:@Wu《ModelArts AI和你一起在这个春天挖野菜》                      作者:运气男孩《使用A3C算法玩乒乓球游戏案例实操》《AI Gallery 精彩NoteBook案例合集》作者:可爱又积极《LSTM + Transformer (RTLM)语言模型》昇腾版块作者:张辉《【CANN训练营进阶班应用课笔记】大作业2实战趟坑记录(基于Atlas 200DK)》《【CANN训练营进阶班应用课笔记】大作业附加题实战趟坑记录(基于Atlas 200DK)》《【Atlas200DK】TinyMS 0.3.1安装手记》《在WSL的Ubuntu 20.04上一键安装MindSpore GPU版本的尝试》《ubuntu虚拟机网卡突然找不到的解决方案》《CANN 5.1? CANN 5.0.4?张小白又一次的折腾手记》《如何给dd镜像制作的Atlas200DK扩容》《张小白教你如何给Atlas 200DK扩容(另一种方式,跟前面不同)》《【CANN训练营新手班应用课笔记】大作业实战记录(基于Atlas 200DK)》《昇腾论坛2022年原创技术干货整理(2022.3.20-2022.4.17)》《【MindSpore漫游世界】在Jetson Orin上体验MindSpore 1.6.1》作者:多米诺的古牌《昇腾论坛四月问题解决汇总贴》作者:Tianyi_Li《【2022年第一期 CANN训练营进阶班应用课】第一次大作业》《【2022年第一期 CANN训练营进阶班应用课】第二次大作业》《【2022年第一期 CANN训练营进阶班应用课】附加题——媒体数据处理+模型推理》《【2022年第一期 CANN训练营进阶班模型课】第一次大作业和附加内容》IoT物联网版块作者:DS小龙哥《基于STM32+华为云IOT设计的云平台监控系统》   《STM32+华为云IOT设计的动态密码锁》               《深入学习华为云IOT云平台,了解设备上云,数据处理、应用开发【合集】》  《基于STM32+华为云IOT设计的酒驾监控系统》《采用ENC28J60以太网模块移植UIP、LWIP协议完成上云过程》《RC522射频卡模块与IC卡完成充值消费查询的技术实现思路》作者:星恒《4月IoT物联网论坛问题求助和技术干货汇总》作者:中华小能能《华为云IOT的Android应用开发【详细教程】》《详细教程:应用侧开发Java Demo》作者:DevFeng《4月-5月华为云热门活动一览》鲲鹏版块作者:乌龟哥哥《鲲鹏linux操作系统常用命令》                 《华为云鲲鹏论坛4月热门问题汇总》       作者:Jack20《路由与交换IPsec VPN 笔记》《数据结构考点笔记》《计算机算法考点笔记》《常用DOS命令笔记之磁盘操作类命令分享(下)》  2022年3月Devcloud版块作者:氟西汀《js单线程理解笔记-原创》                    《快来围观最新DevCloud论坛问题总结来啦~[3月]》《多端口和单臂路由器互联VLAN实验》                    作者:赫塔穆勒《三月份,全平台正在进行的活动合集,小伙伴们进来瞅瞅啦。!! 》  作者:加油O幸福《3月份论坛活动及中奖汇总》   应用服务版块作者:仙女本仙    《js的内存管理原理及概念理解》                   《2022-03活动论坛总结来喽~》            EI企业智能版块作者:黄生《AI做阅读理解》                                                                              《【EI企业智能】2022年3月高热贴合集》      作者:运气男孩《手把手教您体验ModelArts Notebook》《手把手教你玩转汤圆表情包》《EI论坛ModelArts技术干货FAQ合集》             《一键体验AI口红试色》作者:可爱又积极《轻量模块ECANet----通道注意力超强改进》昇腾版块作者:张辉《昇腾论坛2022年原创技术干货整理(不含MindSpore论坛,截止到2022.3.19)》《【CANN训练营进阶班应用课笔记】2022年第一季进阶班参与纪实》《昇思MindSpore TechDay Day1》《昇思MindSpore TechDay Day2》《昇思MindSpore TechDay Day3》《【CANN训练营进阶班应用课笔记】大作业1实战趟坑记录》《【CANN训练营进阶班应用课笔记】大作业1实战趟坑记录(基于Atlas 200DK)》《Atlas200DK安装MindSpore 1.6.1折腾纪实》《AI1S服务器安装MindSpore 1.6.1折腾纪实》《MindSpore漫游世界》作者:多米诺的古牌《昇腾论坛已结帖问题整理汇总帖》IoT物联网版块作者:DS小龙哥《BC20-NBIOT模块通过MQTT协议连接华为云服务器调试过程》            《关于硬件设备上云,应用侧开发等相关知识点的文章合集》《基于华为云物联网平台设计的浇花神器(STM32设备)》《ESP8266串口WIFI编程介绍》《实现STM32在线程序升级功能》《物联网应用开发实践案例-智慧农业》作者:星恒《从零开始学习物联网资料汇总》作者:DevFeng《IoT物联网论坛三月问题技术与资讯整理汇总帖》鲲鹏版块作者:乌龟哥哥《华为云鲲鹏论坛3月热门问题汇总》                                                         《华为数字化转型实践》                                                  作者:Jack20《常用DOS命令笔记分享(一)》《常用DOS命令笔记分享(二)》《常用DOS命令笔记之磁盘操作类命令分享(上)》《DOS命令笔记之文件操作类命令分享(上)》《DOS命令笔记之文件操作类命令分享(下)》2022年2月昇腾版块作者:张辉《Jetson Nano安装MindSpore 1.6 CPU版记录》《Jetson Nano源码编译MindSpore 1.6 GPU版编译记录 》《Jetson Nano源码编译MindSpore 1.6 GPU版编译的再次尝试(连载中)》                《树莓派也可以装MindSpore 1.6.0 CPU版》《树莓派源码安装gcc 7.3.0》《树莓派4B源码编译Mindspore 1.60CPU版本》作者:多米诺的古牌《Redis基础知识》IoT物联网版块作者:中华小能能《教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino IDE开发)》                作者:DS小龙哥《基于华为云IoT设计的健康管理系统并完成应用侧开发 》《基于华为云IoT设计的云端绿化管理系统(小熊派开发板) 》《华为云IOT应用侧开发思路-开发上位机与云端交互(桌面软件、小程序、手机APP) 》作者:DevFeng《华为云物联网学习路线》作者:JeckXu666《小熊派实现鸿蒙开机界面(LiteOS+LVGL)》《小熊派LiteOS移植LVGL 》《小熊派移植 LiteOS-M(MDK)  》《小熊派低功耗串口接受数据异常》《LiteOS + PahoMQTT 连接华为云》EI企业智能版块作者:黄生《盘古大模型和工业化的AI开发 》                                                               作者:运气男孩《基于ModelArts实现视频天空背景转换 》《ModelArts自动学习实现北京冬奥会与残奥会吉祥物识别》 作者:可爱又积极《kaldi中文语音识别---multi_cn案例整理及模型对比》应用服务版块作者:仙女本仙    《Shell的echo命令教程(原创)  》               数据库版块作者:窗台    《函数、匿名函数、立即执行函数  》                     Devcloud版块作者:氟西汀《如何利用华为ensp实现internet接入? 》                      《快来围观最新DevCloud论坛问题总结来啦~[2月]  》作者:赫塔穆勒《Mysql架构与内部模块(一)  》                       作者:加油O幸福《你们心心念念的华为云论坛活动汇总,安排*.*(二月份活动) 》        鲲鹏版块作者:乌龟哥哥《linux 鲲鹏服务器入门指令 》                    《几种数据库存储引擎对比 》                 《华为云鲲鹏论坛2月热门问题汇总》作者:Jack20《GRE VPN 技术原理笔记 》《路由与交换HA高可靠性概述笔记》《信息安全和加密学》《鲲鹏2月热点资讯盘点》作者:运维@大白鹅《if-elif-else 语句 》《match-case语句》2022年1月 Devcloud版块作者:客《如何利用pycharm制作一个简单的贪吃蛇小游戏  》《2022新年祝福代码诠释(1)》《pycharm之爬虫教程(仅限于技术交流)》《如何实现centos7中俩个服务器或三个及三个以上的服务器免密登录呢?》 《华为ensp网络之如何实现集线器和换机工作理验证实验?》《华为ensp网络之如何实现交换机的vlan配置?》作者:加油O幸福《DevCloud板块学习资料汇总 》EI企业智能版块作者:黄生《Text-To-SQL:不会SQL也能统计数据》       作者:运气男孩《ModerArts常见问题解决合集》昇腾版块作者:张辉   《昇腾论坛已解决问题整理V0.1》                                                              《张小白AI博文知识点串烧V20220105  》      鲲鹏版块作者:乌龟哥哥《新手入门鲲鹏入门资料汇总(文章篇) 》                                                    《新手入门鲲鹏入门资料汇总(实验篇) 》    
  • [赛事资讯] 【精彩速递】官宣!2022年第八届华为软件精英挑战赛正式启动报名
    【赛事资讯】2022年2月26日-- 3月4日✨【品牌赛事】官宣!2022年第八届华为软件精英挑战赛正式启动报名摘要:3月1日,“普朗克计划”2022第八届华为软件精英挑战赛正式启动报名。大赛是华为公司面向全国乃至全球在校大学生举办的大型软件编程竞赛,从2015年至今已成功举办七届,累计超10万优秀大学生参与,展示软件设计与编程的技术能力。本届大赛由华为云承办,将围绕“普朗克计划”主题展开,华为资深专家技术团队出题,邀请全球高校精英们加入,一起探索技术编程与竞技的更高境界,寻找像普朗克一样,能改变未来智能世界的软件精英。✨【前沿快讯】医疗物联网:彻底改变医疗保健摘要:医疗物联网 (IoMT) 是物联网的一个分支。总体而言,IoMT是一个由医疗设备、软件应用程序以及医疗生系统和服务组成的互联基础设施,该基础设施旨在改善医疗保健的可及性,同时改善患者健康和对医疗保健服务的满意度。据预测,到 2022 年,IoMT 市场的价值将约为 1580 亿美元,而 2016 年仅为 240 亿美元。我们一直在密切关注医疗物联网的发展,包括许多快速发展的技术和几个潜在的专利领域。✨【热门活动】第二届华为大学生电力电子创新大赛喊你来报名啦摘要:第二届华为大学生电力电子创新大赛正式开启,创新特等奖20万!报名后转发推文至朋友圈,集赞将有机会获得豪礼。接手速和人品的时候到了,你心动了吗? ✨【技术干货】智慧园区热门动态汇总!快速找到您想要的摘要:欢迎来到智慧园区!在这里,有技术干货,有实例分享,有专家交流,有各种奖励活动~希望大家在学习、交流的同时可以有所收获(精神上和物质上都要有!!) ✨【实战演练】ModelArts自动学习实现北京冬奥会与残奥会吉祥物识别摘要:最近,随着北京冬奥会的开幕,吉祥物“冰墩墩”也一举成为“顶流”,赢得了无数海内外粉丝的喜爱,更是一”墩“难求!当然,雪容融也是相当可爱的,这里使用华为云的ModelArts下的自动学习功能进行一个AI分类识别,看看我们的AI如何鉴别两只小吉祥物!!北京冬残奥会即将开幕,快来一起参与吧!!✨【直播回顾】三本书帮你看淡元宇宙摘要:带你从元宇宙的本质出发,获得关于元宇宙的不一样的洞见,给你一些元宇宙书籍阅读选择的启发。
  • [网络安全] 等保2.0政策之物联网安全扩展要求包括哪四个?
    我们大家都知道,等保2.0政策规定使用新技术的信息系统需要同时满足 “通用要求+安全扩展” 的要求。其中安全扩展项包含云计算、工业控制、移动互联、物联网。很多朋友在问,物联网安全扩展要求包括哪四个?等保2.0政策之物联网的安全需求包括哪四个?物联网安全扩展要求是针对感知层提出的特殊安全要求,与安全通用要求一起构成针对物联网的完整安全要求。主要内容包括“感知节点的物理防护”、“感知节点设备安全”、“网关节点设备安全”、“感知节点的管理”和“数据融合处理”等。【内容拓展1】:物联网安全相关标准物联网基础安全标准主要是指物联网终端、网关、平台等关键基础环节的安全标准。物联网基础安全标准体系包括总体安全、终端安全、网关安全、平台安全、安全管理等 5大类标准。【内容拓展2】:等保2.0云计算安全扩展要求包括哪些?云计算安全扩展要求是针对云计算平台提出的安全通用要求之外额外需要实现的安全要求。主要内容包括“基础设施的位置”、“虚拟化安全保护”、“镜像和快照保护”、“云计算环境管理”和“云服务商选择”等。【内容拓展3】:你知道等保2.0安全扩展要求包括哪些?等保2.0安全扩展要求包括包括云计算安全扩展要求、移动互联安全扩展要求、物联网安全扩展要求和工业控制系统安全扩展要求。其法律依据是《网络安全等级保护基本要求》(GB/T22239-2019)。
  • [技术干货] 每日一书丨展望2030年以后的移动通信,能带给我们什么?【转载】
    我们身处一场伟大的数字化浪潮中。创新如潮水般带给人们多样的选择和崭新的机遇。在许多国家,这种变化深刻影响着每个人、每个家庭、每辆车以及每个行业,重新定义着我们的工作、学习、生活与健康。今天,5G在全球加速部署,带来种种前所未想的可能。我们在见证一个时代,在这个时代,5G将全方位地改变生活、革新产业、重塑社会。展望2030年以及更远的未来,我们希望下一代移动通信带给我们什么?1.1 移动通信的演进自20世纪80年代以来,移动通信系统发生了翻天覆地的变化,大约每十年就会产生新一代技术。而移动网络主流业务的普及和新频段的成熟应用通常需要经历两代(也就是20年)才能成熟。如图1-1所示,每一代无线接入网和核心网都采用了新技术、新设计原则和新架构,能力较前一代显著提升。2G和3G网络的主要驱动力来自以语音通信为主的移动用户。随着手机的渗透率和语音业务的使用率趋于饱和,这种依赖用户数的商业模式开始增长乏力。从3G到4G,数据业务迅猛发展,移动宽带成为4G的主导业务。过去10年,移动通信的重大进步对人们的生活方式产生了深远影响。譬如,承载各种应用的智能手机已渗透到生活的方方面面。此时,4G网络运营商的收入主要依靠流量而非用户数,人均流量消耗的增长驱动了业务增长。得益于4G技术能力的进步,面向移动端的应用创新大量涌现,彻底改变了我们的日常生活。在中国,从现金支付到线上支付的转变是一大力证。如今,支付宝、微信支付以及Huawei Pay等在线支付手段早已成为大众喜闻乐见的支付方式。不管是购买日用百货,还是缴纳停车费,人们无须携带现金就可以轻松完成支付。另一个例子是社交媒体的兴起。任何人都可以随时随地通过智能手机与他人分享图片和视频。社交媒体已然成为一个新闻载体,加速了信息的传播。随着越来越多的高速率、大带宽应用不断涌现,这种创新趋势在5G中得到延续。这些应用涉及高清视频,以及增强现实(Augmented Reality,AR)、虚拟现实(Virtual Reality,VR)、混合现实(Mixed Reality,MR)等沉浸式媒体。目前,全球在用的智能手机数量约为38亿。预计到2025年,这一数字将达到80亿。届时,移动互联网用户数将超过65亿,其中80%的用户使用移动宽带。除此之外,AR/VR用户数将达到4.4亿,40%的车辆将接入网络。随着窄带物联网、工业物联网、车联网的标准化,移动网络已经从基于增强移动宽带(enhanced Mobile BroadBand,eMBB)的人联,转向基于超高可靠低时延通信(Ultra-Reliable Low-Latency Communication,URLLC)与海量机器通信(massiveMachine Type of Communication,mMTC)的物联。这种转变反过来又促进企业的数字化转型,让企业为下一波经济增长做好准备。5G商用最初聚焦于消费者业务,但3GPP 5G标准后续版本(如R16、R17等版本)的演进目标是催熟车联网、工业物联网等垂直应用。为了在众多企业和行业中实现不同级别的自动驾驶和工业4.0,移动通信领域正在与5G-ACIA、5GAA等各大垂直行业联盟紧密合作,致力于加速移动技术的应用。据估计,2025年后将实现四级自动驾驶,车联网的普及也将极大地提升运输效率。优化的商业流程和更高的生产效率将成为未来GDP增长的关键动力。5G开启了万物互联的大门,6G则有望演变为一个万物智联平台。通过这个平台,移动网络可以连接海量智能设备,实现智能互联。我们有理由相信,下一波数字化浪潮将带来更多创新,全方位地满足我们各方面的需求。通过人工智能和机器学习,物理世界和数字世界能够实时连接,人们得以实时捕捉、检索和访问更多信息和知识,步入智能化的全联接世界。同时,感知、分布式计算、先进一体化非地面网络、短距离无线通信等技术也将为未来的智能移动通信网络奠定基础。1.2 关键驱动力1.驱动力一:新应用和新业务目前,运营商的业务收入取决于每用户流量消耗的增长。如图1-3所示,从2020年到2030年,预计全球物联网与非物联网设备每月每用户平均移动流量消耗(实线表示)和用户数(方柱表示)将持续增长。图中数据来自ITU-R M.2370报告[3]。从图中可以看出,2020年智能手机用户的增长已经饱和,2020年至2030年的年均复合增长率约为6%。另外,根据全球移动通信系统协会(Global System for Mobile Communications Association,GSMA)的预测,从2019年到2025年,个人移动用户的渗透率将只增长3个百分点,即从67%增长到70%[4]。尽管如此,预计在10年内,每移动宽带(Mobile BroadBand,MBB)用户的移动数据流量将增长50倍,从2020年的5.3 GB/月增长到2030年的257 GB/月。5G平台已经广泛支持高速率、大带宽应用,拉动了流量消耗,也刺激了对网络容量的需求。在6G时代,更多应用将会涌现,扩展现实(Extended Reality,XR)云服务、触觉反馈、全息显示都有可能成为主流应用,涵盖360度VR电影、AR辅助远程服务、虚拟3D教育旅行、触觉远程医疗和远程操作等应用场景。据华为全球产业愿景报告预测,到2025年,头戴式VR/AR设备用户将超过3.37亿,10%以上的企业将使用AR/VR技术开展业务,而这些数字到2030年肯定还会增加。随着云XR应用数量和普及度的增加,以及显示尺寸、分辨率和刷新率的提高,5G能力的演进恐难以满足速率和时延需求。每个用户流量需求的指数级增长、对时延和可靠性的严格要求,以及此类用户数量的大幅增长,将成为6G网络设计的主要挑战。而且,很多运营商推出了无限流量套餐,这已经成为主流的商业模式,也将带来数据流量的增长。从图1-3还可以看出,到2030年,物联网设备数量将比2020年多13倍,企业和消费者的物联网连接都将持续增长。GSMA在其2020年移动经济报告中预测,到2024年,企业物联网的体量将超越消费者物联网。因此,人工智能将成为各种自动化的引擎,感知实时环境并利用海量数据进行实时决策。在智慧家庭、智慧医疗、智能汽车、智慧城市、智慧楼宇、智能工厂等场景中,宽带传感器将大规模部署,用于获取人工智能所需的海量数据。大数据是机器学习成功的基础,也是6G网络吞吐率实现数量级提升的重要驱动力。此外,网络感知、非地面通信等新能力将成为6G移动系统的有机组成部分,利用无线通信信号以及海量网络节点和终端设备本身的感知能力,实现对大面积区域的实时环境监测和成像。高性能工业物联网应用在确定性时延和抖动方面对无线性能也提出了更高的要求,可用性和可靠性必须得到保证。例如,时间敏感的命令与控制、多机器人运动协调与协作,都要求高性能。这些应用场景也是6G极致、多样化性能的驱动力。2.驱动力二:普惠智能未来几十年,数字经济将继续成为全球经济增长的主要动力,其增速将远高于全球经济增长本身。以2019年的统计为例,数字经济的增速是全球经济增速的3.5倍,达到15.6万亿美元,占全球经济总量的19.7%。预计到2025年这一占比将达到24.3%。按投资杠杆比较,在过去30年,数字经济投资每增加1美元,就撬动20美元的GDP增长,而非数字经济投资的平均杠杆率仅为1:3。移动通信是信息和通信技术(Informationand Communications Technology,ICT)产业中最具活力的领域之一,对人们的生活产生了深刻影响,缩小了数字鸿沟,极大地驱动了社会整体生产力的提升和经济的增长。到2024年,预计移动技术与服务将贡献全球GDP的4.9%(接近5万亿美元),日益普及的移动服务在提升生产力和效率的同时,也会使更多的行业受益。相信这一发展趋势将持续到2030年及更远的未来。随着普惠智能成为未来商业和经济模式的重要基础。原生AI支持:尽管5G在核心网设计中引入了一种新的网络功能(即网络数据分析)来实现智能化,但目前AI在网络运维管理中的应用范围仍然有限。实际上,5G仅将AI视作一种OTT(Over-The-Top)业务。6G则不同,在端到端移动通信系统的设计环节就考虑了对AI和机器学习的最佳支持,AI不仅仅是一项基本功能,还要实现最优效率。从架构角度看,在边缘运行分布式AI可以达到极致性能,同时也能解决个人和企业的数据所有权归属问题,满足不同国家和地区的监管要求。6G的“原生”AI支持旨在随时随地提供AI服务,并通过持续优化,不断提升系统性能和用户体验。因此,智能化达到了真正无处不在的程度,并与深度融合的ICT系统相结合,在边缘侧提供丰富的连接、计算和存储资源,成为6G的原生属性。相应的算法、神经网络、数据库、应用编程接口(Application Programming Interface,API)等能力也必须作为网络实现的一部分集成到6G系统中。具备原生AI支持的6G网络架构将实现AI的联网,从现在的集中式“云AI”转变为将来的分布式“互联AI”。原生数据隐私保护:在5G及前几代网络安全能力的基础上,6G将隐私保护纳入关键设计要求和原则。为6G组网和数据提供全面的隐私保护变得至关重要。一方面,数据所有权和访问权这两个关键因素对网络架构的隐私保护实现提出了挑战。另一方面,原生AI的网络架构也对分布式数据处理和访问能力提出了隐私保护要求。数据虽然是靠网络和应用的服务提供商来保障隐私的,但是由数据主体的用户行使授权的,应该让作为数据主体的用户来行使控制和操作数据的权利。下一代系统的设计应该将隐私保护作为首要任务,而不是一个附加特性。同时,还应确保数据主体的数据拥有权,在数据主体的授权下使能对数据的控制、操作和处理,适配数据隐私/保护条例或律法(如欧盟的《通用数据保护条例》),为未来的技术设计和应用建立基本的指导原则。原生可信:为支持各种应用场景和多样化的市场,必须为6G定制可验证和可度量的可信体系。5G和前几代通信网络中的运营和授权都采用集中模式,未来6G将有可能演变成一种多方参与、共建共赢的模式。这种商业模式要求可信架构必须顾全诸多因素。一个开放包容的多模信任模型,会比以往的单一信任模型更适合6G网络和业务。因此,一个值得信赖的6G架构除了要适配未来的网络和业务需求,还应考虑网络安全(security)、隐私(privacy)、韧性(resilience)、功能安全(safety)、可靠性(reliability)等多方面的可信因素。多元生态:AI的三大要素是数据、算法和算力。然而,单个企业可能不具备这三大要素的所有能力,无法独立地完成以智能化、快速技术创新为特征的数字化转型。如此一来,构建一个开放、可持续、多方协作的生态系统,是实现商业成功不可或缺的前提。并且,随着5G能力的逐步扩展,垂直无线市场预计将在21世纪20年代持续升 温。ICT领域和运营技术(Operational Technology,OT)行业的玩家已在探讨如何开展合作,创造新的收入来源。在此6G时代序幕开启之时,构建一个通用的ICT框架大有裨益。这个框架可以为所有行业提供全局视角,从而加速ICT和OT领域的合作与融合。第一波6G商用有望为消费者和垂直行业两大市场都注入强劲动力。3.驱动力三:社会责任与可持续发展我们以新冠肺炎为例来谈谈社会责任与可持续发展。这场全球危机影响了全世界几乎每一个人。疫情期间ICT行业奋起抗疫,在挽救生命方面发挥了关键作用。无线通信和定位技术能够追踪感染病人和监测疾病传播。为了减少医务人员的暴露风险,在5G医疗自动化领域涌现了许多重大创新。为了减少人员聚集同时又活跃经济,很多国家充分利用了基于无线网络的各类远程应用,如远程医疗、远程教育、远程办公、工业自动化、电子商务等。移动产业在这场疫情中支撑着全球经济的运转和社会的运行,由此产生的应用场景又反哺移动产业的未来技术演进。移动网络有可能彻底改变商业、教育、政府、医疗、农业、制造和环境,以及我们与他人互动的方式。移动网络在不断促进社会进步,并完全有可能重新定义人类世界。根据GSMA报告,联合国在2015年提出了旨在改变世界的可持续发展目标,而移动通信是实现这一系列目标的核心基石和重要手段。围绕其中所有17项目标,移动产业都扮演着休戚相关的重要作用,并且这种影响力与日俱增,为数字经济提供了坚实的基础,成为多样化创新业务的催化剂。华为和联合国分析了ICT与可持续发展目标相关性的量化基准[7],用以衡量ICT技术发展在多大程度上促进可持续发展目标的达成。根据2019年的评估,ICT技术成熟度与可持续发展目标的推进呈现出强相关(相关度为0.86)。在环境的可持续发展方面,ICT技术演进深刻影响目标7(经济型清洁能源)和目标11(城市与社区的可持续发展)的达成。世界正在日益城市化,预测显示,到2030年,城市人口将达到50亿,这些人口只占用3%的可居住土地,却消耗高达60%~80%的全球能源[8]。随着每比特能效的持续提升,ICT技术将越来越趋近碳中和,而基于ICT技术的智能电网、智能物流、智能工业等丰富的解决方案将使未来世界变得更节能,增进世界发展的可持续性。截至2020年,全球约60%的人口已经接入移动网络。另外的40%,有望在5G和6G网络中通过融合卫星通信等技术实现联网。举例来说,5G网络已经尝试将非地面接入技术融入5G新空口中。而雄心勃勃的星座卫星计划,将集结成千上万颗超低轨卫星以加强地空通信,并可能在6G时代结出硕果。通过移动网络提供的业务、应用与内容,有助于扩大经济融合度、增强社会凝聚力。物联网、大数据、人工智能、机器学习等新兴技术,越来越多地集成到网络基础设施中,为社会与环境的深入变革带来了巨大潜力。由于ICT技术与可持续发展目标的高度关联性,我们必须全面考虑6G通信系统和网络的设计如何支撑可持续发展目标的达成。1.3 总体愿景移动通信在短短四十年内彻底改变了世界。今天,不仅个人的工作和生活高度依赖无线网络,企业的数字化转型也离不开它。随着最新一代5G技术逐步落地,无线网络将从联接每个人扩展到联接万物。这种超联接让社会的全面自动化成为可能。同时,无线创新的势头也有增无减。正如Science, the endless frontier一书所指出的,无线技术的探索永无止境。未来十年无线技术将不断创新,基于机器学习的人工智能将会崛起,而把物理世界复刻为数字世界的数字孪生也将诞生。人工智能与数字孪生将形成双轮驱动,进一步助推技术的突破。由此产生的6G网络将重塑社会和经济,为未来的万物智能奠定坚实基础。作为下一代无线通信技术,6G将从人联、物联过渡到万物智联。随着社会迈向万物智能,6G将成为人工智能普及的关键因素,将智能带给每个人、每个家庭、每辆车和每个企业。6G就像一个遍布通信链路的分布式神经网络,融合物理世界与数字世界。它不再是单纯的比特传输管道,在联接万物的同时,也能够感知万物,从而实现万物智能。因此,6G将成为使能感知和机器学习的网络,其数据中心将成为神经中枢,而机器学习则通过通信节点遍布全网。这就是未来万物智能数字世界的图景。6G将推动所有垂直行业的全面数字化转型。它提供多T比特速率、亚毫秒级时延、“七个九”(99.999 99%)可靠性等极致性能。与5G相比,6G将在关键性能指标上取得重大飞跃,部分指标将提升超过一个数量级。6G将提供速度、可靠性比肩光纤的高性能通用连接,但一切都以无线的方式实现。由于摆脱了功能和性能的限制,6G会成为通用平台,支持创建任何业务与应用,最终实现“极致连接”!6G的颠覆性技术及重大创新,会与前几代拉开显著差距。原文链接:https://blog.csdn.net/Piotr_ce/article/details/123068170?spm=1000.2115.3001.5928
  • [前沿快讯] 医疗物联网:彻底改变医疗保健
    医疗物联网 (IoMT) 是物联网的一个分支。总体而言,IoMT是一个由医疗设备、软件应用程序以及医疗生系统和服务组成的互联基础设施,该基础设施旨在改善医疗保健的可及性,同时改善患者健康和对医疗保健服务的满意度。 据预测,到 2022 年,IoMT 市场的价值将约为 1580 亿美元,而 2016 年仅为 240 亿美元。40% 的物联网技术将与健康相关(比任何其他分支都要多),我们一直在密切关注医疗物联网的发展,包括许多快速发展的技术和几个潜在的专利领域。 物联网设备的兴起 智能设备和传感器的最新发展见证了它们成本和尺寸的缩减,同时提高了它们的连接性。有鉴于此,医疗保健行业的各个领域都成为了 IoMT 应用的目标,从行业级别的数据交换到改善个体患者在家中的生活质量等等。Apple Watch 和 Fitbit 智能手表就是此类技术的简单示例。 由于改进了算法,这两者都可以从用户那里收集大量准确的数据,包括血压、心率、睡眠模式和步数。这些数据可以发送到移动手机应用程序,但是将这些收集的数据分发到更广泛的网络,例如医院系统和医疗保健专业人员,有些欠缺。 将智能设备的连接性扩展到医疗保健网络可以实现医院内部的高效通信,以及与患者和其他医疗保健专业人员的外部通信。在许多医疗保健行业都在为时间和金钱而挣扎的时候,医疗数据的大范围共享将有助于优化医疗领域的工作效率。 IoMT 的成功应用包括对患有慢性或长期疾病的患者进行远程监测。可穿戴设备可以从患者那里收集医疗数据,并将数据分发给相关护理人员,还可以监测患者的活动。这种远程监测(称为“远程医疗”)似乎是医学的一个重要方面,因为随着人口预期寿命的不断增加,可能会增加患有长期健康问题的患者数量。很明显,如果实施得当,远程医疗可以为医疗服务节省大量时间和金钱。 这种远程医疗还使患者能够更好地与护理团队建立联系,同时对照顾他们的护理计划更有信心。一个已经取得重大进展的特殊应用是糖尿病患者的血糖监测,这种情况影响了大约 9% 的英国成年人口。 这些发展趋势影响了进一步的创新。例如,正在开发智能药丸,它使用传感器通过与身体的相互作用来检测何时服用了药丸。然后,药丸会向患者皮肤上的贴片发送信息,贴片随后会连接到应用程序,以便患者(或其他人)可以监控药物服用。药物依从性是一个常见的问题,这也是痴呆和精神疾病患者特别关心的问题。 该技术允许医疗保健专业人员确保患者正确服用药物。IoMT的另一个有趣的例子是一种植入动脉的装置,它可以监测压力,并将信息传递给外部装置,以便患者或医疗保健专业人员可以收到中风的早期迹象。 IoMT的潜在应用范围非常广泛,作者无法一一列举,但很容易看出其潜在的好处。想象一下无缝的医院体验,包括预约、检查等待时间、停车付费、登记、获取患者医疗数据、在医院各科室之间即时传输数据、开药、监测药物摄入量以及持续远程监测患者,所有这些都使用 IoMT,包括您的智能设备可访问的所有方面。 医疗物联网 (IoMT)采用面临的挑战 虽然IoMT在现实实践中的应用数量有限,但还是存在一些障碍,阻碍了IoMT许多方面的实施。将任何医疗设备付诸实践都需要长时间的测试和监管批准,尤其是在技术将完全取代由医疗专业人员执行的步骤或流程的情况下。此外,实施大量这项技术的初始成本将是巨大的,包括软件、硬件、IT 基础设施和支持的成本,以及由于当前医疗机构缺乏物联网而产生的员工培训成本。 当 IoMT 的长期优势和益处的证据相对缺乏时,这些成本对于已经不堪重负的公共卫生服务来说是难以接受的。更重要的是,在网络安全和数据保护处于公众关注前沿的时代,患者数据的大规模存储和传输需要认真考虑。 尽管如此,进入壁垒并非不可逾越,随着IoMT的不断发展,医疗保健行业无疑将看到实施此类技术的巨大好处。 专利考虑 随着如此有希望的增长,对这一领域发明的专利保护可能被证明是非常有价值的,并且形成 IoMT 网络的广泛组件呈现出各种潜在的可专利领域。医疗物联网成为医疗保健服务的一个重要方面似乎只是时间问题,这意味着对知识产权 (IP) 的需求很重要。在可能获得专利保护的情况下,早期开发阶段的考虑至关重要,因为必须在公开披露发明之前提交专利申请。此外,请考虑您的发明可以在系统或网络中的何处实施,例如,一项涉及使用软件和硬件的发明可能会产生多个发明,从而需要申请多项专利。 在这一领域耕耘可能具有挑战性,因此强烈建议与拥有医疗保健设备和物联网专业知识的专利律师事务所合作。(编译iothome)
  • [问题求助] 【小熊派Bear_pi IOT产品】【串口控制台功能代码】
    想问一下大佬们,有没有Bear_pi IOT 串口控制台的demo发一下,谢谢了
  • [知识分享] 华为云IoT设备接入服务都有哪些功能?看完给你整的明明白白
    【摘要】 设备接入服务能够帮助物联网行业用户快速完成设备联网及行业应用集成。本文分享自华为云社区《华为云IoT设备接入服务都有哪些功能?看完给你整的明明白白》,作者:Super.雯。设备接入服务(IoTDeviceAccess)是华为云的物联网平台,提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务,帮助物联网行业用户快速完成设备联网及行业应用集成。基于华为云物联网平台的物联网系统如图9-6所示,其主要分为几个部分:终端设备、设备连接、消息通信、设备管理、数据流转、物联网应用,以及与华为云的其他服务进行的数据互通和协同。基于华为云物联网平台的物联网系统物联网常用协议HTTPHTTP(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。同时HTTP是一个无状态的协议。同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。为了解决这个问题,Web程序引入了Cookie机制来维护状态。并且HTTP是一种同步协议。客户端需要等待服务器响应。Web浏览器具有这样的要求,但它的代价是牺牲了可伸缩性。在IoT领域,大量设备以及很可能不可靠或高延迟的网络使得同步通信成为问题。异步消息协议更适合IoT应用程序。传感器发送读数,让网络确定将其传送到目标设备和服务的最佳路线和时间。HTTP是一种有许多标头和规则的重量级协议。它不适合受限的网络。建立过程中三次握手:HTTP三次握手流程注解:SYN:同步,Seq:序号,ACK:确认,ack:确认序号。第一次握手:当客户端想与服务器建立连接的时候,会发送一个请求连接的报文,此报文首部中的SYN=1(TCP规定,SYN=1的报文段不能携带数据,并且需要消耗一个序号),同时随机生成初始序列号Seq=X,客户端进入了SYN-SENT(同步以发送状态)。第二次握手:服务器接收到客户端发送的连接请求报文后,如果同意连接,则发出确认报文,其中确认报文段中SYN=1,ACK=1,同时随机初始化一个序列号Seq=Y,确认号ack=X+1,而且服务器也进入SYN_RCVD(同步接收状态)。第三次握手:客户端接收到确认报文后,还需要向服务器发出确认报文。确认报文的ACK=1,ack=Y+1,此时,TCP连接建立成功,客户端进入ESTABLISHED(已建立连接)状态。三次握手的重要性:当客户端发送第一个请求连接的报文的时候,由于网络阻塞原因,导致服务端不能及时收到,直到某个时刻才收到请求连接的报文,此时此刻服务器收到的已经是一个失效的报文了,服务器给客户端发送确认报文,等待客户端的连接,假设采用的是两次握手,客户端不理睬服务器发送的确认报文,而服务器一直等待接收客户端的请求,这样导致服务器很多资源浪费,而如果采用三次握手,服务器接收不到客户端的确认报文,就会断开与客户端的连接,因此采用三次握手更为合适。MQTTMQTT(MessageQueuingTelemetryTransport,消息队列遥测传输),是IBM开发的一个即时通讯协议。MQTT协议采用订阅/发布的工作模式,客户端向服务器订阅感兴趣的信息,服务器把信息推送给订阅了这类信息的客户端。MQTT交互流程MQTT的特点:协议简单,轻量级(消息可以短至两个字节,对终端的硬件配置要求低,适用于CPU等硬件资源有限的场合,有助于降低终端成本,推动产业发展)。基于TCP/IP,消息传递可靠。使用长连接,有心跳保活机制,减少重新建链开销。支持消息实时通知、有丰富的推送内容。心跳机制不利于设备进入休眠模式,设备比较耗电。MQTT的特点非常符合无线传感网、物联网等领域的要求,目前智慧家庭解决方案主要就是用的MQTT协议。客户端(Client):包括发布者或订阅者,两者都是MQTT客户端,分别负责发布或订阅。可以是从微控制器到一个完全成熟的服务器,在设备上运行着MQTT库并且可以通过任何网络连接到MQTT代理服务器。代理服务器(Broker):是任何发布/订阅协议的核心,可以处理多达成千上万的MQTT客户端的并发连接。代理服务器主要负责接收所有消息,将消息发送给所有订阅的客户端。一个职责是保持所有持续连接的客户端的会话,包括订阅和丢失的消息。另一个职责是对客户端的认证和授权。CoAPCoAP(ConstrainedApplicationProtocol,受限制的应用协议),专门为资源受限设备(如传感器节点)和网络(如NB-IoT,LoRa)而设计。CoAP从HTTP协议发展而来,CoAP协议也是采用请求/响应工作模式,客户端发起请求,服务器做出响应。为了克服HTTP对于受限环境的劣势,CoAP既考虑到数据报长度的最优化,又考虑到提供可靠通信。CoAP交互流程CoAP特点:报头压缩,报文格式简单,消息可以很短,最小的CoAP消息只有4个字节。传输层使用UDP协议,减少网络开销和支持组播功能。为了弥补UDP传输的不可靠性,CoAP有消息重传机制。不支持长连接,没有心跳,没有业务时设备不用跟外部发消息。做业务时,设备可能需要先唤醒,消息实时性不太好。跟MQTT相比,CoAP不需要保持长连接,不用不停发送心跳消息,更加适合物联网场景中需要休眠/唤醒机制的设备,设备可以长时间处于休眠模式,节省电量,一块电池使可以用10年甚至更久,目前智能水表、智能电表、智慧农业、智能停车场等解决方案主要就是用的CoAP协议。设备管理设备注册&接入鉴权为了保证接入物联网平台的设备是安全可信的,需要进行设备注册和设备接入鉴权操作。设备注册,指用户通过控制台或调用注册设备API在IoT平台中注册设备信息,平台中存在设备信息后,再接入真实的实体设备,这样平台与终端实体设备可以实现连接和通信。设备接入鉴权,是指IoT平台对接入平台的设备进行鉴权认证,用于保障设备接入信息的完整性和安全性、设备与平台消息传输完整性和安全性。 设备注册&设备接入鉴权命令下发设备的产品模型中定义了IoT平台可向设备下发的命令,平台向设备下发命令,修改设备的服务属性,实现对设备的控制。平台向设备下发命令包括立即下发和缓存下发两种情况,如下表所示。 命令下发机制 定义 适用场景 NB-IoT设备集成Agent LiteSDK设备/原生MQTT设备 立即下发不管设备是否在线,平台收到命令后立即下发给设备。如果设备不在线或者设备没收到命令则下发失败。支持给本应用的设备和被授予权限的其他应用的设备下发命令。立即下发适合对命令实时性有要求的场景,如路灯开关灯,燃气表开关阀。使用立即下发时,命令下发的时机需要由应用服务器来确定。适用,需将省电模式设置为DRX或eDRX模式,且需要在物联网平台与EPC网络之间建立IPSEC隧道。 适用缓存下发物联网平台在收到命令后先缓存,等设备上线或者设备上报数据时再下发给设备,如果单个设备存在多条缓存命令,则进行排队串行下发。支持给本应用的设备和被授予权限的其他应用的设备下发命令。缓存下发适合对命令实时性要求不高的场景,如配置水表参数,适用,需将省电模式设置为PSM模式。 不适用对于立即下发模式,下发的命令直接全部下发给设备;对于缓存下发模式,需等待设备上线或设备上报数据到平台后,按照串行的方式下发命令给设备,即缓存的命令需要按照缓存的时间逐一向设备进行下发。设备命令整个生命周期的状态转换如下图所示。设备命令的状态转换设备命令状态的详细说明如下表所示。状态说明 等待(PENDING)NB-IoT设备采用缓存下发命令时,如果设备未上报数据,物联网平台会将命令进行缓存,此时任务状态为“等待”状态;NB-IoT设备采用立即下发模式下发命令时,无此状态;MQTT设备下发命令时,无此状态。超期(EXPIRED)NB-IoT设备采用缓存下发模式下发命令时,如果在设置的超期时间内,物联网平台未将命令下发给设备,则状态变更为“超期”。超期时间会以北向接口中携带的expireTime为准,如果未携带,默认为48h;NB-IoT设备采用立即下发模式下发命令时,无此状态;MQTT设备下发命令时,无此状态。取消(CANCELED)如果在命令下发状态为“等待”时,用户人工取消了命令下发任务,则任务状态变更为“取消”。 已发送(SENT)NB-IoT设备采用缓存下发模式下发命令时,设备上报数据,物联网平台会将缓存的命令发送给设备,此时状态会由“等待”变更为“已发送”;NB-IoT设备采用立即下发模式下发命令时,如果设备在线,状态变更为“已发送”;MQTT设备下发命令时,如果设备在线,状态变更为“已发送”。 超时(TIMEOUT)NB-IoT设备受到命令时,物联网平台在180s内未收到设备反馈的收到命令响应,此时状态会变更为“超时”;MQTT无此状态。已送达(DELIVERED)物联网平台收到设备反馈的已收到下发命令响应后,状态变更为“已送达”。执行成功(SUCCESSFUL)设备在执行完命令后,向物联网平台反馈命令执行成功的结果,将状态变更为“执行成功”。执行失败(FAIL)设备在执行完命令后,向物联网平台反馈命令执行失败的结果,将任务状态变更为“执行失败”;NB-IoT设备采用立即下发模式下发命令时,如果设备离线,状态变更为“执行失败”;MQTT设备下发命令时,如果设备离线,状态变更为“执行失败”。通过命令下发特性,平台能够为终端用户提供远程控制设备的服务,实现设备连接,也可以实现对设备的批量命令下发等,操作简单快捷。当用户需要对设备进行某一操作,而设备并不在可操作范围内,或者需要操作大批量设备时,可以使用命令下发。设备联动规则规则引擎的使用对象是终端用户,系统已经预置支持的规则场景,终端用户通过方便、易理解的友好界面在自有设备下制定自动化规则。规则可以和设备、应用、告警绑定,当绑定的信息满足条件时,规则可以自动化执行响应动作。规则引擎定位处理各种事件,利用规则引擎可以完成异常事件的及时通知和快速处理,帮助终端用户维护设备、监控设备,保证系统业务的及时恢复。阈值超限、范围超限、位置跟踪等事件,也可定义为规则引擎输入条件,并关联对应的处理动作。设备联动的触发条件及响应动作如下图所示。设备联动规则设备升级管理物联网平台支持通过OTA(OverTheAir)的方式对终端设备的固件和软件进行升级。设备固件升级:固件升级又称为FOTA(FirmwareOverTheAir),是指用户可以通过OTA的方式对支持LwM2M协议和CoAP的设备进行固件升级,升级包下载LwM2M协议。设备软件升级:软件升级又称为SOTA(SoftwareOverTheAir),是指用户可以通过OTA的方式对支持LwM2M协议和CoAP的设备进行软件升级,升级包下载协议为PCP。 设备固件&软件升级设备批操作华为云物联网平台支持对设备的批量操作,包括批量注册设备、批量命令下发、批量位置上传、批量设备配置和批量软固件升级。批量注册设备:因注册设备数量过多而导致注册时间太长,可采用批量注册的方式注册设备。批量命令下发:当物联网平台需要对批量设备下发命令时,可通过北向接口创建批量命令下发任务,在物联网平台上,可查看任务的执行状态、操作者和成功率等信息。批量位置上传:当物联网平台需要对设备的位置进行批量上传时,可采用批量位置上传操作。这里的设备主要指安装位置相对固定的终端设备,如水表。批量设备配置:当物联网平台需要对设备进行批量配置时,可采用批量设备配置操作。批量软固件升级:当物联网平台需要对设备的固件或者软件进行批量升级时,可采用批量软固件升级操作。设备批操作向物联网平台提供对终端设备统一管理的通道,能提升对终端设备的管理效率,很好地满足用户批量管理设备的需求。当用户接入的设备数量过多,或者需要对全部或某一个群组的设备进行相同的操作时,可以采用设备批操作。批量注册设备和批量位置上传时设备数量的上限是30000个,批量命令下发、批量设备配置和批量软固件升级的设备上限是10000个。更多学习内容,请关注IoT物联网社区 
  • [技术干货] 基于鸿蒙Hi3861和华为云平台的烟雾报警器
    项目需求随着社会的发展,现如今,人们对自己生活的安全越来越关心。俗话说,水火无情,防止家中失火,是保障我们人身安全最重要的一点。传统的家庭烟雾报警器,只能在产生烟雾时,发生报警。如果家中无人,就不能产生什么作用。而这只能保护一定人身安全,但对人们的财产安全往往很难保证。所以今天将以Hi3861为主控,设计一款可以与云平台交互,使用者既可以在发生烟雾时,家庭产生报警,又可以实时上传到云平台,使用户可以远程了解室内安全。硬件介绍Hi3861Hi3861是一款高度集成的2.4GHz WiFi SoC芯片,集成IEEE 802.11b/g/n基带和RF电路,RF电路包括功率放大器PA、低噪声放大器LNA、RF balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。Hi3861WiFi基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。Hi3861芯片集成高性能32bit微处理器、硬件安全引擎以及丰富的外设接口,外设接口包括SPI、UART、I2C、PWM、GPIO和多路ADC,同时支持高速SDIO2.0 Slave接口,最高时钟可达50MHz;芯片内置SRAM和Flash,可独立运行,并支持在Flash上运行程序。Hi3861支持Huawei LiteOS和第三方组件,并配套提供开放、易用的开发和调试运行环境。Hi3861芯片适应于智能家电等物联网智能终端领域。MQ-2MQ-2常用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。故因此,MQ-2可以准确来说是一个多种气体探测器。MQ-2的探测范围极其的广泛。它的优点:灵敏度高、响应快、稳定性好、寿命长、驱动电路简单。软件介绍1. VScode2. DevEco Device Too(HarmonyOS面向智能设备开发者提供的一站式集成开发环境)3. 鸿蒙底层源码4. 华为云平台5. 串口调试助手功能设计修改配置文件修改device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mkCONFIG_PWM_SUPPORT=y CONFIG_I2C_SUPPORT=y编写功能程序检测烟雾值当遇到可燃气体时,可燃气体传感器的电阻值会减小,气体的浓度越大电阻值越小。ADC通道的电压会增大,可以通过采集ADC5通道的电压来计算传感器的电阻值。通过电阻值计算可燃气体浓度。 hi_u16 value; int num=5; while (num>0) {num--; if(hi_adc_read(HI_ADC_CHANNEL_5, &value, HI_ADC_EQU_MODEL_4, HI_ADC_CUR_BAIS_DEFAULT, 0) != HI_ERR_SUCCESS){ printf("ADC read error!\n"); }else{ printf("ADC Voltage = %f\n", hi_adc_convert_to_voltage(value)); printf("MQ2 value = %f\n", 5 / hi_adc_convert_to_voltage(value)-1); usleep(10000); } }5 / hi_adc_convert_to_voltage(value)-1就是我们使用的MQ-2的烟雾值。越小,表示烟雾越浓。蜂鸣器 const int NumLevels = 100; for (int i = 1; i < NumLevels; i++) { hi_pwm_start(HI_PWM_PORT_PWM0, 65400/i, 65400); osDelay(10); hi_pwm_stop(HI_PWM_PORT_PWM0); }阈值报警if((5 / hi_adc_convert_to_voltage(value)-1)<9) { for (int i = 1; i < NumLevels; i++) { hi_pwm_start(HI_PWM_PORT_PWM0, 65400/i, 65400); osDelay(10); hi_pwm_stop(HI_PWM_PORT_PWM0); } }上传烟雾值到华为云平台while (!toStop){ char* payload ="上传给华为云平台的数据"; int payloadlen = strlen(payload); if (MQTTPacket_read(mqtt_buf, mqtt_buflen, transport_getdata) == PUBLISH){ unsigned char dup; int qos; unsigned char retained; unsigned short msgid; int payloadlen_in; unsigned char* payload_in; int rc; MQTTString receivedTopic; rc = MQTTDeserialize_publish(&dup, &qos, &retained, &msgid, &receivedTopic, &payload_in, &payloadlen_in, mqtt_buf, mqtt_buflen); // 发送数据 printf("message arrived %.*s\n", payloadlen_in, payload_in); mqtt_rc = rc; } printf("publishing reading\n"); mqtt_len = MQTTSerialize_publish(mqtt_buf, mqtt_buflen, 0, 0, 0, 0, topicString, (unsigned char*)payload, payloadlen); mqtt_rc = transport_sendPacketBuffer(mqtt_sock, mqtt_buf, mqtt_len); osDelay(1000); }传给华为云的数据格式{"services": [ {"service_id":"服务ID", "properties": { "属性名称":烟雾值 } } ] }        后续欢迎关注我的微信公众号:物联网知识,发送“基于鸿蒙Hi3861的烟雾报警器”获取源码。编写不易,感谢支持。
  • [交流吐槽] 物联网区块链革命已经到来
    区块链和物联网已经独自颠覆了多个行业。当这两种技术交叉时会发生什么?物联网是根本上改变我们连接事物和周围世界的方式,世界将比以往任何时候都更加互联、更加以数据为中心、更加信息灵通。当看起来势不可挡的区块链行业遇到物联网行业这个不可移动的物体时,会发生什么?要理解为什么这两种技术有如此多的重叠,就必须理解区块链作为一种技术是什么,它的特性使其独特地适合于解决某些挑战,以及使其成为一个如此有前途的领域的背景。什么是区块链?区块链是一个列出交易的分布式分类账。每个“区块”包含了匿名用户进行的公开交易的列表,然后这些列表被链接在一起,创建了所有交易的全面历史记录。在集中式信任模型中,一方拥有分类帐,因此负责验证交易是否正确 (Alice不能用Alice没有的钱支付Bob)。由于区块链是一个分布式模型,因此需要有一个协议来定义共识(“社区如何才能相信Alice的账簿是正确的?”)。因此,添加新块是具有挑战性,而修改旧块必须非常困难。有许多方法可以做到这一点,并且关于这个主题已经有很多完整的白皮书,但是有两个流行的协议是:工作量证明: 所有用户竞争解决一个决定链中下一个块是什么的数学难题。权益证明: 与其让每个人同时竞争(这种方式效率极低且耗电),不如随机选择网络中的一个用户来执行此计算,其中他们被选中的机会随着他们投入的硬币数量而增加,或锁定在区块链上。每个块都以加密方式链接到每个前一个块,因此过去的任何更改都会影响所有未来的块。这使得更改区块链中先前的区块变得异常困难,这使其安全且不可变。该系统让位于一些有益的特性:去中心化:不再存在一个单一的失败点。不可变性:记录是公开的。改变本质上是困难的,因为它们需要计算上的昂贵证明。透明度:每一笔交易,以及进行交易的用户(通过他们的公开密钥匿名识别)都对其他人可用。安全性/弹性:公开密钥加密允许安全交易,数字签名允许所有权证明自动化:在使用智能合约完成一组标准后,交易可以自动完成物联网应用区块链这些属性使区块链适用于各种应用程序。其中最引人注目的是加密货币,去中心化的信任、安全性和不可变性在构建有效的金融交易系统中至关重要。您还可能看到物联网领域的问题与区块链特别打算解决的问题之间的相似之处。物联网的一些问题包括:安全性:如何确保不安全的设备不会引起DDoS攻击?透明度:我们如何允许网络的授权用户查看任何设备之间的所有数据交易?速度:我们如何能够快速处理数十亿连接设备之间的事务/协调?成本:如何在不积累高开销成本的情况下,使物联网网络继续以最高性能运行?区块链可以帮助解决其中的许多问题。由于区块链的加密安全特性,您可以确保网络中的不良参与者不会引起DDoS攻击或更改以前注册的有效数据的记录。由于缺乏中央授权,用户不必担心由中央授权操作网络而产生的开销成本。相反,是由社区来运作,费用由社区来分担。区块链公司IOTA通过创建一个特殊的分布式账本来记录和执行机器和设备之间的交易。它的独特之处在于它不是严格意义上的区块链。相反,它是一个有向非循环的事务图,这消除了对“矿工”的需要,但维持了区块链的去中心化。这一点很重要,因为没有矿工,网络就没有费用。这使得微交易得以蓬勃发展,这种交易通常只涉及不到一美分的费用,而且完全超过了其他连锁店的费用。这也允许更快的速度,因为事务不需要“挖掘”来验证。任何时候进行交易,付款人都必须验证另外两个随机交易。针对物联网应用的区块链技术的优化研究。新南威尔士大学的研究人员提出了一种新的基于物联网的区块链架构,消除了传统区块链的限制,提出了一种体系结构,包括带有局部不可变账本的隔离和集中管理的系统。这些系统或节点以点对点的“覆盖”网络相连接。它们首先被分组在一个具有民选“Cluster Head”的簇中。每个集群都有一个用于生成块的唯一公钥,这允许其他簇头授权块生成器。这种体系结构允许对分类账进行分布式管理,这有助于减少计算开销,同时维护经典区块链的安全性和不可变性。可以说,物联网和区块链已经从根本上颠覆了我们的世界。物联网打乱了我们与事物的关系,使我们能够从周围的任何东西获取数据,使我们能够构建以前不可能实现的解决方案。无论如何,在区块链和物联网的交叉领域正在进行着有趣的工作,这表明我们可能处于真正革命性事物的前沿。
  • [技术干货] 教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino开发)
    教你如何使用esp8266接入华为云物联网平台(IOTDA)(Arduino IDE开发)一、简介        esp8266系列作为低功耗高性价比的嵌入式无线网络控制模块,深受对嵌入式感兴趣的小伙伴的喜爱,是很多人理想的一款wifi模块的选择,不仅可以完成通信,还可以当单片机使用完成程序控制,可满足智能家居、远程控制、智慧医疗等物联网应用的需求,总结:功能强大,价格便宜;某宝最便宜的ESP01s或12f系列五六块就可以搞定(建议大家还是支持正版),对质量有要求的,在某创平台也仅仅是十多块钱,玩法多样,本篇幅主要带大家讲解如何利用Arduino和esp8266系列完成设备接入华为云物联网平台(IOTDA)并完成设备属性上报。二、整体流程概述创建产品、注册设备、添加属性使用MQTT.fx进行测试[可跳过]Arduino IDE+esp8266编程三、具体详细步骤创建产品、注册设备、添加属性创建产品(https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-dev/all-product)                                                     b. 注册设备                                             此时可获取设备ID和密钥:               device_id: "61fb2d7fde9933029be5ff9e_esp8266_test01"               secret: "自己设定的密钥"               c. 添加属性                             d. 获取MQTT三元组(ClientId、Username、Password)              我们可以通过华为云提供的官方产品帮助文档中,根据参数描述自己计算出三元组;或者我们可以使用下面的网页来帮助我们生成三元组              https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/)                            补充:平台接入地址为:iot-mqtts.cn-north-4.myhuaweicloud.com,端口号:1883              此时我们已经获取了下面这些信息,就可以使用MQTT.fx客户端软件进行登陆测试              device_id: "61fb2d7fde9933029be5ff9e_esp8266_test01"              secret: "自己设定的密钥"              ClientId: 61fb2d7fde9933029be5ff9e_esp8266_test01_0_0_2022020310              Username:61fb2d7fde9933029be5ff9e_esp8266_test01              Password:xxxxxxxxxx计算出来的秘钥xxxxxxxxxxxxxxxxxxxx              MQTT_Address:iot-mqtts.cn-north-4.myhuaweicloud.com              MQTT_Port:1883       2. 使用MQTT.fx进行测试[可跳过]登陆MQTT测试(创建完后点击Connect,右上角会有绿色提示灯即代表登陆成功)                           b. 查看在线状态                            c. 添加服务、属性、命令                            d.常用的Topic:(参考官方文档https://support.huaweicloud.com/api-iothub/iot_06_v5_3004.html)              设备上报属性:$oc/devices/{device_id}/sys/properties/report(需将“{device_id}”替换为所需的设备id)                           平台下发命令:$oc/devices/{device_id}/sys/commands/#(需将“{device_id}”替换为所需的设备id)               数据格式:{"services":[{"service_id":"你的服务id","properties":{"你的属性名称": 设置的值}}]}              e. 上报测试(监控运维的在线调试中可查看具体信息)                            f. 下发测试              、     3. Arduino IDE+esp8266编程程序源代码不到70行,非常简单的一个小Demo源码获取方式:关注公众号“IOT趣制作”,回复关键字“华为云物联网”即可
  • [技术干货] 华为云IoT设备接入服务
    华为云IoT设备接入服务
  • [问题求助] 【小熊派IoT开发板】使用USART读取GPS的经纬度数据问题
    【功能模块】按老王的帖子 使用USART读取GPS的经纬度数据 做的实验,代码按帖子一步一步写的,就是第一步usart3转usart1时就没有输出,继续把后面的代码补全之后放窗台上,一会儿等就闪了但是还是没有达到实验结果gps模块的LED闪烁,但是串口没有经纬度数据输出【操作步骤&问题现象】1、cubeMX的设置如下:Pin Nb    PINs    FUNCTIONs    LABELs5    PH0-OSC_IN (PH0)    RCC_OSC_IN    6    PH1-OSC_OUT (PH1)    RCC_OSC_OUT    24    PC4    USART3_TX    25    PC5    USART3_RX    40    PC9    GPIO_Output    42    PA9    USART1_TX    43    PA10    USART1_RX    PERIPHERALS    MODES    FUNCTIONS    PINSRCC    Crystal/Ceramic Resonator    RCC_OSC_IN    PH0-OSC_IN (PH0)RCC    Crystal/Ceramic Resonator    RCC_OSC_OUT    PH1-OSC_OUT (PH1)SYS    SysTick    SYS_VS_Systick    VP_SYS_VS_SystickUSART1    Asynchronous    USART1_RX    PA10USART1    Asynchronous    USART1_TX    PA9USART3    Asynchronous    USART3_RX    PC5USART3    Asynchronous    USART3_TX    PC4Pin Nb    PINs    FUNCTIONs    LABELs5    PH0-OSC_IN (PH0)    RCC_OSC_IN    6    PH1-OSC_OUT (PH1)    RCC_OSC_OUT    24    PC4    USART3_TX    25    PC5    USART3_RX    40    PC9    GPIO_Output    42    PA9    USART1_TX    43    PA10    USART1_RX    SOFTWARE PROJECTProject Settings : Project Name : GPS_VscodeProject Folder : D:\Users\samuelhg\Documents\learning\BearPi\GPS\GPS_VscodeToolchain / IDE : MakefileFirmware Package Name and Version : STM32Cube FW_L4 V1.17.1Code Generation Settings : STM32Cube MCU packages and embedded software packs : Copy only the necessary library filesGenerate peripheral initialization as a pair of '.c/.h' files per peripheral : YesBackup previously generated files when re-generating : NoDelete previously generated files when not re-generated : YesSet all free pins as analog (to optimize the power consumption) : No2、串口截图3main.c/* USER CODE BEGIN Header *//**  ******************************************************************************  * @file           : main.c  * @brief          : Main program body  ******************************************************************************  * @attention  *  * Copyright (c) 2022 STMicroelectronics.  * All rights reserved.  *  * This software is licensed under terms that can be found in the LICENSE file  * in the root directory of this software component.  * If no LICENSE file comes with this software, it is provided AS-IS.  *  ******************************************************************************  *//* USER CODE END Header *//* Includes ------------------------------------------------------------------*/#include "main.h"#include "usart.h"#include "gpio.h"/* Private includes ----------------------------------------------------------*//* USER CODE BEGIN Includes */#include <stdio.h>#include <string.h>/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*//* USER CODE BEGIN PTD *//* USER CODE END PTD *//* Private define ------------------------------------------------------------*//* USER CODE BEGIN PD *//* USER CODE END PD *//* Private macro -------------------------------------------------------------*//* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//***************************************************\*GPS NMEA-0183协议重要参数结构体定义*卫星信息\***************************************************/__packed typedef struct{    uint32_t latitude_bd;                    //纬度   分扩大100000倍,实际要除以100000    uint8_t nshemi_bd;                        //北纬/南纬,N:北纬;S:南纬        uint32_t longitude_bd;                  //经度 分扩大100000倍,实际要除以100000    uint8_t ewhemi_bd;                        //东经/西经,E:东经;W:西经}gps_msg;/* E53_ST1传感器数据类型定义 ------------------------------------------------------------*/typedef struct{        float    Longitude;                //经度        float    Latitude;                 //纬度} E53_ST1_Data_TypeDef;gps_msg              gpsmsg;static unsigned char gps_uart[1000];E53_ST1_Data_TypeDef E53_ST1_Data;/* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/void SystemClock_Config(void);/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*//* USER CODE BEGIN 0 *//* USER CODE BEGIN 0 */uint8_t NMEA_Comma_Pos(uint8_t *buf,uint8_t cx);uint32_t NMEA_Pow(uint8_t m,uint8_t n);int NMEA_Str2num(uint8_t *buf,uint8_t*dx);void NMEA_BDS_GPRMC_Analysis(gps_msg *gpsmsg,uint8_t *buf);void E53_ST1_Read_Data(void);/* USER CODE END 0 *//**  * @brief  The application entry point.  * @retval int  */int main(void){  /* USER CODE BEGIN 1 */    /* USER CODE END 1 */  /* MCU Configuration--------------------------------------------------------*/  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */  HAL_Init();  /* USER CODE BEGIN Init */  /* USER CODE END Init */  /* Configure the system clock */  SystemClock_Config();  /* USER CODE BEGIN SysInit */  /* USER CODE END SysInit */  /* Initialize all configured peripherals */  MX_GPIO_Init();  MX_USART1_UART_Init();  MX_USART3_UART_Init();  /* USER CODE BEGIN 2 */  /* 使能USART3接收中断 */  HAL_UART_Receive_IT(&huart3, (uint8_t*)gps_uart, 1);  /* 使能GPS模块 */  printf("L80-R GPS Module test...\r\n");  HAL_GPIO_WritePin(GPS_EN_GPIO_Port,GPS_EN_Pin, GPIO_PIN_RESET);  printf("GPE Enable ok.\r\n");  /* USER CODE END 2 */  /* Infinite loop */  /* USER CODE BEGIN WHILE */  while (1)  {    /* USER CODE END WHILE */    /* USER CODE BEGIN 3 */    E53_ST1_Read_Data();    printf("Longitude: %f, Latitude: %f.\r\n", E53_ST1_Data.Longitude, E53_ST1_Data.Latitude);    HAL_Delay(2000);  }  /* USER CODE END 3 */}/**  * @brief System Clock Configuration  * @retval None  */void SystemClock_Config(void){  RCC_OscInitTypeDef RCC_OscInitStruct = {0};  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};  /** Configure the main internal regulator output voltage  */  if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)  {    Error_Handler();  }  /** Initializes the RCC Oscillators according to the specified parameters  * in the RCC_OscInitTypeDef structure.  */  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;  RCC_OscInitStruct.MSIState = RCC_MSI_ON;  RCC_OscInitStruct.MSICalibrationValue = 0;  RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_6;  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;  RCC_OscInitStruct.PLL.PLLM = 1;  RCC_OscInitStruct.PLL.PLLN = 40;  RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV7;  RCC_OscInitStruct.PLL.PLLQ = RCC_PLLQ_DIV2;  RCC_OscInitStruct.PLL.PLLR = RCC_PLLR_DIV2;  if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)  {    Error_Handler();  }  /** Initializes the CPU, AHB and APB buses clocks  */  RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK                              |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)  {    Error_Handler();  }}/* USER CODE BEGIN 4 *//***************************************************\* 函数名称: NMEA_Comma_Pos*    函数功能:从buf里面得到第cx个逗号所在的位置*    输入值:*    返回值:0~0xFE,代表逗号所在位置的便宜*                     0xFF,代表不存在第cx个逗号\***************************************************/uint8_t NMEA_Comma_Pos(uint8_t *buf,uint8_t cx){    uint8_t *p = buf;    while(cx)    {        if(*buf=='*'||*buf<' '||*buf>'z')return 0xFF;        if(*buf==',')cx--;        buf++;    }    return buf-p;}/***************************************************\* 函数名称: NMEA_Pow*    函数功能:返回m的n次方值*    输入值:底数m和指数n*    返回值:m^n\***************************************************/uint32_t NMEA_Pow(uint8_t m,uint8_t n){    uint32_t result = 1;    while(n--)result *= m;    return result;}/***************************************************\* 函数名称: NMEA_Str2num*    函数功能:str数字转换为(int)数字,以','或者'*'结束*    输入值:buf,数字存储区*                     dx,小数点位数,返回给调用函数*    返回值:转换后的数值\***************************************************/int NMEA_Str2num(uint8_t *buf,uint8_t*dx){    uint8_t *p = buf;    uint32_t ires = 0,fres = 0;    uint8_t ilen = 0,flen = 0,i;    uint8_t mask = 0;    int res;    while(1)    {        if(*p=='-'){mask |= 0x02;p++;}//说明有负数        if(*p==','||*p=='*')break;//遇到结束符        if(*p=='.'){mask |= 0x01;p++;}//遇到小数点        else if(*p>'9'||(*p<'0'))//数字不在0和9之内,说明有非法字符        {            ilen = 0;            flen = 0;            break;        }        if(mask&0x01)flen++;//小数点的位数        else ilen++;//str长度加一        p++;//下一个字符    }    if(mask&0x02)buf++;//移到下一位,除去负号    for(i=0;i<ilen;i++)//得到整数部分数据    {        ires += NMEA_Pow(10,ilen-1-i)*(buf[i]-'0');    }    if(flen>5)flen=5;//最多取五位小数    *dx = flen;    for(i=0;i<flen;i++)//得到小数部分数据    {        fres +=NMEA_Pow(10,flen-1-i)*(buf[ilen+1+i]-'0');    }    res = ires*NMEA_Pow(10,flen)+fres;    if(mask&0x02)res = -res;    return res;}/***************************************************\* 函数名称: NMEA_BDS_GPRMC_Analysis*    函数功能:解析GPRMC信息*    输入值:gpsx,NMEA信息结构体*                 buf:接收到的GPS数据缓冲区首地址\***************************************************/void NMEA_BDS_GPRMC_Analysis(gps_msg *gpsmsg,uint8_t *buf){    uint8_t *p4,dx;                 uint8_t posx;         uint32_t temp;           float rs;      p4=(uint8_t*)strstr((const char *)buf,"$GPRMC");//"$GPRMC",经常有&和GPRMC分开的情况,故只判断GPRMC.    posx=NMEA_Comma_Pos(p4,3);                                //得到纬度    if(posx!=0XFF)    {        temp=NMEA_Str2num(p4+posx,&dx);                      gpsmsg->latitude_bd=temp/NMEA_Pow(10,dx+2);    //得到°        rs=temp%NMEA_Pow(10,dx+2);                //得到'                 gpsmsg->latitude_bd=gpsmsg->latitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//转换为°     }    posx=NMEA_Comma_Pos(p4,4);                                //南纬还是北纬     if(posx!=0XFF)gpsmsg->nshemi_bd=*(p4+posx);                          posx=NMEA_Comma_Pos(p4,5);                                //得到经度    if(posx!=0XFF)    {                                                          temp=NMEA_Str2num(p4+posx,&dx);                      gpsmsg->longitude_bd=temp/NMEA_Pow(10,dx+2);    //得到°        rs=temp%NMEA_Pow(10,dx+2);                //得到'                 gpsmsg->longitude_bd=gpsmsg->longitude_bd*NMEA_Pow(10,5)+(rs*NMEA_Pow(10,5-dx))/60;//转换为°     }    posx=NMEA_Comma_Pos(p4,6);                                //东经还是西经    if(posx!=0XFF)gpsmsg->ewhemi_bd=*(p4+posx);          }void E53_ST1_Read_Data(void){      /* 使用中断方式接收一次数据 */    HAL_UART_Receive_IT(&huart3,gps_uart,1000);  /* 分析缓冲区的字符串,解析GPS数据 */    NMEA_BDS_GPRMC_Analysis(&gpsmsg,(uint8_t*)gps_uart);  /* 将解析到的经纬度数据存放到结构体中,便于其他函数使用 */        E53_ST1_Data.Longitude=(float)((float)gpsmsg.longitude_bd/100000);        E53_ST1_Data.Latitude=(float)((float)gpsmsg.latitude_bd/100000);    }/* USER CODE END 4 *//**  * @brief  This function is executed in case of error occurrence.  * @retval None  */void Error_Handler(void){  /* USER CODE BEGIN Error_Handler_Debug */  /* User can add his own implementation to report the HAL error return state */  __disable_irq();  while (1)  {  }  /* USER CODE END Error_Handler_Debug */}#ifdef  USE_FULL_ASSERT/**  * @brief  Reports the name of the source file and the source line number  *         where the assert_param error has occurred.  * @param  file: pointer to the source file name  * @param  line: assert_param error line source number  * @retval None  */void assert_failed(uint8_t *file, uint32_t line){  /* USER CODE BEGIN 6 */  /* User can add his own implementation to report the file name and line number,     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */  /* USER CODE END 6 */}#endif /* USE_FULL_ASSERT */【截图信息】直接串口可以看到定位了,但是解析程序解析不出来【日志信息】(可选,上传日志内容或者附件)
  • [知识分享] 【IOT系列】如何支撑企业快速构建数字孪生体
    >摘要:详解华为云IoTA服务如何助力IoT数据开发者快速实现IoT数据价值变现,带你动手实践完成一整套工业物联网方案的开发。本文分享自华为云社区[《【云驻共创】孪生?数字孪生?欢迎进入极客的世界》](https://bbs.huaweicloud.com/blogs/303929?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content),作者:启明。 在文章开始前,我们先对标题中的名词做一个解释: - **华为云IoT数据分析**:也叫华为云IoTA(Analyst)华为云IoTA服务基于物联网资产模型,整合IoT数据集成、清洗、存储、分析、可视化,降低开发门槛,缩短开发周期,帮助IoT数据开发者快速实现IoT数据价值变现。通过动手实操,让智能制造领域开发者体验如何基于华为云IoT边缘计算、设备接入、数据分析能力,从设备接入到产线孪生,完成一整套工业物联网方案的开发。 - 数字孪生体:数字孪生是充分利用物理模型、传感器更新、运行历史等数据,集成多学科、多物理量、多尺度、多概率的仿真过程,在虚拟空间中完成映射,从而反映相对应的实体装备的全生命周期过程。数字孪生是一种超越现实的概念,可以被视为一个或多个重要的、彼此依赖的装备系统的数字映射系统。 通过上面的解释,相信大家对标题和我们今天要介绍的内容有了一定的了解,接下来,我们进入正题。 # 工业4.0时代,工厂数字化“危机重重” 回顾人类历史,我们共同顺利经历了三次工业革命: 第一次是蒸汽机时代,开创了以机器代替手工劳动的时代;第二次是电气时代,自然科学的发展和工业紧密结合,科学在推动生产力方面发挥了更为重要的作用;第三次是信息化时代,科学技术转化为直接生产力的速度急速加快。 而今,我们迎来了第四次革命,即,工业4.0:智能化时代。“工业4.0的本质,就是通过数据流动自动化技术,从规模经济转向范围经济,以同质化规模化的成本,构建出异质化定制化的产业。对于产业结构改革,这是至关重要的作用。” 作为新一轮的工业革命,工业4.0的核心特征是互联。工业4.0代表了“互联网+制造业”的智能生产,孕育大量的新型商业模式,真正能够助力实现“C2B2C”的商业模式。 当前,大家都还在“工业4.0”的摸索阶段。大量的工厂已经开始自己的智能化转型之路,比如通过构建应用来讲采集的数据可视化,讲数据价值最大化。但是,在这个实践过程中,问题不断涌现,诸如: ## 1、数据/信息孤岛,烟囱林立 1)应用多独立构建,缺乏统一标准,应用间无法有效进行数据共享和信息互通,形成数据和信息孤岛; 2)企业数字资产零担分布,维护成本高,使用效率低下; ## 2、应用上线慢,耗时耗力 1)重复造轮子,每个应用上线都有大量重复工作,浪费人力物力,耗时长; 2)其中数据的处理量为复杂,缺乏统一的建模,导致各应用都面临原始数据的重复处理; ## 3、数据分析门槛高 1)数据利用率低,大量数据限制,未充分利用,价值挖掘仅冰山一角; 2)关键原因:业务场景不明确,数据开发技术门槛高,缺乏好的数据平台; 而可能导致上面几个关键问题的原因之一,我们认为可能和软件开发分层解耦没有做到位有关。 # 软件开发未做到足够的分层解耦 为什么说“软件开发未做到足够的分层解耦”呢? 我们来对比一下传统的软件开发过程和华为云IoTA的模式。传统软件开发过程有两种模式: ## 模式一:应用独立构建。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144301epkof4xcioynsjvy.png) 1)一半缺乏整体规划,各应用独立部署,数据各自基于业务需要进行采集和使用 2)效率低下,比如重复采集数据,对生产影响大 ## 模式二:基于数采平台构建 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144314htm83a4hsaalxzog.png) 1)开始考虑统一的数采平台,由专业数采团队完成尽可能多的数据采集,并集中统一开放; 2)整体上效率有所提升,但是数据的使用仍然是独立的,未实现真正的融合,应用间对数据的处理仍存在大量重复工作。 那么华为云是如何解决这其中的问题的呢?这个时候就是数字孪生体该出场的时候了。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144322hhnas25hcbfmv9nb.png) 通过上图这样一个模型,可以带来: ## 更全面的场景化认知能力: 1)统一数字建模语言,语义层互通 2)图形化/模板化建模开发环境,效率提升40% 3)强大模型计算引擎,支持最大亿级模型节点,无缝衔接AI,智能化扩展 ## 更广泛的物理感知能力 1)10+主流原生协议,60+标准协议 2)云边协同,协议插件自定义扩展 3)模组预集成SDK,上电即上云 通过把物理对象一一进行数字化处理,将应用和物理设备的交互,转变成应用和数字孪生体的交互。相对于前两种模式,这种模式的开发方式有了一个非常大的变化:**我们可以无视最底层的物理设备,或者物理接口,将数据建模部分的工作,交由IoT的“统一孪生模型层”完成**。 # IoT数据分析孪生建模概念分析 接下来,我们将介绍一些“孪生建模”相关概念。 **数字孪生**:广义上是由物理对象、数字镜像及互动系统构成的一个体系,狭义上是物理对象的数字镜像。 **数字孪生体成熟度模型**可以分为数化、互动、先知、先觉、共智5个阶段,已经超越了现有的数字化、物联网、仿真、大数据、人工智能、云计算等等的任何一个概念。 1)数化:物理世界中的物通过数字化建模得到一个数字模型; 2)互动:数字对象和物理对象之间,实时相互传递信息和数据来产生互动的效果,比如说可以对设备下发一些控制命令(打开路灯); - 先知:基于完整的信息和明确的机制可以预测未来。比如说平常生活中的天气预报,可以预测未来的天气; - 先觉:基于不完整的信息和不太明确的机制去推测未来; 5)共治:多个数字孪生体之间可以共享智慧、共同进化,是更高级的一种表现。 **IoT领域的数字孪生**:物理世界的物在数字世界中的实时准确映射,通过定义模型和汇聚相关数据构建出数字孪生载体。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144458qrmmqxbg1lnzbvdg.png) # IoT数字孪生应用场景 基于上述的概念,我们介绍一下数字孪生应用场景。数字孪生是一项通用的技术,正在成为国家数字化转型新抓手,支撑社会各行业数字化转型的使能技术。下表为数字孪生核心应用场景及价值: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144515jg55j7sxva7eomrf.png) 以“智能工厂”行业为例,行业内的龙头企业,已经在开发数字孪生体。其在开发设备过程中直接就把数字孪生也同步开发交付了,从而实现了整个设备在生命周期的全数字化管理的能力。同时,依托现场采集数据,结合其孪生体的分析,可以提供产品的故障分析、故障预测、远程管理等等增值服务,最终可以有效提升用户体验,降低整体的运维成本,同时可以强化企业的竞争力。 **工厂数字孪生由制造数字孪生和产品数字孪生组成,背后的多模型是核心** 工厂数字孪生由两部分组成:制造数字孪生和产品数字孪生。 **制造数字孪生:** **定位**:将工厂的制造环节进行数字化的镜像,能够实时反映工厂的制造过程;经过对制造过程的统一抽象,不同应用可以基于统一的语义进行交互; **建模内容**:生产装备,产线,生产工艺流程,质量缺陷,物理结构等; **产品数字孪生** **定位**:从工厂在制产品维度,组织生产过程中产生的各种数据,并预留通过与数字主线对接的能力打通产品设计阶段,产品维护阶段的数据; **建模内容**:产品的各种属性,生产过程数据,质量数据等。 整个工厂的数字孪生背后是有多种模型支撑的: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144612r4iqosw0ack9nor1.png) 从下往上总结,可以看到:设备模型、产线模型,制程能力模型、质量缺陷模型等,再往上是设备故障预测模型及设备物理/结构模型等等。多种模型,对应着不同的使用场景。 那么,这样一个模型,是如何设计和落地的呢? ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144621qt3ufkvtkpqpon89.png) 我们需要熟记一句话:**对物理世界事物构建数字资产模型时,必须先定义好资产模型,然后再创建资产**。 IoT领域的数字孪生包括两部分,一部分是模型,第二部分是资产。怎么理解这两个概念呢?模型就相当于是面向对象中的class,即,类。类是静态的,对一些抽象的东西进行定义。 而资产实例相当于面向对象中的实例对象object,即把类实例化创建一个对象出来,并使用它。 把模型打开来看,里面又分属性和分析任务。属性可以类比于我们class里面的成员变量;分析任务类比于class的成员方法,定义了属性的一些分析技术的逻辑。 具体到属性,又可以分成静态属性,测量数据属性和分析任务属性三种。同时,分析任务也可以分为转换计算、聚合计算以及流计算三种。 # 工厂数字孪生生产线与设备建模效果介绍 说这么多,华为云IoTA服务究竟有什么样的效果呢? 以一个SMT生产的建模场景为demo: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144659nmliniz4a7lxvi7q.png) 上图是SMT贴片产线。SMT其实一个PCB板的贴片的生产工艺,所有的电子产品包括iPad、手机等等电子类的相关产品,都离不开此工艺流程。 从 demo可以看出,中间有三条产线,左侧可以看到每一条产线当前实时的设备和产线OEE的指标。 中间部分是产线设备,可以操作的动作有: - 可以通过放大的方式可以把它打开看; - 可以点击某个设备,也可以看到当前此设备在当前周期的实时的OEE; - 可以监控设备关键的参数属性,比如可以对一些关键的属性的值做异常值的监控; - 可以看到如果设备出现异常:整个系统会显示红色或者黄色的点来表示设备出现异常; 右侧则可以看到设备的过去几天或几个小时的列数据。 或者大家会对前面提到的OEE感到疑惑,那么什么是OEE呢? OEE,即设备综合效率(Overall Equipment Effectiveness)。一般来说,每一个生产设备都有自己的理论产能,要实现这一理论产能必须保障没有任何干扰和质量损耗。OEE就是用来表现设备是的生产能力相对于理论产能的比率。 在计算OEE的时候,会涉及到以3个维度: - **时间利用率**:时间利用率=Σ实际运行时间/Σ计划开机时间*100%。用来评价停工所带来的损失,包括引起计划生产发生停工的任何事件,例如设备故障,原材料短缺以及生产方法的改变等等; - **性能利用率**:性能利用率=Σ[产出数量*一个产品在设备应有状态下加工的周期时间]/Σ实际运行时间*100%。用来评价生产速度上的损失。包括任何导致生产不能以最大速度运行的因素,例如设备的磨损,材料的不合格以及操作人员的失误等; - **合格率**:合格率=[合格产出数量]/[产出数量]*100%。用来评价质量的损失,它用来反映没有满足质量要求的产品(包括返工的产品); 那么最终的计算公式就是,OEE=[时间利用率]*[性能利用率]*[合格率]*100%,这就是衡量设备综合运营效率的一个关键指标,也是很多电子制造工厂以及其他类似厂房里的一个关键性指标。 一般来说,国内厂家OEE的数值都不会太高,一般只有70%,或者80%,少的甚至只有40%左右。 # 工厂数字孪生产线与设备建模详解 对于整个IoT数据分析服务,其一般是如何进行数据处理分析的呢? ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144820tapqp6sj92uafedu.png) 参考上图: 第一步,数据管道。我们通过数据管道把数据接进来,同时本地也会进行备份; 第二步,对设备进行建模; 第三步,建立设备资产; 第四步,把模型实例化之后的设备,及灌进来的数据,通过设备资产分析这个计算引擎,完成实时计算相关的分析任务; 第五步,把数据存储到IoT内部; 第六步,把这个数据通过API开放给第三方使用。 接下来以实际的SMT产线的印刷机为例,结合前面概念讲一下如何去配置和设计模型。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/1448380yt38vefhwzepq97.png) 整张图可以分为两个部分,左侧是整个数据完成相关模型概念大纲介绍的几个维度,右侧的是一个生产印刷机设备的实际信息。 前面我们有大概介绍属性分为3类,但是没有具体讲解三类的相关信息,在此我们补充介绍一下: **静态配置属性**,此类属性不需要设备上报,也不怎么会有变化,比如产品型号,设备类型等等; **测量数据属性**,测量数据属性是需要设备上报的。通俗一点说,就是,数据分析自己是没法得到的,需要别人给系统的数据。包括设备上报的属性,也有可能包括从第三方的业务系统读到的属性,系统都认为是一种测量属性; **分析任务属性**,此类属性在数据上报之后,是需要去进一步计算的。 同时,分析任务也分为3种: **转换计算**:举个简单例子,假设创建的时候包含了两个属性,a和b,而我们要求在这个过程中,a+b=c,那么这就是一个转化计算。转化属性要求是实时的,且ab两个值的数据时间戳是相同的; **聚合运算**:聚合是一个时间维度的计算,假设要求过去五分钟的一个平均温度,如果设备每五秒钟上报一次数据,那么就需要对五分钟内的所有上报的数据做一个平均,相当于在时间维度下,做聚合运算; **流计算**:流计算主要是用在比较复杂的场景,逻辑不能用简单的一个if /else表达出来的时候,就需要使用到流计算。举例来说,当资产将很多参数上报之后,系统需要通过这几个参数计算出一个结果,再返回资产,那么流计算在其中的作用就相当于一个计算器。流计算的功能非常强大,在工厂数字化模型中,大部分的场景都能实现,比如滑动窗口、数据过滤、加属性等等,是比较通用的一个能力。 下图是OEE相关指标的配置情况,大家如果感兴趣,可以到demo里去实际查看: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144926ex8sqjlcoxonfkms.png) 在此,我们重点介绍一下合格率。合格率=[合格产出数量]/[产出数量]*100%。表格中“TS_Sum”表示时序求和,即可以把产量在一个时间范围内求和,比如,对五分钟内的产量进行求和。其他指标的计算方式和合格率类似,就不一一赘述。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144935b8dg2rp1rmbofxzi.png) 有了资产和设备之后,我们即可构建产线模型。 产线模型跟设备模型构建的思路一致的,只不过有些特殊点,比如说产线有产线名称,但是产线不是一个实际的实体物理设备,它只是一个虚拟的概念,因此产线可能不存在测量数据属性。但是它可以去有定义对应的分析任务,比如说可以计算产线的时间利用率、性能利用率、合格率和OEE等等。 上述属性可以通过分析计算得到,但是取得的数据都是来自于产线下面各个设备的数据,所以说,对应的分析任务定义过程跟设备是一模一样的,只不过计算唯一的值的时候,取的是设备下面的子设备数据进行求和之后,做一个累计计算得出来的结果。 以上就是一个产线的一个建模过程。有了产线模型之后,同样道理可以再建一个工厂模型,工厂模型可能相对会更简单一些,填一些需要配置的属性参数即可。 有了设备、产线和工厂这3个模型之后,就可以去构建整个数字化的工厂。 # 构建产线资产:数字化SMT工厂 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/144959vblorlpfeja9bkwm.png) 从上图可以看出,构建一个数字化的工厂其实非常简单: 首先,基于工厂模型构建父资产-- SMT工厂;其次,它的下面可以再加一个子资产,比如说第一条产线,我们可以叫SMT产线1,然后再构成第二条产线。这两个产线的资产就是基于产线模型来实例化构建出来的;最后,在子资产下可以继续添加资产(设备),比如说雷雕机、印刷机、贴片机等等子设备,整个流程下来之后,我们就可以把整个工厂的数字化模型构建出来。 **请注意:资产数如何构建,是取决于公司自身业务需求的,没有一个具体的原则框定。** 结合实际产线设备实时上报数据,通过数字孪生模型及背后的资产数据计算引擎,即可构建出SMT工厂中产线、设备在数字世界孪生体,通过数字孪生体便可实时反映实际物理设备的动态变化。 整个数字工厂构建出来,在console面里面呈现如下情况: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/1450156u4pv6yufzm186bc.png) 这是一个编辑态的过程。左边可以看到是一个工作台的布局,可以看到每个设备。点中之后可以看到它里面详细的一些属性的定义分析任务的一些内容。通过右上角的发布按钮可以发布。发布之后,可以记录整个资产数的运行情况,直接run起来之后就可以实时反应去计算需要一些的数据。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/1450251qkuc5dfa30w2u2d.png) 上图可以看到整个资产运行起来之后,点到某个产线,它产线右侧里面实时计算出来的数据都可以实时呈现出来,也就是说可以实时监控整个资产的预警情况。 除了上述的数据展现模式,还可以根据业务的需要,将数据展示成折线图、热力图、曲线图等等,更易进行分析的图形展示方式,得出你想要的结果。示例图如下。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/1450331ozf7jativdpzrnd.png) 想要体验一个产线模型建立的过程,可以前往华为云IoT数据分析服务(IoT数据分析-华为云)深度体验。根据“总览”页的指导一步步进行操作。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/1450402qrtzcxeiygz7hrl.png) 再给大家介绍一个课程,瑞萨携手华为打造了一个数字化工厂课程。该课程主要是帮助开发者基于开发板实现设备层到应用层之间的终端开发过程,从而端到端体验开发整个数字工厂。 ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202201/21/145047hge3ur6dnqegbmvk.png) 从上图可以看到整个课程的是涉及到设备层、边缘层、网络层等等多层架构: **智能应用:数据实时推送,无缝流转、分析计算,快速构建行业解决方案** 1)基于数字孪生建模你呢里,实现产线设备资产建模,试试计算产线OEE指标; 2)基于拓扑应用,对产线3D建模,实现数据可视化呈现。 **接入智能:云、网、边、端协同,打造稳定、可靠、安全、最低成本的联接服务** 1)亿机设备安全稳定连接,10万TPS高并发可靠通信; 2)全链路日志分析和消息跟踪,设备状态实时监控和感知,灵活自定义业务指标告警。 **感知智能:基于华为数字工厂孪生实践,打造真实、专业、可靠的体验场景** 1)联合伙伴退撒,提供定制开发版,模拟实现产线设备数采与泛协议接入; 2)端侧Demo详细解读,深度剖析工业设备数采指标,探索数字化转型之路。
  • [技术干货] 设备接入 IoTDA 最佳实践—基于NB-IoT小熊派的智慧烟感
    场景说明近年来,火灾频发,造成很大的人员及财产损失,国家高度重视,陆续出台相关文件,明确相关要求,落实消防安全责任。同时,人民消防意识逐渐提高,独立烟感得到一定程度的普及,在防火减灾方面起到一定的作用。但由于独立烟感产品存在一定的局限,例如人不在场收不到报警信息,工作状态不能实时掌握,独立烟感没有完全解决这些问题。NB-IoT智慧烟感解决了传统烟感器布线难、电池使用周期短、维护成本高、无法与业主及消防机构交互等缺点。智慧烟感采用无线通信,具备即插即用、无需布线、易于安装等特点。在该文档中,我们基于华为一站式开发工具平台(VS code工具IoTlink插件),从设备(小熊派开发套件)、平台(IoTDA华为物联网平台)、端到端构建一款智慧烟感解决方案样例,带您体验十分钟快速上云。实现智慧烟感检测并上报烟雾浓度值,显示在IoTDA控制台,并在IoTDA控制台远程控制蜂鸣器开关的功能。开发环境开发板:小熊派BearPi-IoT开发套件(包含NB卡、NB模组、智慧烟感功能模块、USB数据线等),您可以前往华为云市场购买。软件:VScode,IoT Link插件、华为云(已开通设备接入服务)、win7及以上版本的64位操作系统(本文以windows 10 64-bit系统调试)。整体流程硬件连接将NB卡插入到NB-IoT扩展板的SIM卡卡槽,确保插卡的时候卡的缺口朝外插入,如图1所示。将烟雾浓度采集控制板和NB-IoT扩展板插入到开发板上,注意安装方向,然后用USB数据线将小熊派开发板与电脑连接起来。显示屏有显示,电源灯被点亮,说明开发板通电成功。安装IoT Link Studio插件IoT Link Studio是针对IoT物联网端侧开发的IDE环境,提供了编译、烧录、调试等一站式开发体验,支持 C、 C++、汇编等多种开发语言,让您快速、高效地进行物联网开发。以win10为例,获取电脑的系统配置:在运行窗口中输入pc,然后单击“属性”,查看系统配置,因为后续安装软件要选择操作系统。访问 这里 ,根据您电脑系统配置,下载匹配的Visual Studio Code并安装。(本文以windows 10 64-bit系统Visual Studio Code为例。请下载1.49版本,其他版本不支持IoT Link)。注:Visual Studio Code不支持苹果Mac系统。安装成功后,打开VSCode 插件应用商店,搜索 IoT Link 找到IoT Link,然后单击安装。首次启动配置。IoT Link Studio 首次启动时会自动从网络下载最新的SDK包以及gcc依赖环境,请确保您的网络可用。安装过程中请不要关闭窗口,耐心等待。安装完成后重启VSCode使插件生效。说明:若您的网络需要配置代理,请在VSCode主页,选择左下角-设置-应用程序-代理服务器,在Proxy Support下拉框中选择“on”,对扩展使用代理支持。如果仍然无法访问网络导致自动下载SDK失败,可从手动下载SDK,下载完成后解压至默认安装路径 C:\Users\用户名\.iotlink\sdk,(如果安装路径有更改,请找到VS Code的安装路径,把手动下载的“IoT_LINK”解压后拷贝到\.iotlink\sdk下)。配置IoT link Studio工程单击VSCode底部工具栏的“Home”。Home用来管理IoT Link工程;Serial用来输入AT指令检查开发板状态;Build用来编译示例代码(创建工程后显示);Download用来把编译后的代码烧录到MCU(创建工程后显示)。在弹出界面中单击“创建 IoT 工程”,输入工程名称,工程目录,并选择开发板的硬件平台和示例工程模板。工程名称:自定义,如Smoke。工程目录:可以使用工具安装的默认路径,也可以选择系统盘以外的其他盘,如D:\。硬件平台:当前提供的demo只适配STM32L431_BearPI硬件平台,请选择STM32L431_BearPI。示例工程:本示例中,我们以智慧烟感为例,请选择oc_smoke_template demo,否则烧录的demo样例和在控制台定义的产品模型不匹配,无法上报数据。单击“确定”,导入完成。编译并烧录代码由于提供的demo样例中已配置好和华为云物联网平台的对接信息,您可以直接编译(代码不用做任何修改),并烧录到小熊派开发板MCU,节省开发时间。单击VSCode底部工具栏的“Build”,等待系统编译完成。编译成功后,界面显示“编译成功”。使用USB数据线,将小熊派开发与电脑连接,开发板右上角的拨测开关拨到右侧“AT-MCU模式”。单击VSCode底部工具栏的“Download”,等待系统烧录完成。烧录成功后,界面显示“烧录成功”。说明:如果显示烧录失败,可能是开发板没有驱动导致与电脑无法串口通信,请参考步骤2检查ST-Link驱动是否安装成功,如果驱动未安装,则参考这里下载并安装ST-Link驱动。(可选)安装ST-Link驱动。访问ST官网,下载ST-Link驱动,或者直接使用提供的驱动.zip包。双击stlink_winusb_install.bat文件进行自动安装。(本文以Windows10-64bit ST-Link 2.0.1为例)。注:您也可以使用适配您系统版本的exe文件进行安装。打开PC设备管理器可查看对应的驱动是否安装成功。若下图所示,表明驱动安装成功。创建产品某一类具有相同能力或特征的设备的集合称为一款产品。除了设备实体,产品还包含该类设备在物联网能力建设中产生的产品信息、产品模型(Profile)、插件等资源。访问设备接入服务,单击“立即使用”进入设备接入控制台。选择左侧导航栏的“产品”,单击右上角下拉框,选择新建产品所属的资源空间。单击右上角的“创建产品”,创建一个基于LwM2M/CoAP协议的产品,填写参数后,单击“立即创建”。基本信息所属资源空间选择您需要归属到的资源空间产品名称自定义,如“BearPi_Smoke”协议类型选择“LwM2M/CoAP”数据格式选择“二进制码流”厂商名称自定义,如“BearPi”所属行业无设备类型Smoke产品创建成功后,单击产品进入产品界面,进行后面操作。定义产品模型在产品详情,“模型定义”页面,单击“自定义模型”,配置产品的服务。产品模型设计思路:表1 设备服务列表服务类型(ServiceID)服务描述Smoke实时检测烟雾状况服务能力如表2、表3所示。表2 Smoke能力描述属性名称数据类型数据范围属性列表Smoke valueint0 ~ 65535表3 Smoke命令列表能力描述命令名称命令字段字段名称类型数据长度枚举命令列表Smoke control beep下发命令beepstring3ON、OFF响应命令beep_stateint//新增服务类型Smoke进入“新增服务”页面,填写“服务ID”、“服务类型”和“服务描述”,单击“确认”。“服务ID”:Smoke“服务类型”:建议和服务ID保持一致“服务描述”:实时检测烟雾状况在“Smoke”的下拉菜单下单击“添加属性”,填写相关信息,单击“确认”。属性名称:Smoke_Value“数据类型”:int(整型)“访问权限”:可读、可写“取值范围”:0~65535“步长”:0“单位”:不填写在“Smoke”的下拉菜单下单击“添加命令”,填写命令名称“Smoke_Control_Beep”。图1 新增命令在“新增命令”弹框,分别单击“新增输入参数”和“新增响应参数”,填写相关信息后,单击“确认”。图2 新增参数图3 新增参数编解码插件开发在产品详情插件开发页面,选择“图形化开发”,单击“图形化开发”。在“在线开发插件”区域,单击“新增消息”。说明:请按照本文档提供的操作开发编解码插件,确保添加字段的顺序和本文档提供的顺序保持一致。新增Smoke消息,配置示例如下:消息名:Smoke消息类型:数据上报在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,然后单击“确认”。单击“添加字段”,添加Smoke_Value字段,填写相关信息后,单击“确认”。名字:Smoke_Value数据类型:int16s在“新增消息”页面,单击“确认”,完成Smoke_Value的配置。新增Smoke_Control_Beep消息,配置示例如下:消息名:Smoke_Control_Beep消息类型:命令下发添加响应字段:是在“新增消息”页面,单击“添加字段”,勾选“标记为地址域”,添加地址域字段messageId,默认值填0x9,然后单击“确认”。单击“添加字段”,勾选“标记为响应字段标识”,添加响应标识字段mid,然后单击“确认”。单击“添加字段”,添加“Beep”字段,然后单击“确认”。名字:Beep数据类型:string长度:3在“新增消息”页面,单击“添加响应字段”,勾选“标记为地址域”,添加地址域字段 messageId,默认值填0xa,然后单击“确认”。单击“添加响应字段”,勾选“标记为响应标识字段”,添加响应标识字段mid,然后单击“确认”。单击“添加响应字段”,勾选“标记为命令执行状态字段”,添加命令执行状态字段 errcode,然后单击“确认”。单击“添加响应字段”,添加Beep_State响应字段,填写相关信息,单击“确认”。名字:Beep_State数据类型:int8u长度:1完成消息 Smoke_Control_Beep的配置后,单击“确认”。拖动右侧“设备模型”区域的属性字段、命令字段和响应字段,与数据上报消息、命令下发消息和命令响应消息的相应字段建立映射关系。单击“保存”,并在插件保存成功后单击“部署”,将编解码插件部署到物联网平台。注册设备本文介绍集成NB模组设备的注册方法。在产品详情页面,选择“在线调试”,单击“新增测试设备”,此处新增的是非安全的NB-IoT设备。在新增测试设备页面,选择“真实设备”,并填写设备名称,设备标识码。设备名称:Test(自定义即可);设备标识码:设备的IMEI号,用于设备在接入物联网平台时携带该标识信息完成接入鉴权,可在NB模组上查看。您也可以将拨测开关拨到AT-PC模式,选择STM的端口,波特率设置为9600,输入指令“AT+CGSN=1”获取IMEI号。可参考下图将IMEI号复制至控制台。注:获取IMEI注册完设备后,需要将开发板的拨测开关拨到“AT-MCU”模式,因为开发板在MCU模式下才会通过NB卡连接网络。设备注册方式:选择不加密。数据上报平台和开发板建立连接后,上报烟雾浓度值。登录设备接入服务控制台,选择“ 设备 > 所有设备”。选择这里注册的设备,单击“查看”进入设备详情,查看上报到平台的数据。命令下发登录设备接入服务控制台,选择此处创建的产品,单击产品进入产品详情页。选择“在线调试”,单击注册的设备进入调试页面。设置命令参数后,单击“立即发送”,烟雾报警器鸣叫,下发OFF命令后,关闭蜂鸣器。(可选)配置设备联动规则选择左侧导航栏的“规则 > 设备联动”,单击页面右上角的“创建规则”。参考下表参数说明,创建设备联动规则。参数名称说明规则名称创建的规则名称,例如“Smoke_Beep”。立即触发勾选“立即触发”生效时间选择“一直生效”。描述对该规则的描述,如“烟雾浓度高于600时蜂鸣器鸣叫”。触发条件单击“添加条件”;在下拉框中选择“指定设备触发”,选择2中添加的设备;“服务类型”选择“smoke”,“属性”选择“Smoke_Value”,“操作”选择“>”,“值”填写“600”,单击“触发机制”,“无效触发抑制选择”选择“需要”,数据时效”填写“300”,然后单击“确认”。执行动作单击“添加动作;“动作类型”选择“下发命令”,下发设备选择2创建的设备;“服务类型”选择“smoke”,“命令”选择“Smoke_Control_Beep”,单击“参数配置”,“Beap”的值选择“ON”,然后单击“确认”。(可选)验证操作将降温剂喷在烟雾传感器周围,模拟烟雾浓度。当烟雾浓度大于600时,蜂鸣器鸣叫。使用AT指令定位模组通信问题IoT Link在与物联网平台连接使用时,可使用AT指令快速定位模组与云端连通性问题,提高开发效率。本节将以“小熊派开发板”为例,介绍如何使用AT指令检测通信模组常见问题,如设备无法上线,数据上报不成功等。小熊派开发板和电脑已正常连接(确保驱动已安装),并将开发板右上角的拨测开关切换到AT-PC模式。单击VSCode底部工具栏的“Serial”。选择2中查看的端口号,波特率设置为9600,然后单击“打开”。输入“AT+CGATT?”,然后单击“发送”,若返回“+CGATT:1”,表示网络附着成功(附着成功代表NB-IoT联网正常),返回“+CGATT:0”表示网络附着失败(附着失败代表NB-IoT联网异常),请查看SIM卡是否插入正确,或联系运营商检查网络状态。
  • [技术干货] 设备接入 IoTDA 场景示例—智慧路灯
    场景简介:路灯管理系统通过接入物联网平台,监控路灯状态,控制路灯开关(集成了NB模组的智慧路灯)。该场景主要描述的是设备可以通过LWM2M协议与物联网平台进行交互,应用侧可以到物联网平台订阅设备侧变化的通知,也可以给设备侧下发命令。核心知识点:产品模型、编解码插件、订阅推送、属性上报、命令下发。最佳实践参考:基于小熊派开发智慧路灯。
总条数:7138 到第 页
上滑加载中