中小学使用树莓派编程网络问题的解决方案
为了解决前述问题,古德微升级了编程平台和树莓派镜像,使得树莓派和电脑不在同一个局域网也能进行编程。
使用webrtc技术,对树莓派和电脑的网络进行打洞,使树莓派和电脑之间即使不在一个局域网也可以进行通信。
鉴于复杂的网络状况,树莓派和电脑之间的网络有时候也不一定能够打通,此时两者间通信只能依赖第三方服务器进行转发。 这种情况两者之间的通信就会存在延迟,编程体验也不好。我们应该尽量避免此类情况发生。
网络打洞难以成功的几种情况:
树莓派和电脑其中一个连接的网络类型是手机热点。
树莓派和电脑不在一个局域网,电脑侧开启了防火墙。
使用上述方案进行编程(下简称为P2P编程),组网方案就简单多了,如下图,原有的网络教室组网不需要变动, 只需要将一个路由器接入到交换机,然后树莓派通过wifi连接到该路由器即可。
上述组网准备后,使用P2P编程需要注意以下三点:
编程平台需要登陆新的网址:https://www.gdwrobot.cn/robot_p2p/
树莓派的镜像需要为3.4.0及以上版本,并且开启P2P功能,即修改树莓派的
/home/pi/back/testWrite/config
文件, 如下图,将红框内的flag
设为1
。(如果没有红框的内容,手动添加即可。电脑的防火墙需要关闭,或者防火墙对谷歌(chrome)浏览器的数据不拦截。 出于网络安全的考虑直接关闭学校机房电脑的防火墙不合适,那么可以手动添加一条规则让防火墙对谷歌(chrome)浏览器的数据不拦截。
如何添加一条防火墙规则?
以windows11为例,其他系统稍有不同,但大致方法是一样的
打开‘控制面板’,找到‘系统和安全’并打开
在‘系统和安全’界面选择‘Windows Defender 防火墙’
在‘windows Defender 防火墙’界面选择‘高级设置’
进入‘高级设置’界面后,点击‘入站规则’
在‘入站规则’界面里找到‘Google Chrome’
双击点开‘Google Chrome’,点击‘程序和服务’,找到此程序的路径地址并复制
回到‘高级设置’这个界面,选择‘新建规则’
进入‘新建规则’界面,然后直接点击下一页
将刚刚复制的路径地址,粘贴在‘此程序路径’栏,然后直接点击‘下一页’,
继续点击‘下一页’
继续点击‘下一页’
输入任意名字即可,比如‘gdwrobot’,点击‘完成’
回到界面,如果建立成功,则会出现‘gdwrobot’,即设置成功
还有一个问题,就是学校机房的电脑为公用电脑,都会安装还原系统,每次开机都会还原,那么我们添加的防火墙规则 重新开机后就被还原了。因此需要在还原系统里把这条防火墙规则给加入进去,就解决这个问题了。
下面说下怎么修改还原系统。以联想自带的‘联想硬盘保护系统’为例,其他系统会略有不同,可以参考此方法。开机时进入主界面,注意右上角显示‘当前处于保护模式’。点击‘管理员菜单’。
输入管理员密码
进入管理员界面之后,选择‘系统设置’
将‘开放模式重启动后自动调为保护模式’的勾选取消。
退出并回到主界面
按组合键‘CTRL+O’,进入‘开放模式’
以‘开放模式’进入Windows系统,重复前面的“添加防火墙规则”的所有步骤,添加配置完成后,点击重启,再次进入主界面前,弹出下面对话框,点击‘确定’
进入‘系统设置’,勾选‘开放模式重启动后自动调为保护模式’,退出,并进入系统,注意此时应该已经回到‘保护模式’,即完成。
至此,中小学使用树莓派编程的网络问题就解决了。