树莓派3代B版自带板载wifi和蓝牙,因此想让树莓派通过wifi上网不再需要单独购买wifi模块,通过简单配置板载wifi即可快速实现。 配置方法在命令行操作,前提是你需要进入命令行终端,进入命令行终端的方法有多种:串口、SSH、HDMI+显示器。 扫描附件wifi热点通过命令sudo iwlist wlan0 scan查看附近所有wifi热点的信息。以下是我截取的片段,每一个Cell代表一个wifi热点,ESSID:"anxiang"表示热点名称为anxiang,还可以看到其他信息,比如通道为11;dBm值为RSSI,代表信号强度;Encryption key:on表示wifi已加密。
- wlan0 Scan completed :
- Cell 23 - Address: DC:09:4C:62:A8:12
- Channel:11
- Frequency:2.462 GHz (Channel 11)
- Quality=64/70 Signal level=-46 dBm
- Encryption key:on
- ESSID:"anxiang"
配置wifi上网信息使用root权限在配置文件wpa_supplicant.conf中添加wifi账号密码。 打开配置文件:
- vi /etc/wpa_supplicant/wpa_supplicant.conf
在文件末尾添加如下信息:
- network={
- ssid="anxiang"
- psk="12345678"
- }
ssid为wifi名称,psk为密码,保存之后执行wpa_cli reconfigure或者reboot重启树莓派。 执行命令ifconfig wlan0查看wifi连接状态,如果inet addr分配了IP地址,则证明wifi连接成功。
- root@raspberrypi:/home/pi# ifconfig wlan0
- wlan0 Link encap:Ethernet HWaddr b8:27:eb:c6:c0:a7
- inet addr:192.168.43.41 Bcast:192.168.43.255 Mask:255.255.255.0
这种配置方法wifi密码是明文的,我们可以通过命令wpa_passphrase进行加密。
- root@raspberrypi:/home/pi# wpa_passphrase "anxiang" "12345678"
- network={
- ssid="anxiang"
- #psk="12345678"
- psk=dba6b028b5b158ce327bf1f0f7bb5e61e085cdf586d14c4d4f00d5ee97fc9b37
- }
- root@raspberrypi:/home/pi#
需要注意的是,该命令只是生成加密格式的密码,我们还需要手动将加密内容拷贝到配置文件wpa_supplicant.conf中才会生效。 也可以通过一条命令完成加密生成、配置文件修改,该命令为:
- wpa_passphrase "anxiang" "12345678" | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf > /dev/null
更严谨的方式还需要将配置文件中的#psk="12345678"删除。无密码wifi配置针对无密码的wifi热点,需要添加key_mgmt=NONE。
- network={
- ssid="anxiang"
- key_mgmt=NONE
- }
隐藏的wifi配置如果你的路由器为了防止被蹭网而设置为隐藏模式,还需要添加scan_ssid配置。
- network={
- ssid="anxiang"
- scan_ssid=1
- psk=5e9fc1a26082c14604853dcb1aacd8c3143cf0621f62e30e68e36d2b9ba1d8f8
- }
配置多个wifi网络如果你在家、在公司都需要树莓派连接wifi,可以配置多个wifi信息,树莓派会自动识别可以连接的网络。
- network={
- ssid="officeSSID"
- psk="passwordOffice"
- id_str="office"
- }
-
- network={
- ssid="homeSSID"
- psk="passwordHome"
- id_str="home"
- }
如果在同一环境中有多个wifi热点,你可以通过priority设置连接的优先级,priority值越大优先级越高,将会优先连接。
- network={
- ssid="HomeOneSSID"
- psk="passwordOne"
- priority=1
- id_str="homeOne"
- }
-
- network={
- ssid="HomeTwoSSID"
- psk="passwordTwo"
- priority=2
- id_str="homeTwo"
- }
|