最近使用到了树莓派以及EC20模块,想使用EC20的4G上网功能以及GPS功能。 并且能开机自启动

前言

最初使用了网上的方法,使用了wvdial软件进行拨号
但这个方法需要在命令行里输入命令拨号并维持程序运行

sudo wvdial lan1

为了实现开机自启动,创建了一个启动服务(systemctl)来运行这条命令。但拨号成功后还是无法上网,因为还需要使用命令配置路由

sudo ip route add default via 10.64.64.64

故在启动服务里加上了这条配置路由的命令,但发现还是无法上网。发现在sudo wvdial lan1拨号成功前,不会在路由表中创建10.64.64.64这个路由,且将两个命令写在同一个启动服务中,即时sudo wvdial lan1命令拨号成功,就会维持在此,不会结束进入下一条命令,故更改路由的命令无法生效。
在这里插入图片描述

故又创建了第二个启动服务来执行配置路由的命令,并且执行之前等待2分钟,用以等待wvdial拨号完成

# route.sh
sleep 2m
sudo ip route add default via 10.64.64.64

用这个方法成功实现了树莓派开机自启动,4G拨号并配置路由,使用4G访问互联网
,当我尝试使用EC20的GPS功能时,发现发送AT命令的串口发送命令后无法生效。
所以另寻他法。

正文

直接使用EC20提供的USB网卡模式,实现树莓派通过USB网卡访问网络

连接树莓派与EC20

这里使用到了:

  • 树莓派4B
  • 移远EC20 mini PCIE模块
  • usb转mini PCIE模块
  • ipex1代转sma内孔转接线
  • sma内针4G天线

在这里插入图片描述

检查连接

在命令行里输入,查看与树莓派连接的usb设备

lsusb

查看usb设备
看到Quectel Wireless…EC25 LTE

dmesg | grep ttyUSB


说明EC20连接好了

使用串口配置EC20

安装cutecom

Cutecom,Linux系统可视化串口应用软件

sudo apt-get install cutecom 

启动cutecom

sudo cutecom

选择串口:/dev/ttyUSB2 ,点击Open
选择ttyUSB2
发送命令前需要把串口的结束符换成CR/LF
在这里插入图片描述

在这里插入图片描述

使用cutecom配置EC20

设置EC20的USB网卡模式
AT+QCFG="usbnet",1

在这里插入图片描述
收到OK,表示设置成功

配置APN
AT+CGDCONT=1,"IP","Network APN"
"Network APN"t替换为自己sim卡使用运营商的APN
APN可以百度获得
比如我的电信卡配置为:
AT+CGDCONT=1,"IP","ctnet"

在这里插入图片描述

重启模块
AT+CFUN=1,1

愉快使用

查看是否成功

看到模块的蓝色指示灯常亮,偶尔闪一下,说明模块就以及给我们拨好号,连接上互联网了。
命令行输入

ip route

在这里插入图片描述
发现多了一个usb0的路由,并且前面有一个default,这个就很关键,说明就不需要我们再手动配置路由了,如果没有连接网线,没有连接wifi,那么树莓派就会通过usb0设备,也就是我们的EC20模块访问互联网。

测试能否通过EC20上网

上面的图片看到,ip route中有两个default设备,一个是我网线的路由,一个是EC20的路由,这时候访问网络是通过网线访问的,测试4G就需要删掉网线的默认路由。命令行输入

sudo ip route delete default via 192.168.1.1

"192.168.1.1"是上面ip route里面default via 192.168.1.1的ip地址 在这里插入图片描述
在这里插入图片描述
再次输入ip route检查
在这里插入图片描述
可以发现192.168.1.1的default被删除了,只剩下EC20的usb0了。
ping百度测试一下

ping baidu.com

在这里插入图片描述
至此,模块已经配置好usb网卡,并且能成功上网了。

结语

本人是新人小白,文中有些术语只是我自己的理解胡编乱造,还请大佬们轻喷。
发文只是将自己在使用过程中塘的坑发出来。

参考链接

【动手实践】树莓派通过EC20模组访问互联网 by xinlong
移远官网EC20手册

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐