本节书摘来自华章出版社《用于物联网的Arduino项目开发:实用案例解析》一 书中的第2章,第2.4节,作者[美]安德尔·杰韦德(Adeel Javed),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.4 Arduino Yún的无线连接(WiFi)
Yún(云)是很高级的Arduino型号,是为物联网而设计的。对于初学者来说,Arduino Yún可能比Arduino Uno要复杂一些,不过它有内置的以太网和无线功能,所以就不再需要额外的盾板了。
在第1章中介绍过,本书会始终使用Arduino Uno。这一节只是给手上有Arduino Yún,又想用它来实现本书所介绍的原型作品的读者提供一个参考。尽管在本书的其他部分都不会再提到Arduino Yún,下载的代码还是会带有Arduino Yún兼容的部分。
2.4.1 硬件需求
把Arduino Yún连接到互联网上并不需要任何额外的硬件,所以图2-7中只有Arduino Yún。
2.4.2 软件需求
为了写互联网连接代码,需要Arduino IDE 1.6.4或更新版本的软件。
2.4.3 无线设置
与Arduino Uno不同,Uno需要插一块无线或以太网盾板,Arudino Yún则自带了内置的以太网和无线连接功能。Arduino Yún可以像电脑一样直接接入有线或无线的网络。所以,不需要为它写连接互联网的代码,而是需要配置它来连接到你的网络上去。本节就来介绍Arduino Yún的无线设置。
1.用Micro USB线把Arduino Yún与电脑相连。
2.Arduino Yún也能以热点的方式工作,所以在你的电脑上,搜索Arduino Yún的WiFi信号。由于所购Arduino Yún的不同,在电脑能看到的WiFi连接中的名称可能会是ArduinoYunXXXXXXXXXXXX或LininoXXXXXXXXXXXX。如图2-8所示,让电脑无线连接上Arduino Yún。
3.一旦连上,在电脑上打开网页浏览器,输入http://arduino.local(如果这个网址打不开,就输入默认的IP地址:http://192.168.240.1)。Arduino Yún的登录屏幕,如图2-9所示。
4.如果这是你第一次访问这块Arduino Yún,就输入默认的密码arduino(如果这个密码不行,试试doghunter,再不然就得查看厂家的文档了)。如图2-10所示,单击“LOG IN”(登录)按钮。
5.成功登录后,就会跳转至Arduino Yún的配置页面,如图2-11所示。单击这里的“CONFIGURE”(配置)按钮。
6.如图2-12所示,你可以修改Arduino Yún板子的名字、密码和时区。在“WIRELESS PARAMETERS”(无线参数)中,从“DETECTED WIRELESS NETWORKS(检测到的无线网络)”中选择你常用的无线网络,并选择加密类型,然后输入网络密码。之后,单击“CONFIGURE & RESTART”(配置并重启)按钮。
7.Arduino Yún重启后,会采用新的设置,如图2-13所示。
8.如图2-14所示,在重启过程中,Arduino Yún会为你显示一条消息,表示连接到了常用的无线网络。重启之后,就能用无线路由器分配给Arduino Yún的IP地址来访问它了。如果你无法找出这个分配的IP地址,先按照下面的步骤操作,然后把2.4.4节中给出的代码上传,那个代码会打印出连接数据。
9.打开Arduino IDE,确保Arduino Yún已通过Micro USB线与电脑相连。按照图2-15所示的步骤,在“工具?开发板”中,选择“Arduino Yún”。
10.按照图2-16所示的步骤,从“工具?端口”中,选择标着“Arduino Yún”的端口。
2.4.4 代码(Arduino)
这样Arduino Yún已经连接到了无线网络,就可以写代码来让Arduino发送和接收互联网上的数据了。因为Arduino Yún已经连接到了互联网,所需的代码就非常少了。不需要代码来做连接,只要用来使用无线连接就可以了。
启动Arduino IDE,输入下面的代码,或者从本书的网站下载代码文件然后打开。所有的文件都在单个源文件(*.ino)中,不过为了便于理解和重用,这个代码被分成以下三个部分:
- 外部库
- 互联网连接(无线)
- 标准函数
外部库
程序2-11是代码的第一部分,引入了运行这个代码所需的所有外部库。对Arduino Yún而言,使得程序可以访问已经建立起来的互联网连接。另外还需要使用来打印出连接数据。Arduino IDE已经安装了这两个库。
互联网连接(无线)
程序2-12是代码的第二部分,定义了将要用来显示连接数据的函数。因为Arduino已经连接到了无线网络,调用printConnectionInformation()函数就会打印出无线连接的数据。
标准函数
最后,程序2-13给出了第三部分的代码。它实现了Arduino的标准的setup()和loop()函数。对这个作品而言,只需要打印出互联网连接数据,所以loop()是空的。
这个代码和之前的Arduino Uno的代码的不同是,你需要用Bridge.begin()来初始化桥接部分,这样就能访问到Arduino Yún的互联网连接了。
至此,完成了编写Arduino代码。
2.4.5 最终的作品
要测试这个应用,按照第1章所介绍的,校验然后上传代码到Arduino。一旦代码上传完,打开串口监视器,就可看到如图2-17所示的日志消息。