ArduinoYun教程之通过网络为Arduino Yun编程
Arduino Yun的软件部分
通过第一章的介绍后读者就明白了Arduino Yun除了是一个类似其他Arduino的单片机之外,它的另一大组成部分就是运行着一个特殊Linux发行版的Atheros AR9331芯片。所以,本章将会介绍Atheros AR9331芯片上运行的这个Linux发行版以及与其交互、升级等方方面面。
通过网络为Arduino Yun编程
为其他没有互联网功能的Arduino板上传程序,就只能通过连接在PC上的USB线或者编程器来完成。而Arduino Yun不但可以这么用,而且可以通过有线网络以及无线网络为它编程。也就是说,你可以在家为远在千里之外的Arduino Yun更新程序。连接到OpenWrt-Yun的方式有三种,为了满足读者的各种要求,这里将三种方法统统道来。
使用WiFi连接
使用WiFi连接Arduino Yun可以说是最方便的方式。在Arduino Yun的初始状态下,它的板载WiFi是作为一个热点工作的。也就是说,它现在就和我们的无线路由器是类似的,你可以使用有WiFi功能的手机或者电脑连接它(虽然不一定能访问互联网)。这个热点的名称是以“Arduino Yun-MAC地址”这种方式命名的,如图3.1所示为在使用手机中发现的Arduino热点。同样,你可以在有WiFi功能的电脑中找到它,如图3.2所示。
图3.1 使用手机发现的WiFi热点 图3.2 在电脑中找到的WiFi热点
这个热点是开放的(即没有加密),所以任何人都可以连接它。无论以何种方式连接,你都可以在浏览器中输入IP地址192.168.240.1来连接到Arduino Yun。如果出现了如图3.3所示的页面,那么你现在就可以跳到3.2节进行设置了。
图3.3 连接Arduino Yun的初始界面
ArduinoYun使用有线连接
使用有线连接也就是将Arduino Yun和电脑接在同一个路由器上就可以了。这种方式的硬件方面就是需要一根普通的网线。接下来我们需要知道路由器为Arduino Yun分配的IP地址,这个地址可以供我们连接用。如果你的软硬件都没有问题,并且连接正确,那么Arduino IDE此时应该检测到了Arduino Yun,你可以在Arduino IDE的端口中查看,如图3.4所示。
图3.4 使用有线连接
从图3.4可以看到,Arduino IDE在IP地址192.168.0.110识别到了Arduino Yun。所以,我们就得到了路由器为Arduino Yun分配的地址,将这个地址输入到浏览器中,就可以访问到Arduino Yun的登录界面了(同图3.3)。此时,你就可以跳到3.2进行设置了。
ArduinoYun中使用交叉线直接连接
就笔者猜测来说,使用这种方式连接Arduino Yun的读者应该少之又少,因为现在各种路由器已经普及得不得了了,再者交叉线估计很多读者都没听说过。不过,这只是绝大部分的情况,不能决定所有读者都使用前面两种方式连接。所以,笔者现将最有挑战性的方法教给读者。最大的挑战性就是——先找到一根交叉线 。
这种连接方式是直接使用交叉线将Arduino Yun和电脑连接起来。在这种情况下电脑充当DHCP服务器,而Arduino Yun则是客户端。所以,在你拔出电脑的网线前,首先需要到http://www.dhcpserver.de/cms/download/下载DHCP Server这个软件。DHCP Server可以将你的电脑配置为一个DHCP服务器。DHCP Server是一个绿色软件,它不需要安装,你只需要将它解压缩就可以了,它含有如图3.5所示的几个文件。
图3.5 DHCP Server
其中,dhcpsrv.exe文件是DHCP Server的控制面板,它用来控制服务的启停以及显示运行状态。dhcpwiz.exe是DHCP Server的设置向导,它可以通过简单的步骤引导你来配置一个DHCP服务器。
1.为电脑设置固定IP
在运行这个向导之前,我们还需要做一点小的改动就是为本地连接设置一个固定IP。
(1)通过开始菜单中的“搜索程序和文件”命令来打开“网络和共享中心”窗口,如图3.6所示。
图3.6 网络和共享中心 图3.7 所有网络接口
*(2)单击左侧的“更改适配器设置”选项,出现如图3.7所示的窗口。
(3)我们需要设置的是“本地连接”接口。在其图标上右击,在弹出菜单中选择“属性”命令,打开如图3.8所示的属性对话框。
(4)选择项目中的“Internet协议版本4(TCP/IPv4)”,并单击右下角的“属性”按钮,弹出如图3.9所示的属性窗口。在这里我们就可以指定IP了,这里笔者将其指定为192.168.30.3,子网掩码使用默认的255.255.255.0,其他项目留空,如图3.9所示。当然读者也可以自行指定IP但是需要符合IP规范。
图3.8 本地连接属性
然后单击“确定”按钮,完成设置。
2.配置DHCP服务
现在,我们就可以着手部署DHCP服务了。
(1)运行dhcpwiz.exe,出现如图3.10所示的欢迎界面。
(2)单击“下一步”按钮,出现网卡选择界面。我们选择“本地连接”选项,如图3.11所示。
图3.10 欢迎界面 图3.11 网卡选择界面
(3)单击“下一步”按钮,出现协议选择界面。为了后面可以检测服务器状态,这里需要选择HTTP协议前的复选框,如图3.12所示。
(4)单击“下一步”按钮,这次出现的是确认信息以及设置可以分配的IP地址范围,如图3.13所示。这里使用默认配置即可。
图3.12 协议选择
(5)单击“下一步”按钮,进入配置文件写入界面。这里同样使用默认配置即可,并单击“Write INI file”按钮,如图3.14所示。
(6)单击“下一步”按钮,即完成了配置。同时,出现了DHCP Server的控制面板,我们需要单击“Install”按钮来安装服务,并单击“Configure”按钮,配置防火墙,如图3.15所示。
图3.14 写入配置文件 图3.15 安装服务并配置防火墙
(7)此时,“Start”按钮已经可用,单击它启动服务,同时服务状态显示为正在运行(Runing),如图3.16所示。接着,单击“完成”按钮,退出向导。
图3.16 启动服务
现在,我们就可以使用交叉线将Arduino Yun与电脑连起来了。现在DHCP Server还不能检测到Arduino Yun。我们需要按下Arduino Yun上的“YUN RST”来重启系统。待系统重启完成后,我们就可以在浏览器中访问http://127.0.0.1/dhcpstatus.xml来查看DHCP Server的状态,如图3.17所示即为连接到服务器的客户端信息。
图3.17 DHCP Server服务器状态
从图3.17中可以看到,现在有一个MAC地址为90-A2-DA-FF-01-15的客户端,这正是我们的Arduino