嵌入式设计应用
树莓派3在2016年2月29号正式发布了,树莓派3几乎和树莓派2代板型一致,大外观没什么变化小电路有所改动,不熟悉树莓派2代的朋友可能第一时间无法区别二者。接下来就随小编一起了解一下关于树莓派3wifi这一块的相关信息介绍。
树莓派3相比树莓派2配置的升级用翻天覆地来形容也不为过,主要的有:
1、在CPU上做了全方位的升级,从32位A7升级到64位A53,主频从900MHz升级到1.2GHz;
2、GPU核心没变,但是主频从250MHz提升到400MHz
3、功能上增加了WiFi/BLE,方便对智能产品的开发;
4、供电电路升级到2.5A@5V,增加了扩展更多模块的可能性。
树莓派3最让开发者兴奋的升级莫过于增加了WiFi/BLE功能,而这个功能的实现是依靠树莓派3背面的这颗博通BCM43438 WiFi/BLE芯片。
BCM4343除了本身集成的功能外,还具备两个重要的特点:
1、WIFI与蓝牙间相互切换,也称作Handover
2、设备点对点的WIFI直接连接
比如你的智能手机和手表在20公尺内,BCM4343组合芯片将用蓝牙做无线连接,超过这个距离它会自动切换为Wi-Fi,距离小于20公尺后,又自动切换为蓝牙,这样,不但能长距离保持连接,还能减少功耗。
而WiFi的直接更是目前不可缺少的功能,一般情况下,智能手表用低功耗蓝牙连接,如果智能手表可以录影、拍照,或者需要不同数据支持,此时用蓝牙传输时间就比较长,BCM4348可以把它切换为WiFi,即不需要经过路由器,直接点对点WiFi连接,只需原先时间的1/3就可完成传输,是不是很赞!
树莓派3内置了wifi和蓝牙模块,我们不用像以前的版本那样,再去购买一个外接的模块练到raspberry上。
当我们第一次启动了树莓派的时候,必然使用了网线,但是之后的每一次使用,我们当然更希望使用wifi连接树莓派和路由器,而且wifi模块内置在树莓派3中,何乐而不为?下面介绍下如何启动wifi模块,这时还是要借助网线的。
使用图形界面:
这个很简单了,我们只要像以往的linux系统一样,在右上角的菜单栏里面选择wifi,输入密码就可以了。
使用命令行:
当然,对于木有显示器的童靴,只能通过ssh来完成了。
1、可以通过如下的命令查看树莓派已经识别的wifi
如上图所示,每一个cell是一个网络,其中的ESSID是我们关注的,它是wifi的名称,找到自己路由wifi的名字。
2、用nano工具配置wifi信息:
在这个文件最后添加wifi的名字和密码
然后 crtl+o保存,这时会提示保存的文件名,当然不变,直接enter即可,最后ctrl+x退出。这时我更改以后又打开的截图:
3、最后重启树莓派
然后我们就可以拔下网线了。稍等一会,再登陆路由器的管理界面,查看新的树莓派的IP,重新ssh即可。
那如果我要配置多个wifi呢?只需要为每一个wifi配置一个network{}的变量即可。
树莓派是基于linux的只有信用卡的大小计算机。你可以把这货当成一个正常linux服务器就是,基本上你平时在linux上能做到的事情,它都能做到,比如当成rails服务器,在上面运行rails程序什么的(不过我没试,应该是可以的,sinatra可以)。然后这货有usb口,再然后插上你在某宝买的usb无线网卡,它就可以用WiFi了。下面是我第一次,第二次以及第n次连上WiFi的过程。
一、第一次连上WiFi
第一次连wifi之前,你需要做一件事情,那就是打开树莓派的terminal(俗称命令行),你有两种选择:
(1)通过HDMI连个显示器,再接个USB接个键盘,然后你就可以像用一台普通的pc一样用树莓派了
(2)插个网线,通过树莓派的ip地址ssh进去。
我是通过插网线的方式进去的,这个方法比较麻烦的地方是,你得去找到树莓派从DHCP的获取到的ip(当然能设静态ip又是另一回事了)。我是在自己家连的时候,可以从路由器的客户端列表里面找到树莓派的ip。
在进到terminal后,你就可以开始安装软件,修改配置了
(1)可能需要安装的软件(因为我拿到手的时候,发现系统里已经有了,不知道是某宝的亲帮我装的,还是raspbian已经预装了)
(2)然后可以开始配置网络了,修改/etc/network/interfaces文件,把它修改成这个样子
主要是添加wpa-ssid和wpa-psk,直接把你要连接的wifi的ssid和对应密码写上就行了。
(3)重启网络
然后你应该就已经连上wifi了,如果没有连上:
1、检查时候你要连接的wifi是不是隐藏的WiFi(不广播自己的ssid的WiFi网络),这种配置方法没办法连接隐藏的WiFi。通过下面的命令检查你要连的WiFi是不是在列表里: iwlist wlan0 scan
2、检查你的ssid和密码是否正确!!!
3、检查你要连的wifi网络是否正常,检查你的USB无线网卡是不是正常
4、如果还连不上就google吧,我也无能为力了
这样的配置在你重新启动树莓派后也能自动连接这个WiFi,这里连接WiFi使用的是wpa_supplicant。
二、自动连接多个WiFi网络
当你经常切换到不同WiFi网络中时,你可以配置多个WiFi网络,让树莓派能自动连接到可用WiFi网络中。这里就要用到高大上的wpa_supplicant.conf了
修改/etc/wpa_supplicant/wpa_supplicant.conf,下面是我使用的配置文件:
1、ap_scan:1是默认值,因此我注掉了
1.1、这个模式下总是先连接可见的WiFi,如果扫描完所有可见的网络之后都没有连接上,则开始连接隐藏WiFi。
1.2、会按照network定义的顺序连接WiFi网络,遇到隐藏的将立刻开始连接,因此在这个模式下连接顺序不受priority影响
2、ctrl_interface:这个文件夹里面存的是一个当前使用的interface的socket文件,可以供其他程序使用读取WiFi状态信息
3、network:是一个连接一个WiFi网络的配置,可以有多个,wpa_supplicant会按照priority指定的优先级(数字越大越先连接)来连接,当然,在这个列表里面隐藏WiFi不受priority的影响,隐藏WiFi总是在可见WiFi不能连接时才开始连接。
3.1、ssid:网络的ssid
3.2、psk:密码
3.3、priority:连接优先级,越大越优先
3.4、scan_ssid:连接隐藏WiFi时需要指定该值为1
4、修改/etc/network/interfaces使用wpa_supplicant.conf来配置无线网络
以后每次启动时,树莓派都会主动去连接配置文件中预定义的这些wifi网络。
在这个配置里面有一个ssid=‘pi’网络,这是一个最低优先级网络,是用来在陌生网络中配置树莓派的。当处在一个树莓派配置里面的没有的WiFi网络中时,我会自己创建一个叫pi的WiFi,当其他网络都不可用时,树莓派连到这个网络里,然后我便可以ssh进树莓派,添加网络配置,然后重启,就可以让树莓派加入到新的网络中。
三、让树莓派告诉你它的IP(软件的方式)
那么如何在你的树莓派加入新的网络后获取到它当前的ip地址呢?因为你在重新配置树莓派的网络并重启后,你跟树莓派的连接会断掉,因此你需要知道树莓派在新网络中的ip,从而使你能重新连接到树莓派。在网上很多免费提供的域名解析服务,你可以某个域名解析成你设置的ip地址。每次树莓派启动后都会更新自己的域名对应的ip,我是用的DNSDynamic提供的服务,进行简单的设置就OK了。
1、注册账号
2、设置一个启动脚本来获取本机ip并且更新到DNSDynamic上:
2.1、修改/etc/rc.local,添加如下内容:
脚本后面的内容是调用dnsdynamic提供的api更新域名对应的ip地址
每一次树莓派启动之后都会执行这个脚本更新自己的ip地址,也可以将这段脚添加到cron job里定时更新ip,但是感觉好像没有必要。
2.2、之后你就不用管ip地址了,可以通过域名直接ssh进树莓派:
全部0条评论
快来发表一下你的评论吧 !