《用于物联网的Arduino项目开发:实用案例解析》—— 2.2 Arduino Uno的有线连接(以太网)-阿里云开发者社区

开发者社区> 华章计算机> 正文

《用于物联网的Arduino项目开发:实用案例解析》—— 2.2 Arduino Uno的有线连接(以太网)

简介: 这一节,我们要给Arduino Uno加一块以太网盾板,然后写代码来通过以太网把Arduino连接到互联网。 如果你用的Arduino具有内置以太网功能,比如Arduino Yún,就不需要额外的以太网盾板。Arduino Yún的互联网连接设置在本章后面会介绍。
+关注继续查看

本节书摘来自华章出版社《用于物联网的Arduino项目开发:实用案例解析》一 书中的第2章,第2.2节,作者[美]安德尔·杰韦德(Adeel Javed),更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 Arduino Uno的有线连接(以太网)

这一节,我们要给Arduino Uno加一块以太网盾板,然后写代码来通过以太网把Arduino连接到互联网。
如果你用的Arduino具有内置以太网功能,比如Arduino Yún,就不需要额外的以太网盾板。Arduino Yún的互联网连接设置在本章后面会介绍。

2.2.1 硬件需求

图2-1给出了用以太网盾板把Arduino Uno连接到互联网所需的全部硬件部件。

efe15941fa3424c5494de499ad31d9fb82f75963

2.2.2 软件需求

为了编写互联网连接的代码,需要Arduino IDE 1.6.4或更新版本的软件。

2.2.3 电路

本节,我们要开始搭建用以太网实现互联网连接所需的电路。
1.首先确认Arduino没有连接任何电源、USB线和电池。
2.把以太网盾板插在Arduino上。所有的引脚都要对齐。
3.用一条网线把Arduino连接到路由器的LAN(局域网)端口。路由器应该已经连接到互联网了。
插好以太网盾板后应如图2-2所示。

bd08524319da50d1255ed81eac4c7dacbf7ab1b1

2.2.4 代码(Arduino)

现在,这个Arduino物理上已经连接到了以太网上,接下来要写代码让Arduino发送和接收互联网上的数据。
启动Arduino IDE,输入代码,或者从本书的网站下载代码文件然后打开。所有的文件都在单个源文件(*.ino)中,不过为了便于理解和重用,这个代码被分成三个部分:

  • 外部库
  • 互联网连接(以太网)
  • 标准函数

外部库

程序2-1给出了代码的第一部分,它引入了运行这个代码所需的全部外部库。因为要通过以太网来连接到互联网,这个代码主要依赖的是。Arduino IDE应该已经带着以太网的库了。

96ac7c53f74b72a9be3caa72a0ebc98cf963494d

互联网连接(以太网)

代码的第二部分定义了连接互联网要用到的变量、常量和函数。
如程序2-2所示,首先需要在mac[]变量中定义MAC地址。对于最近新出的以太网盾板,MAC地址可能会印在一个不干胶贴纸上。另外,如果无法从DHCP(动态主机配置协议)获得动态IP地址,还需要设置一个静态IP地址。要确保你使用的IP地址是空闲的,就是说在局域网内,没有其他设备正在使用这个地址。
定义连接要用到的EthernetClient变量。

59f16b57e1245f8953881d97d3dae7faf0b7eeed

程序2-3给出了建立以太网连接所用的代码。connectToInternet()函数首先试图通过DHCP来连接到以太网。如果DHCP无法给Arduino分配一个动态IP地址,就会用之前定义的静态IP地址来连接以太网。

4be19344363c80b0d2fbc26b1f89bd3acef4b0c6

一旦Arduino成功连接到互联网,就会调用程序2-4所给出的以太网的printConnec-tionInformation()函数。这个函数在串口监视器窗口打印出连接数据,如IP地址、子网屏蔽字、网关和DNS。

57a244ced39db674cd9bab86c5a805e73e6fa0bb

标准函数

最后,程序2-5给出了第三部分中的代码。它实现了Arduino的标准的setup()和loop()函数。对这个作品而言,只要把Arduino连上互联网就行了,没有后续的事情要做,所以loop()就是空的。

864d10d0e96ff27a847a40a341ad3a2d30334133

至此,完成了编写Arduino代码。

2.2.5 最终的作品

要测试这个应用,按照第1章所介绍的,校验然后上传代码到Arduino。一旦代码上传好了,就打开串口监视器,将看到如图2-3所示的日志消息。

aa60d4a93f975b1da2a9178c14324985650670f6

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
个人用户如何手动在ECS实例上部署Java web项目?
本篇文档介绍如何手动在ECS实例上部署Java web项目。适用于刚开始使用阿里云进行建站的个人用户。
1684 0
《用于物联网的Arduino项目开发:实用案例解析》—— 3.3 MQTT
MQTT是一个轻量级的机器对机器的协议。它采用的是发布者-订阅者模型,就是说由一个发布者把数据发布给服务器(也叫作代理),然后订阅者就能收到这个数据。发布者和订阅者彼此互不相识,但他们都连接在代理上,代理异步地完成这个通信。
3371 0
《jQuery EasyUI开发指南》——1.6 新建Web Project
打开MyEclipse 10可以看到它的整个开发界面。选择“File”→“New”→“Web Project”,在弹出的对话框中可以看到“Create a Web Project”的具体设置。一般来说,Java比较适合企业级开发,而现在软件开发流行的趋势就是Web方式,所以创建项目的时候,一般也是新建Web Project。
1227 0
《jQuery EasyUI开发指南》——1.5 MyEclipse的语言配置
一般来说,在开发软件的时候,使用IDE主要有英文和中文这两个选择(对日开发除外)。究竟使用英文版还是使用中文版呢?在这个问题上,很多新手很困扰。使用英文版,显得专业,但如果英文不好,很难对IDE的各种选项进行设置,更不要说是精通了。也许,使用了几年英文版,对IDE的熟悉程度还始终停留在初级阶段。
1854 0
《jQuery EasyUI开发指南》——1.7 安装Tomcat服务器
Tomcat从诞生到现在已经推出了很多个版本。对于Web开发,并不需要很高的版本,因为Web服务器是非常需要稳定的。虽然最新版本支持很多新的特性,但同时也带来了更多的风险。与其选择最新的,不如选择最稳定的,而且这种稳定是经过长时间的实践证明的,实在没有必要冒险。
1536 0
一起谈.NET技术,Microsoft NLayerApp案例理论与实践 - 项目简介与环境搭建
  项目简介   Microsoft – Spain团队有一个很不错的面向领域多层分布式项目案例:Microsoft – Domain Oriented N-Layered .NET 4.0 App Sample(在本系列文章中,我使用NLayerApp作为该项目的名称进行介绍),在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/。
1152 0
Asp.net MVC 2.0 + Unity 2.0(IoC) + EF4.0 实例:RoRoWoBlog 开源项目框架代码
本开源项目当前使用框架如下: 前台表现:Asp.net MVC 2 数据持久层:ADO.Net Entity Framework 4.0 依赖注入容器:Unity 2.0 开发工具:VS2010   开源项目地址:http://rorowo.
934 0
《jQuery EasyUI开发指南》——1.8 搭建SSH开发框架
工欲善其事,必先利其器。在Java Web开发中,之所以采用MyEclipse,并且采用最流行的MVC架构来开发,就是因为MyEclipse的扩展性。它可以说是无限扩展的,需要什么就安装什么,这些来自第三方的插件,可以非常方便地为项目服务,提供强大的功能。
1408 0
《用于物联网的Arduino项目开发:实用案例解析》—— 3.4 小结
本章我们研究了HTTP和MQTT,在物联网应用中它们是两个非常重要、流行、轻量级的通信协议。这些协议是与具体设备无关的,所以可以用作任何类型的设备或服务器的通信。下一章会大量地使用这两个协议。
1429 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载