zqy 8ff0c5a445 zz 2 years ago
..
flower(picture) 8ff0c5a445 zz 2 years ago
README.md 8ff0c5a445 zz 2 years ago
护花使者——应用端代码解析.md 8ff0c5a445 zz 2 years ago
护花使者——设备端代码解析.md 8ff0c5a445 zz 2 years ago

README.md

学生党上手数字管家 — — 全流程总结篇!

本文的内容中包含了前两篇的知识点(碰一碰让台灯亮起来!、服务端配置详细步骤)

学生党上手数字管家 — — 碰一碰让台灯亮起来!
学生党上手数字管家 — — 服务端配置详细步骤 (刘兴龙)

两篇文章中的内容包含了密钥、签名、证书文件的申请及配置、代码获取、编译烧录、NFC配置、FA配置、服务器配置......均为一些基础操作(其实本文也就是基础操作的总结),但我建议各位同学还是看完之前的内容再来看本文,因为接下来的一些基础操作将不再做过多的赘述。

​ 通过本章的内容,同学们可以配置自己的服务器、接入自己的设备、真正入门数字管家。简而言之,之前是体验了一把碰一碰让台灯亮起来,通过本文内容就可以做到碰一碰让风扇转起来、让窗帘拉起来、让门铃响起来......将已有的Demo统统实现。

数字管家架构图分析!1

1、明确我们所面对的对象。

​ 我的思路是以IOT设备和FA应用为对象,想要达到的目的也就是应用控制设备,设备反馈信息。由图可知,为了实现两者的互通,我们需要配置华为IOT云平台、数字管家服务端、数据库、消息队列这四大环节。

5

2、从简单入手,逐一攻破。

2.1、设备与应用。(以“护花使者”为例)

4

1

2.1.1、护花使者——设备端代码解析
2.1.2、护花使者——应用端代码解析
2.2、华为IOT云平台。

​ 对我而言,四大环节中简单入手的是华为IOT云平台,因为小熊派的大神早已将接通云平台的详细步骤发布到了b站上:HarmonyOS网络应用—连接华为IOT平台 我也是通过反复观看这段视频才有所收获,视频中不仅包含了接通华为IOT云平台,还详细介绍了profile的定义以及华为云SDK的配置方法。

​ 再加之参考官方提供的“设备连接IoT云平台指南 文档,解决华为IOT平台只是时间问题。

2.3、数字管家服务端、数据库、消息队列。

​ 之所以将三者并在一起来讲,是因为三者的代码均在Server之中

2

Server中又包含了以下三个模块

- distschedule--core       # 入口模块,包含main和controller
- distschedule-service     # 服务模块
- distschedule-dao         # 数据库模块

​ 参考官方提供的"数字管家服务端说明" 文档和"学生党上手数字管家 — — 服务端配置详细步骤 "文档,

只要打开了网页就说明你服务器配置成功了。3

3、跑通全流程。

前提:

(1)完成华为IOT云平台的product申请以及prfile定义。如此便可以得到productID。

(2)完成数字管家服务端的配置、数据库、消息队列。当中同样涉及到华为IOT平台中的AK、SK、APPID,以及自己的服务器虚拟机中的rabbitmq、mysql地址信息,在"学生党上手数字管家 — — 服务端配置详细步骤 "文档中均有详细描述。

准备好了productID、数字管家服务端配置(能打开网页了),便可以进行如下修改:

1、修改FA应用中的服务器接入的代码和IOT设备中的RabbitMQ接入的地址(说人话就是将之前接入官方服务器的地址81.71.17.188换成自己的就可以了)

2、更换华为IOT云平台中自己申请的productID。

关于设备接入productID修改总结:

             1、数据库里面的productID要修改。
             2、应用代码里面的productID也要修改。
             3、设备代码里面的productID也也要修改。
             4、NFC标签里productID也也也要修改。

全部修改之后便可根据 学生党上手数字管家 — — 碰一碰让台灯亮起来! 中的步骤,实现不同Demo。

FAQs:

如果碰一碰配网环节手机端出现:The device already exists.,删除华为云中的设备即可。

如果碰一碰配网环节手机端出现:device type not exists failed.,说明数据库中的productID没有修改。

如果碰一碰配网环节手机端出现:onErro: failed to connect to/**.**.**.**(port 8080)from /**.**.**.**(port 12345)after 20000ms.,说明你的服务器没开或是外网接不进去。(telnet可以试试,逐步检查问题,百度即可)

如果碰一碰配网环节手机端出现:onErro: Path parameter “deviceId” value must not be noll.,说明你的NFC配置中的deviceID有问题,并检查一下数据库,核对好productID和deviceID。

以上均是个人在实际操作过程中遇到并解决的问题。

更多问题解答还请参考官方FAQs

个人体会:

整个项目对我来说是“照葫芦画瓢,还有各位老师指导”,但我并不会止步于此。在本次项目中,我不仅学到了知识,最重要的是我发现了自己的缺点,比如在看代码的时候,如果放散来看每一个模块,那样很容易直接读出模块的意思,实在不行咱就上翻译,但每个模块的结合使用,我认为才是我该学习的地方,这是一种思想,是编写人的思想,编写人为什么这么编写,这样写的意义又是什么,我在看代码的过程中一直在思考这样的问题,于是我便发现了自己的缺点,为什么我编不出来,换句话来说就是我会写字,但我不知道写什么。当然解决的办法我还是有一些的,那就是从生活中学习思维,父亲喜爱盆景,所以我一直在幻想着有朝一日父亲用的所有的智能盆景管理设备都是我做的,于是父亲负责给我提需求,我负责实现,真真切切的感受解决问题的方式方法。所以

好戏才刚刚开始!

“护花使者”视频演示:

视频链接:https://www.bilibili.com/video/BV1oY41137QF?share_source=copy_web