解决树莓派开机不会自动连网以及断网后不会自动重连的问题
最近在研究树莓派,记录一下树莓派开机自动连网以及解决树莓派断网后不能重新自动连接的问题。
一、树莓派开机自动连网
- WiFi连接配置
修改 /etc/wpa_supplication/wpa_supplication.conf 文件里面的内容,所有的WiFi连接配置都在这里面。
(1)在树莓派终端中输入命令:
sudo nano /etc/wpa_supplication/wpa_supplication.conf
(2)添加如下代码:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="你的WiFi名称"
psk="你的WiFi密码"
key_mgmt=WPA-PSK
priority=1
}
priority指的是连接优先级,数字越大表示优先级越高。可以同时加入多个WiFi,根据需求配置相对的优先级。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=CN
network={
ssid="WiFi_1"
psk="你的WiFi密码"
key_mgmt=WPA-PSK
priority=1
}
network={
ssid="WiFi_2"
psk="你的WiFi密码"
key_mgmt=WPA-PSK
priority=2
}
network={
ssid="WiFi_3"
psk="你的WiFi密码"
key_mgmt=WPA-PSK
priority=3
}
- 修改网络配置
修改 /etc/network/interfaces 文件里面的内容
(1)在树莓派终端中输入命令:
sudo nano /etc/network/interfaces
(2)打开文件/etc/network/interfaces ,添加如下代码:
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplication/wpa_supplication.conf
- 重启树莓派,输入命令:
sudo reboot
重启树莓派之后,可以看见我们的树莓派已经连接上WiFi了。
二、树莓派断网后自动重连
本以为上面做完之后,一切都没有问题了,于是我就将树莓派一直开着让他运行一段时间,过了一晚上之后,我发现树莓派自动断网了,而且断网了之后他并不会自动重连。想办法解决吧!!!网上找了很多方法,最后靠以下方法成功解决。
解决方案
写入脚本,让他每段时间就监测一次网络状态,若不存在“192”(也可换成其他)关键字就判断树莓派掉线。
- 写入python脚本
在/home/pi文件夹下,新建 .py 文件,文件命名为autowifi.py
文件中添加代码如下:
import os, time
while True:
if '192' not in os.popen('ifconfig | grep 192').read():
print '\n****** wifi is down, restart... ******\n'
os.system('sudo /etc/init.d/networking restart')
time.sleep(1*60) #1 minute
- 写入shell脚本
同样在/home/pi文件夹下,新建 .sh 文件,文件命名为autowifi.sh
在文件中添加代码如下:
cd /home/pi
sudo python3 autowifi.py
- 设置autowifi.sh文件开机自启动
(1)在./config文件下建立一个autostart文件夹(如果本身已经有了这个文件夹就不用再新建了),
mkdir .config/autostart
(2)然后在autostart文件夹下新建并编辑xxx.desktop文件(经过测试,文件的名字可以随便取,但是一定要以.desktop为结尾,比如我的文件名称取的是autowifi.desktop)
sudo nano .config/autostart/autowifi.desktop
(3) 在.desktop文件下输入以下内容
[Desktop Entry]
Type=Application
Exec=/home/pi/autowifi.sh
其中Exec表示你想要执行的.sh文件
然后Ctrl+o保存,Ctrl+x退出即可。
(4)sudo reboot 重启树莓派
做完以上步骤,重启树莓派后进行断网自动连接测试。
断开WiFi
在命令行输入
sudo ifdown wlan0
此时,你的树莓派已经断开网络连接了
一分钟之后…
在命令行输入
ifconfig wlan0
可以看到我们的树莓派已经连上网了,并且分配了ip地址。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)