• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Pegasus与Taurus WiFi互联通信<a name="ZH-CN_TOPIC_0000001130176841"></a>
2-    在学习Pegasus与Taurus WiFi互联通信前,需要将[device_soc_hisilicon](http://gitee.com/openharmony/device_soc_hisilicon)仓下载,在ubuntu下执行:git lfs clone xxxxx仓库地址,下载完成后,将device_soc_hisilicon\hi3516dv300\sdk_linux\sample\taurus\histreaming_server这整个文件夹放到自己源码对应device\soc\hisilicon\hi3516dv300\sdk_linux\sample\taurus目录下,同时将device_soc_hisilicon/hi3861v100/sdk_liteos/build/libs/libhistreaminglink.a这个库文件替换到device\soc\hisilicon\hi3861v100\sdk_liteos\build\libs\目录下。
3
4-    前言:HiStreaming 组件作为一种技术基础设施,使得海思芯片可以通过WiFi或有线网络实现物联网设备之间的设备自动发现、服务注册与识别、服务操作。HiStreaming把物联网设备分为两类角色,对外部提供服务的设备称之为 Server 设备,而使用其他设备提供的服务的设备称之为 Client 设备。
5
6     ![输入图片说明](../doc/figures/wifi_connect/1.jpg)
7
8## 硬件环境搭建
9-    硬件要求:Taurus开发板;硬件搭建如下图所示。注意这里需要跟Taurus同时使用,详情可以参考[WiFi互联client端](http://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/demo/histreaming_client_demo/README.md)端。
10
11     ![输入图片说明](../doc/figures/wifi_connect/260.jpg)
12
13     ![输入图片说明](../doc/figures/wifi_connect/12.jpg)
14
15## 组网方式
16-    组网方案1:将Taurus开发套件设置成为WiFi AP模式,Pegasus开发套件和手机直接连接到Taurus的WiFi AP热点。Taurus开发板上跑的是HiStreaming-Server和HiStreaming-Client程序,Pegasus开发板上跑的是HiStreaming-Server程序,手机上跑的是HiStreaming-Client程序。当三者在同一局域网内,手机能够同时发现Taurus和Pegasus上的HiStreaming-Server,且Taurus上的HiStreaming-Client也能发现Pegasus上的HiStreaming-Server。Taurus端、Pegasus端、手机端,三者之间的组网方式如下图所示。
17
18     ![输入图片说明](../doc/figures/wifi_connect/2.jpg)
19
20-    组网方案2:Pegasus端、Taurus端、手机端都配置成为STA模式,使Taurus开发套件、Pegasus开发套件以及手机都连接在同一路由器发出的WiFi AP热点下面,组成一个局域网。其中,Taurus开发板上跑的是HiStreaming-Server和HiStreaming-Client程序,Pegasus开发板上跑的是HiStreaming-Server程序,手机上跑的是HiStreaming-Client程序。当三者在同一局域网内,手机能够同时发现Taurus和Pegasus上的HiStreaming-Server,且Taurus上的HiStreaming-Client也能发现Pegasus上的HiStreaming-Server。Taurus端、Pegasus端、手机端,三者之间的组网方式如下图所示。(其实手机作为热点代替路由器也是可行的)
21
22     ![输入图片说明](../doc/figures/wifi_connect/3.jpg)
23
24## 软件介绍
25-    注意这里需要跟Taurus同时使用,Taurus软件介绍详情可以参考[WiFi互联client端](http://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/demo/histreaming_client_demo/README.md)26-    1.代码目录结构及相应接口功能介绍
27
28-    HiStreaming接口:
29
30| API                 | 描述               |
31| ------------------- | ------------------ |
32| LinkPlatformGe | 获得HiStreamingLinkLite组件对象 |
33| LinkPlatformFree | 释放HiStreamingLinkLite组件对象     |
34| LinkServiceAgentFree  | 释放从设备列表中pop出来的LinkServiceAgent对象     |
35| LinkAgentGet  | 获得LinkAgent对象     |
36| LinkAgentFree  | 释放LinkAgent对象    |
37| QueryResultFree  | 释放设备列表QueryResult。同时也释放设备列表关联的LinkServiceAgent对象    |
38
39## 获取WiFi可执行文件([util_OHOSL1_3516.zip](https://gitee.com/hihope_iot/embedded-race-hisilicon-track-2022/tree/master/taurus_resource))
40* 解压util_OHOSL1_3516.zip到util_OHOSL1_3516文件。
41* 在util_OHOSL1_3516文件包新建hostapd.confudhcpd.confwpa_supplicant.conf文件(注意这些文件需要在ubuntu下创建,windows下会出现格式问题)。
42* 在hostapd.conf文件写入如下内容。
43
44```
45interface=wlan0
46driver=hdf wifi
47ssid=H
48hw_mode=g
49channel=6
50ignore_broadcast_ssid=0
51#下面wpa2-psk类型加密的配置
52#如果不需要可以删除
53auth_algs=1
54wpa=2
55wpa_passphrase=12345678
56rsn_pairwise=CCMP
57```
58
59* 在udhcpd.conf文件写入如下内容。
60
61```
62# Sample udhcpd configuration file (/etc/udhcpd.conf)
63# The start and end of the IP lease block
64start 192.168.12.2
65end 192.168.12.100
66
67# The interface that udhcpd will use
68interface wlan0 #default: eth0
69
70# The maximim number of leases (includes addressesd reserved
71# by OFFER's, DECLINE's, and ARP conficts
72max_leases 20 #default: 254
73
74# If remaining is true (default), udhcpd will store the time
75# remaining for each lease in the udhcpd leases file. This is
76# for embedded systems that cannot keep time between reboots.
77# If you set remaining to no, the absolute time that the lease
78# expires at will be stored in the dhcpd.leases file.
79remaining yes #default: yes
80
81# The time period at which udhcpd will write out a dhcpd.leases
82# file. If this is 0, udhcpd will never automatically write a
83# lease file. (specified in seconds)
84auto_time 7200 #default: 7200 (2 hours)
85
86# The amount of time that an IP will be reserved (leased) for if a
87# DHCP decline message is received (seconds).
88decline_time 3600 #default: 3600 (1 hour)
89
90# The amount of time that an IP will be reserved (leased) for if an
91# ARP conflct occurs. (seconds)
92conflict_time 3600 #default: 3600 (1 hour)
93
94# How long an offered address is reserved (leased) in seconds
95offer_time 60 #default: 60 (1 minute)
96
97# If a lease to be given is below this value, the full lease time is
98# instead used (seconds).
99min_lease 60 #defult: 60
100
101# The location of the leases file
102lease_file /vendor/etc/udhcpd.leases
103
104# The remainer of options are DHCP options and can be specifed with the
105# keyword 'opt' or 'option'. If an option can take multiple items, such
106# as the dns option, they can be listed on the same line, or multiple
107# lines. The only option with a default is 'lease'.
108
109#Examples
110opt dns 10.221.0.11 8.8.8.8
111option subnet 255.255.255.0
112opt router 192.168.12.1
113```
114
115* 在wpa_supplicant.conf文件写入如下内容。
116```
117country=GB
118network={
119    ssid="H"
120    psk="12345678"
121}
122```
123
124**编译**
125
126* 在编译histreaming_server之前,需确保已经docker上整编通过,整编成功后,将./out/hispark_taurus/ipcamera_hispark_taurus_linux/usr/lib/libcjson_shared.so放到device\soc\hisilicon\hi3516dv300\sdk_linux\out\lib目录下,**且已经按照《[修改源码及配置文件适配Taurus开发板](../doc/2.2.1.%E4%BF%AE%E6%94%B9%E6%BA%90%E7%A0%81%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E9%80%82%E9%85%8DTaurus%E5%BC%80%E5%8F%91%E6%9D%BF.md)》的内容进行修改**。然后在单编ohos_histreaming_server之前,需修改目录下的一处依赖,进入//device/soc/hisilicon/hi3516dv300/sdk_linux目录下,通过修改BUILD.gn,在deps下面新增target,``"sample/taurus/histreaming_server:hi3516dv300_histreaming_server"``。
127```
128group("hispark_taurus_sdk") {
129  if (defined(ohos_lite)) {
130    deps = [
131      ":sdk_linux_lite_libs",
132      ":sdk_make",
133      "//kernel/linux/build:linux_kernel",
134      "sample/taurus/histreaming_server:hi3516dv300_histreaming_server",
135    ]
136```
137
138* 点击Deveco Device Tool工具的Build按键进行编译,具体的编译过程这里不再赘述。
139
140* 编译成功后,即可在out/hispark_taurus/ipcamera_hispark_taurus_linux/rootfs/bin目录下,生成ohos_histreaming_server可执行文件。
141
142**使用NFS挂载的方式进行资料文件的拷贝**
143
144* 首先需要自己准备一根网线
145
146* 步骤1:参考[博客链接](https://blog.csdn.net/Wu_GuiMing/article/details/115872995?spm=1001.2014.3001.5501)中的内容,进行nfs的环境搭建
147
148* 步骤2:将编译后生成的可执行文件拷贝到Windows的nfs共享路径下
149
150* 步骤3:将device\soc\hisilicon\hi3516dv300\sdk_linux\sample\taurus\histreaming_server\lib\目录下的**libhistreaminglink.a**和解压后的**util_OHOSL1_3516文件夹**拷贝至Windows的nfs共享路径下
151
152* 步骤4:依赖文件拷贝至Windows的nfs共享路径下后,执行下面的命令,将Windows的nfs共享路径挂载至开发板的mnt目录下
153
154```
155mount -o nolock,addr=192.168.200.1 -t nfs 192.168.200.1:/d/nfs /mnt
156```
157
158## 拷贝mnt目录下的文件至正确的目录下
159* 执行下面的命令,拷贝mnt目录下面的ohos_histreaming_server至userdata目录,拷贝mnt目录下面的libhistreaminglink.a和util_OHOSL1_3516至/usr/lib/目录下,再将目录下
160
161```
162cp /mnt/ohos_histreaming_server  /userdata/
163cp /mnt/*.so /usr/lib/
164cp -rf /mnt/util_OHOSL1_3516/  /usr/lib/
165```
166
167* 第一种方式:执行下面的命令,将Taurus设置为AP模式。hostapd.conf文件设置AP名和密码。启动成功后,手机端可以搜索wifi名:H,密码:12345678。
168
169```
170cd /usr/lib/util_OHOSL1_3516
171mkdir /usr/tmp
172mkdir /var/run
173touch /var/run/udhcpd.pid
174mkdir -p /vendor/etc
175touch /vendor/etc/udhcpd.leases
176./hostapd -i wlan0 hostapd.conf &
177ifconfig wlan0 192.168.12.145
178./busybox ./udhcpd udhcpd.conf
179```
180* 执行下面的命令,Taurus运行ohos_histreaming_server
181```
182cd /userdata
183chmod 777 ohos_histreaming_server
184./ohos_histreaming_server
185```
186
187* 板端运行后,参考[WiFi互联client端](http://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/demo/histreaming_client_demo/README.md)
188
189* Taurus端或者路由器需要发出热点,同时Taurus端运行ohos_histreaming_server可执行文件,再次点击Hi3861核心板上的“RST”复位键,此时开发板的系统会运行起来。运行结果:打开串口工具,可以看到如下打印,同时3861主板灯闪亮一下。
190
191  ![输入图片说明](../doc/figures/wifi_connect/260.jpg)
192
193  ![输入图片说明](../doc/figures/wifi_connect/22.jpg)
194
195  ![输入图片说明](../doc/figures/wifi_connect/24.jpg)
196
197* 如果你想使用手机来控制Pegasus或者Taurus,手机端安装及使用(源码下载](https://gitee.com/leo593362220/shistreaming.git)),然后进入app-release.rar目录,将程序安装到手机上,具体的安装过程这里就不介绍了(通过数据线复制到手机,或使用微信、QQ等方式发送到手机再安装)。
198APP安装成功后,打开手机的WiFi列表,连接到Taurus开发板的AP热点或者路由器热点,再打开刚安装好的HiStreaming APP,下拉刷新几次,手机会发现两个设备,分别是Pegasus开发板设备和Taurus开发板设备。
199
200  ![输入图片说明](../doc/figures/wifi_connect/20.jpg)
201
202  ![输入图片说明](../doc/figures/wifi_connect/21.jpg)
203
204* 任意点击一个设备进行操作,点击LED灯控制按钮,会进入一个灯的控制界面。点击图片会发生变化,且会给对应的设备发送数据,同时控制灯亮与熄。
205
206  ![输入图片说明](../doc/figures/wifi_connect/6.jpg)
207
208  ![输入图片说明](../doc/figures/wifi_connect/25.jpg)
209
210  ![输入图片说明](../doc/figures/wifi_connect/23.jpg)
211
212  ![输入图片说明](../doc/figures/wifi_connect/22.jpg)
213
214* 第二种方式:执行下面的命令,将Taurus设置为STA模式。wpa_supplicant.conf文件设置连接的WIFI名和密码。(手机和路由器使用4G网)
215```
216cd /usr/lib/util_OHOSL1_3516
217./wpa_supplicant -i wlan0 -c wpa_supplicant.conf &
218连接热点:
219./busybox ./udhcpc -s ./default.script -b -i wlan0
220```
221* 执行下面的命令,Taurus运行ohos_histreaming_server
222```
223cd /userdata
224chmod 777 ohos_histreaming_server
225./ohos_histreaming_server
226```
227
228* 板端运行后,参考[WiFi互联client端](http://gitee.com/openharmony/vendor_hisilicon/blob/master/hispark_pegasus/demo/histreaming_client_demo/README.md)
229
230* Taurus端或者路由器需要发出热点,同时Taurus端运行ohos_histreaming_server可执行文件,再次点击Hi3861核心板上的“RST”复位键,此时开发板的系统会运行起来。运行结果:打开串口工具,可以看到如下打印,同时3861主板灯闪亮一下。
231
232  ![输入图片说明](../doc/figures/wifi_connect/260.jpg)
233
234  ![输入图片说明](../doc/figures/wifi_connect/22.jpg)
235
236  ![输入图片说明](../doc/figures/wifi_connect/24.jpg)
237
238* 如果你想使用手机来控制Pegasus或者Taurus,手机端安装及使用(源码下载](https://gitee.com/leo593362220/shistreaming.git)),然后进入app-release.rar目录,将程序安装到手机上,具体的安装过程这里就不介绍了(通过数据线复制到手机,或使用微信、QQ等方式发送到手机再安装)。
239APP安装成功后,打开手机的WiFi列表,连接到Taurus开发板的AP热点或者路由器热点,再打开刚安装好的HiStreaming APP,下拉刷新几次,手机会发现两个设备,分别是Pegasus开发板设备和Taurus开发板设备。
240
241* 任意点击一个设备进行操作,点击LED灯控制按钮,会进入一个灯的控制界面。点击图片会发生变化,且会给对应的设备发送数据,同时控制灯亮与熄。
242
243  ![输入图片说明](../doc/figures/wifi_connect/6.jpg)
244
245  ![输入图片说明](../doc/figures/wifi_connect/25.jpg)
246
247  ![输入图片说明](../doc/figures/wifi_connect/23.jpg)
248
249  ![输入图片说明](../doc/figures/wifi_connect/22.jpg)
250
251