前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派连接WiFi(最稳定的方法)[通俗易懂]

树莓派连接WiFi(最稳定的方法)[通俗易懂]

作者头像
全栈程序员站长
发布2022-08-31 17:09:10
6.8K0
发布2022-08-31 17:09:10
举报

大家好,又见面了,我是你们的朋友全栈君。

1

概述

树莓派是一个只有信用卡大小的卡片式电脑,基于ARM架构,采用Linux作为其操作系统;它默认是通过有线接口连接互联网,对于如此小巧的设备,有线连接非常不方便,下面我们介绍下如何让树莓派通过无线网卡连接网络。

网上大多数文章介绍的是编辑 /etc/network/interfaces 文件,修改成如下的形式:

代码语言:javascript
复制
iface wlan0 inet dhcp
wpa-ssid "WiFi-name"
wpa-psk "WiFi-password"

然后重启树莓派或者重启network服务来连接WiFi:

代码语言:javascript
复制
sudo service network restart

这种方法虽然简单,但也有非常明显的缺点:

  • 不能同时保存多个WiFi用户名和密码,更换WiFi连接时非常不便
  • 连接WiFi可能要重启系统
  • 即使靠重启network服务来避免重启系统,也会导致其他网络连接中断(如网口的有线连接)
  • WiFi意外断开后不能自动重连

由于实用性不强,上述方法的具体操作过程就不再熬述了。这里介绍一种嵌入式业界常用的WiFi连接方法,可完全应用于树莓派,实现WiFi的方便、稳定连接:

  • 同时保存多个WiFi用户名和密码
  • 可设置连接优先级,多WiFi环境下优先连接指定WiFi
  • 避免重启系统,也无需重启任何服务
  • 断开自动重连

方法步骤

登录树莓派控制台

对于已联网的树莓派,具体步骤戳 使用PuTTY登录到树莓派

装有Linux的树莓派,和普通计算机一样。所有操作都可以通过电脑的远程登录完成。通过VNC可以登录到树莓派的桌面环境,而通过SSH可以操作树莓派的命令行。

尚未联网的树莓派,具体步骤戳 Adafruit的树莓派教程:使用控制电缆

这节课你将学习到如何使用控制电缆控制你的树莓派

修改网络配置

/etc/network/interfaces

用命令行文本编辑器 nano 打开 /etc/network/interfaces 文件,按如下方式修改:

  • 如果你从没有编辑过 /etc/network/interfaces文件,那它其中几行看起来是这个样子: iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf 你要做的是把上述两行替换成 iface wlan0 inet dhcp wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf 这样就行了
  • 如果你以前按照其他文章的方法,把 /etc/network/interfaces改写成下面的样子: iface wlan0 inet dhcp wpa-ssid "WiFi-name" wpa-psk "WiFi-password" 那么你要做的同样是,把上述三行替换成 iface wlan0 inet dhcp wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf 即可。

建议,若你不使用树莓派的有线网口连接网络的话,最好把 /etc/network/interfaces 文件第一行(也可能不在第一行)中 auto lo eth0 wlan0eth0 删掉。因为它会导致树莓派开机时等待有线网卡动态分配IP,但实际上你的有线网口并没有连接到路由器,这里会让内核等待更长的时间,从而拖慢开机速度。

尚不熟悉nano的用法,戳 nano简明使用指南

笔者的 /etc/network/interfaces 配置如下:

/etc/wpa_supplicant/wpa_supplicant.conf

/etc/network/interfaces 之外,你还需要修改 /etc/wpa_supplicant/wpa_supplicant.conf 。所有的WiFi连接配置都在这里了。

打开 /etc/wpa_supplicant/wpa_supplicant.conf 照着下面的样子添加(请不要删除原先就已经存在的任何行):

代码语言:javascript
复制
# 最常用的配置。WPA-PSK 加密方式。
network={
   
   
ssid="WiFi-name1"
psk="WiFi-password1"
priority=5
}
 
network={
   
   
ssid="WiFi-name2"
psk="WiFi-password2"
priority=4
}

priority 是指连接优先级,数字越大优先级越高(不可以是负数)。

按照自己的实际情况,修改这个文件。

例如,你家中有3个WiFi,分别为WiFi-A、WiFi-B和WiFi-C。你希望树莓派的连接优先级为 WiFi-A>WiFi-B>WiFi-C,则整个配置文件看起来像这样:

代码语言:javascript
复制
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
   
   
ssid="WiFi-A"
psk="12345678"
priority=5
}
 
network={
   
   
ssid="WiFi-B"
psk="12345678"
priority=4
}
 
network={
   
   
ssid="WiFi-C"
psk="12345678"
priority=3
}

笔者的 /etc/wpa_supplicant/wpa_supplicant.conf 配置如下:

开始连接WiFi

修改好 /etc/network/interfaces 之后,无论是连接还是断开WiFi,都变得简洁无比。

连接WiFi

在命令行下输入

代码语言:javascript
复制
sudo ifup wlan0

这条命令的意思是,启用(up)wlan0端口,即寻找可用WiFi并尝试连接。

命令会在屏幕上打印几行字符,未输出错误信息的话,就意味着WiFi连接成功了:

你可以用 iwconfig 命令或 ifconfig 命令检查一下WiFi连接:

断开WiFi

在命令行下输入

代码语言:javascript
复制
sudo ifdown wlan0

这条命令的意思是,关闭(down)wlan0端口,即断开已连接的WiFi。

千万不要在网络连接ssh时候执行这条命令,它会直接断开你的ssh连接


到这里,一切都配置好了。下次开机的时候,树莓派将自动连接有效的WiFi。

你可以试验一下WiFi的掉线自动重连功能,比如重启一下无线路由器,看树莓派还能不能重新连接上无线路由器。

转载请注明:《树莓派连接WiFi(最稳定的方法)

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143028.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 方法步骤
    • 登录树莓派控制台
      • 修改网络配置
        • /etc/network/interfaces
        • /etc/wpa_supplicant/wpa_supplicant.conf
      • 开始连接WiFi
        • 连接WiFi
        • 断开WiFi
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档