Eson Wong's Blog

生活随想、学习笔记、读书总结、创作记录

0%

网络遥控车互联网控制教程

4G 网络 RC 遥控车03 - 无限距离远程遥控?

简介

本篇部分内容已过时,安装 Network RC 和使用内置穿透的教程见 Network RC - 制作教程

上篇[WiFi/4G/5G 网络遥控车制作教程]介绍了在局域网下控制遥控车,要实现远程控制,必须让遥控车在互联网上可以访问遥控车。

本教程教大家如何让遥控小车接入移动互联网实现 4G/5G 网络无限距离遥控。

4G/5G 网络连接

为了让网络遥控车接入互联网,按[WiFi/4G/5G 网络遥控车制作教程]做好遥控车之后,要让小车上的树莓派连接到 4G/5G 网络。

UBS 4G/5G 网卡

USB 4G/5G 网卡是现在最方便的选择。我使用的是华为的 E8372h。插上树莓派就能联网

WiFi

你也可以用 4G/5G 手机(或者 4G/5G 路由器)来连接互联网。
开启手机 Wi-Fi 热点:
WiFi 热点

把手机安装到车上,树莓派上连接手机 Wi-Fi 热点。

树莓派连接 Wi-Fi 的方法请自行搜索。

此时树莓派是没有公网的 ip 地址的,还不能通过互联网连接到遥控车。

外网访问 - 网络穿透

我们通过使用 frp 网络穿透软件实现互联网对遥控车的访问。 network-rc 于 v0.5.0 版本里内置了 frp 客户端和作者提供的 frp 服务的配置。

使用下面的命令运行即可开启网络穿透功能(不需要{}):

1
sudo ./network-rc/node ./network-rc/index.js -f -o 9011 --tsl -p {你想设置的控制界面登陆密码}

由于可通过互联网访问,务必设置连接密码。作者提供的 frp 服务器可用端口为 9002 ~ 9060

网络穿透成功后即可通过 http://home.esonwong.com:9011 (9011 替换成你设置的端口号) 访问你的遥控车控制界面。

作者提供的免费的 frp 服务器(v0.9.11 已恢复),是运行在自家用的路由器上的,广东电信的网络。如果各位小伙伴离湖北比较远或者 4G/5G 核心、控制端的网络和 frp 穿透服务器属于不通的运营商会增加视频传输延迟。

受电信运营商的影响,作者提供的 frp 服务不是特别问题。

免费 frp 网络穿透服务器

搜索引擎搜索“免费的 frp”,可以找到好心的网友提供的免费的 frp 服务器。

需要找到以下服务器的配置:

  • 服务器地址 server_addr
  • 服务器端口 server_port
  • 服务 token token
  • 用户名 user

使用其它穿透服务器的命令(不需要{}):

1
sudo node index.js -f -o {访问端口} -p {你想设置的控制界面登陆密码} --frpServer {服务器地址} --frpServerPort {服务器端口} -frpServerToken {frp 的 token} --frpServerUser {frp 的用户名}

开机启动 network-rc

为了方便接上电源即可控制遥控车,我们将 network-rc 设置为开机启动。

增加 network-rc 服务,在 /etc/systemd/system/ 目录下新建 network-rc.service 文件,替换下方文本里的 network-rc 路径和密码(不需要{})保存到文件里。

创建和编辑 /etc/systemd/system/network-rc.service 文件需要 root 。如果用图形界面使用 sudo pcmanfm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=network-rc
After=syslog.target network.target
Wants=network.target

[Service]
User=root
Type=simple
ExecStart={network-rc文件夹路径}/node {network-rc文件夹路径}/index.js -f -o {访问端口} -p {你想设置的控制界面登陆密码} --tsl
# 比如 ExecStart=/home/pi/network-rc/node /home/pi/network-rc/index.js -f -o 9011 -p password --tsl
Restart= always
RestartSec=1min


[Install]
WantedBy=multi-user.target

设置开机启动服务:

1
sudo systemctl enable network-rc.service

network-rc 将在树莓派开机时和网络切换时自动运行。

查看服务状态:

1
sudo systemctl status network-rc.service

如果更新了文件需要运行:

1
2
3
sudo systemctl reload network-rc.service
sudo systemctl enable network-rc.service
sudo systemctl start network-rc.service

4G 网络下延迟测试

链接:树莓派 4G 网络遥控车图传延迟测试

4G 网络下的实际遥控效果

交流微信群

入群方法添: 加微信 EsonWong_ 备注 Network RC

捐赠

微信赞赏吗

参考

请我喝杯咖啡吧!

欢迎关注我的其它发布渠道