• Home
Name Date Size #Lines LOC

..--

BUILD.gnD12-May-20241.4 KiB4036

README.mdD12-May-202411.6 KiB226153

app_demo_iot.cD12-May-20245.6 KiB178126

cjson_init.cD12-May-2024980 3819

iot_config.hD12-May-20241.3 KiB319

iot_hmac.cD12-May-20242.9 KiB9564

iot_hmac.hD12-May-20241.4 KiB325

iot_log.cD12-May-20241.2 KiB5131

iot_log.hD12-May-20243.7 KiB12255

iot_main.cD12-May-20249.5 KiB314261

iot_main.hD12-May-20241.5 KiB447

iot_profile.cD12-May-20249.8 KiB336275

iot_profile.hD12-May-20242.7 KiB9464

iot_sta.cD12-May-20247.7 KiB269208

README.md

1# 腾讯云的微信小程序开发及Hi3861板端互联
2## 硬件环境搭建
3-    硬件要求:Hi3861V100核心板、扩展板;硬件搭建如下图所示。
4-    [Hi3861V100核心板参考:HiSpark_WiFi_IoT智能开发套件_原理图硬件资料\原理图\HiSpark_WiFi-IoT_Hi3861_CH340G_VER.B.pdf](http://gitee.com/hihope_iot/embedded-race-hisilicon-track-2022/blob/master/%E7%A1%AC%E4%BB%B6%E8%B5%84%E6%96%99/HiSpark_WiFi_IoT%E6%99%BA%E8%83%BD%E5%AE%B6%E5%B1%85%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6_%E5%8E%9F%E7%90%86%E5%9B%BE.rar)
5-    [扩展板参考:HiSpark_WiFi_IoT智能开发套件_原理图硬件资料\原理图\HiSpark_WiFi-IoT_Hi3861_CH340G_VER.B.pdf](http://gitee.com/hihope_iot/embedded-race-hisilicon-track-2022/blob/master/%E7%A1%AC%E4%BB%B6%E8%B5%84%E6%96%99/HiSpark_WiFi_IoT%E6%99%BA%E8%83%BD%E5%AE%B6%E5%B1%85%E5%BC%80%E5%8F%91%E5%A5%97%E4%BB%B6_%E5%8E%9F%E7%90%86%E5%9B%BE.rar)
6
7![输入图片说明](../doc/figures/iottencent_demo/034iottencent.png)
8
9## 软件介绍
10-   1.代码目录结构及相应接口功能介绍
11```
12vendor_hisilicon/hispark_pegasus/demo/iottencent_demo
13├── app_demo_iot.c      #IoSetPull();IoSetFunc();TaskMsleep()。
14├── BUILD.gn            # BUILD.gn文件由三部分内容(目标、源文件、头文件路径)构成,开发者根据需要填写,static_library中指定业务模块的编译结果,为静态库文件led_example,开发者根据实际情况完成填写。
15|                        sources中指定静态库.a所依赖的.c文件及其路径,若路径中包含"//"则表示绝对路径(此处为代码根路径),若不包含"//"则表示相对路径。include_dirs中指定source所需要依赖的.h文件路径。
16├── cjson_init.c        #
17├── iot_config.h        #
18├── iot_hmac.c          #
19├── iot_hmac.h          #
20├── iot_log.c           #
21├── iot_log.h           #
22├── iot_main.c          #
23├── iot_main.h          #
24├── iot_profile.c       #
25├── iot_sta.c           #
26└── iot_profile.h       #
27```
28-   2.Mqtt协议第三方软件与腾讯云之间的通信
29
302.1 浏览器搜索腾讯云,在腾讯云界面创建产品和设备,登录腾讯云后搜索“物联网通信”,进入页面后,物联网通信选择立即使用。进入页面后,选择产品列表栏->创建新产品->产品名称:xxx,认证方式:密钥认证,点击确定。
31
32![输入图片说明](../doc/figures/iottencent_demo/035iottencent.png)
33
34![输入图片说明](../doc/figures/iottencent_demo/036iottencent.png)
35
362.2 在产品列表栏进入刚刚创建的新产品->设备列表->添加设备->创建新设备:设备名称,设备备注(选填),使用物联网通信提供密钥->保存->复制保存生成的密钥->开始管理设备(可以看到设备相应信息)。
37
38![输入图片说明](../doc/figures/iottencent_demo/037iottencent.png)
39
40![输入图片说明](../doc/figures/iottencent_demo/038iottencent.png)
41
422.3 添加设备,同时查看设备相应信息。
43
44![输入图片说明](../doc/figures/iottencent_demo/039iottencent.png)
45
46![输入图片说明](../doc/figures/iottencent_demo/040iottencent.png)
47
48![输入图片说明](../doc/figures/iottencent_demo/041iottencent.png)
49
50![输入图片说明](../doc/figures/iottencent_demo/042iottencent.png)
51
52![输入图片说明](../doc/figures/iottencent_demo/043iottencent.png)
53
542.4 返回设备列表可以看到设备并未激活,接下来激活设备;下载[MQTT.fx-1.7.1 ](https://www.jensd.de/wordpress/?p=2746),下载完成后打开工具,点击设备图标,进入到设备界面配置ClientID,username,password 等参数。
55
56![输入图片说明](../doc/figures/iottencent_demo/044iottencent.png)
57
58![输入图片说明](../doc/figures/iottencent_demo/045iottencent.png)
59
60![输入图片说明](../doc/figures/iottencent_demo/046iottencent.png)
61
62![输入图片说明](../doc/figures/iottencent_demo/047iottencent.png)
63
64![输入图片说明](../doc/figures/iottencent_demo/048iottencent.png)
65
66![输入图片说明](../doc/figures/iottencent_demo/049iottencent.png)
67
68![输入图片说明](../doc/figures/iottencent_demo/050iottencent.png)
69
702.5 完成2.3步骤后,可以在腾讯云设备列表里面看到设备状态显示已激活,开始腾讯云与MQTT工具之间的通信。
71
72![输入图片说明](../doc/figures/iottencent_demo/051iottencent.png)
73
742.6 MQTT.fx-1.7.1工具订阅腾讯云的topic,腾讯云下发指令。
75
76![输入图片说明](../doc/figures/iottencent_demo/052iottencent.png)
77
78![输入图片说明](../doc/figures/iottencent_demo/053iottencent.png)
79
802.7 在腾讯云网页端点击“在线调试”。
81
82![输入图片说明](../doc/figures/iottencent_demo/054iottencent.png)
83
842.8 可以在MQTT.fx-1.7.1工具中看到腾讯云网页端发过来的消息。
85
86![输入图片说明](../doc/figures/iottencent_demo/055iottencent.png)
87
882.9 MQTT.fx-1.7.1工具发布腾讯云到的topic,在设备影子中查看发布到腾讯云的消息。
89
90![输入图片说明](../doc/figures/iottencent_demo/056iottencent.png)
91
92```
93{
94    "type":"update",
95        "state":{
96        "reported":{
97    "light":1,
98        "motor":1,
99        "temperature":25,
100        "humidity":60,
101        "light_intensity":50
102    }
103  },
104"version":0,
105"clientToken":"clientToken"
106}
107```
108
109![输入图片说明](../doc/figures/iottencent_demo/057iottencent.png)
110
111![输入图片说明](../doc/figures/iottencent_demo/058iottencent.png)
112
113-   3.微信小程序开发环境搭建及与腾讯云之间通信
114
1153.1 注册申请小程序账号:https://mp.weixin.qq.com/wxopen/waregister?action=step1116
1173.2 登录小程序后(选择IOT字样的账号),在“开发”->“开发设置”页面可以看到小程序的AppID,如下图所示,详情请查看微信官方文档:
118https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/getstart.html#%E7%94%B3%E8%AF%B7%E5%B8%90%E5%8F%B7119
120![输入图片说明](../doc/figures/iottencent_demo/059iottencent.png)
121
1223.3 开发者工具下载与安装:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html123
124![输入图片说明](../doc/figures/iottencent_demo/060iottencent.png)
125
1263.4 下载安装完成后,打开微信开发工具,导入提供的微信小程序软件包[获取微信小程序代码](https://gitee.com/leo593362220/Hi3861OpenHarmony)。并填入自己的APPID,后端服务选择微信云开发。
127
128![输入图片说明](../doc/figures/iottencent_demo/061iottencent.png)
129
1303.5 使用微信开发者工具打开工程后需要修改project.config.json文件中appid,projectname修改成自己的。
131
132![输入图片说明](../doc/figures/iottencent_demo/062iottencent.png)
133
1343.6 获取secretId和secretKey,在腾讯云->产品列表->搜索栏搜索访问密钥->访问密钥->继续使用->可以看到secretId和secretKey,复制在xxxx.txt文件,后面需要。
135
136![输入图片说明](../doc/figures/iottencent_demo/063iottencent.png)
137
138![输入图片说明](../doc/figures/iottencent_demo/064iottencent.png)
139
140![输入图片说明](../doc/figures/iottencent_demo/065iottencent.png)
141
1423.7 环境ID配置并获取环境ID,复制在xxx.txt文件,后面需要。
143
144![输入图片说明](../doc/figures/iottencent_demo/066iottencent.png)
145
146![输入图片说明](../doc/figures/iottencent_demo/067iottencent.png)
147
148![输入图片说明](../doc/figures/iottencent_demo/068iottencent.png)
149
150![输入图片说明](../doc/figures/iottencent_demo/069iottencent.png)
151
1523.8 需要修改app.js文件中productId(腾讯云上设备信息上产品ID),deviceName(腾讯云上设备信息上产品名称),secretId和secretKey(3.6步骤获取到的secretId和secretKey),env(3.7步骤获取到的环境ID)。
153
154![输入图片说明](../doc/figures/iottencent_demo/071iottencent.png)
155
1563.9 配置当前云环境
157
158![输入图片说明](../doc/figures/iottencent_demo/072iottencent.png)
159
160注意:第一次部署环境,图片里面的上传并部署会变成新建并部署。
161
162![输入图片说明](../doc/figures/iottencent_demo/073iottencent.png)
163
164![输入图片说明](../doc/figures/iottencent_demo/070iottencent.png)
165
166等待大概1分钟左右,直到出现上传云函数成功:(注意:上传并部署由于网络问题可能会失败,看到上传云函数等字样代表上传部署成功,这里以iothub-publish为例)。
167
168![输入图片说明](../doc/figures/iottencent_demo/074iottencent.png)
169
1703.10 环境部署完成后,点击编译,然后真机调试会出现如下界面,上面两个都要出现
171
172![输入图片说明](../doc/figures/iottencent_demo/075iottencent.png)
173
174-   4.Hi3861V100与微信小程序之间通信
175    -    将源码./vendor/hisilicon/hispark_pegasus/demo目录下的iottencent_demo整个文件夹及内容复制到源码./applications/sample/wifi-iot/app/下。
176    ```
177    .
178    └── applications
179        └── sample
180            └── wifi-iot
181                └── app
182                    └──iottencent_demo
183                       └── 代码
184    ```
185
186    -    配置源码./applications/sample/wifi-iot/app/iottencent_demo/iot_config.h中CONFIG_AP_SSID,CONFIG_AP_PWD为WiFi名称和WiFi密码。CONFIG_USER_ID为腾讯云设备信息上MQTT Username,CONFIG_USER_PWD为腾讯云上设备的MQTT Password,CN_CLIENTID为腾讯云上clientID。
187    ```
188    #define CONFIG_AP_SSID  "XXXXXXXX" // WIFI SSID
189    #define CONFIG_AP_PWD   "XXXXX" // WIFI PWD
190    /* Tencent iot Cloud user ID , password */
191    #define CONFIG_USER_ID    "XXXXXXXXXXXXX"
192    #define CONFIG_USER_PWD   "XXXXXXXXXXXX"
193    #define CN_CLIENTID     "xxxxxxxx" // Tencent cloud ClientID format: Product ID + device name
194    ```
195
196    -    更改源码./applications/sample/wifi-iot/app/iottencent_demo/iot_main.c文件中搜索g_defaultSubscribeTopic字段,将腾讯云上的Topic列表中自定义Topic添加到字段里。
197    ```
198    static const char *g_defaultSubscribeTopic[] = {
199        "76VQ4ZASTL/mqtt/data",
200        "76VQ4ZASTL/mqtt/event",
201        "76VQ4ZASTL/mqtt/control",
202    };
203    ```
204    -    更改源码./applications/sample/wifi-iot/app/iottencent_demo/iot_profile.c文件中搜索CN_PROFILE_TOPICFMT_TOPIC字段,将腾讯云上的产品名,设备名称添加到字段里。
205    ```
206    #define CN_PROFILE_TOPICFMT_TOPIC            "$shadow/operation/xxxxx/XXXX"  //xxxx为产品名和设备名称,如:76VQ4ZASTL
207    ```
208
209    -    修改源码./applications/sample/wifi-iot/app/BUILD.gn文件,在features字段中增加索引,使目标模块参与编译。features字段指定业务模块的路径和目标,features字段配置如下。
210    ```
211    import("//build/lite/config/component/lite_component.gni")
212
213    lite_component("app") {
214        features = [
215            "iottencent_demo:appDemoIot",
216        ]
217    }
218    ```
219
220    -    工程相关配置完成后,然后rebuild编译。
221-   5.烧录
222    -    编译成功后,点击DevEco Home->配置工程->hi3861->upload_port->选择对应串口端口号->选择upload_protocol->选择hiburn-serial->点击save保存,在保存成功后点击upload进行烧录,出现connecting, please reset device..字样复位开发板等待烧录完成。烧录成功后,再次点击Hi3861核心板上的“RST”复位键,此时开发板的系统会运行起来。
223    -    注意:一定要断开MQTT工具的连接。
224    -    微信小程序上选择已连接Wifi,跳过配网->云端互联->看到设备互联界面->点击刷新按钮,运行结果出现如下图代表成功,点击照明,主板灯会亮。
225
226    ![输入图片说明](../doc/figures/iottencent_demo/076iottencent.png)