【树莓派】树莓派使用4G模块上网

想了解一下树莓派通过4G网络模块通信如何实现,看到这篇文章(http://www.lxway.com/95811506.htm),准备接下来有机会实践一下,先留存学习;

一、4G Luci配置

1、 新建一个wwan接口;

2、 上网方式为dhcp自动获取;

3、 物理设置选择wwan0;

4、 防火墙选择wan

二、重连脚本redial4g

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
LogFile=/root/4g_Log.log
mdate=`date +%R-%d-%m-%Y`
 
if [ -e /var/run/udhcpc-wwan0.pid ]; then
    echo 4G pid is ok!   
    #echo $mdate 4G pid is ok! >> $LogFile
    #exit 0
else
    echo 4G pid is failed!
    echo $mdate 4G pid is failed! >> $LogFile
    #/etc/myLte/dial4g
    #reboot
    #exit 0
fi
 
if ping -c3 www.baidu.com > /dev/null 2>&1
then
    echo ping baidu is ok!
    #echo $mdate  ping baidu is ok! >> $LogFile
    echo 0 > /tmp/4g_tmp.txt
    exit 0
else
    echo ping baidu is failed!
    echo $mdate ping baidu is failed! >> $LogFile
    /etc/myLte/dial4g  #must place here
    #read pvar < /tmp/4g_temp.txt
    #if [ -z "$pvar" ] ; then
    #    pvar=0
    #fi   
    if [ ! -f "/tmp/4g_tmp.txt" ] ; then
        pvar=0
        echo file not exist
    else
        read pvar < /tmp/4g_tmp.txt
        echo file exist
    fi
    pvar=`expr $pvar + 1`
    echo $pvar > /tmp/4g_tmp.txt
    if [ $pvar -ge 5 ] ; then
        echo failed 5 times!
        echo $mdate failed 5 times! >> $LogFile
        reboot   
    fi
     
fi
exit 0

  

三、crontab

*/2 * * * * /etc/myLte/redial4g

重连时间不要设太短,太短可能还没拨号结束就又进行重播,会重复了。

四、拨号脚本dial4g

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PORT=/dev/ttyUSB0
MODE="AT+CFUN=1" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
MODE="AT+COPS=0" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
MODE="AT+CEREG=1" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
MODE="AT+CGDCONT=1,'IP'" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
MODE="AT+CGACT=1,1" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
MODE="AT+ZGACT=1,1" gcom -d $PORT -s /etc/gcom/setmode.gcom
sleep 3
ifup wwan &
exit 0

  

五、开机启动

1
2
3
4
5
6
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
 
/etc/myLte/dial4g
 
exit 0

  




 

posted @   念槐聚  阅读(17033)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示