博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《用于物联网的Arduino项目开发:实用案例解析》—— 2.2 Arduino Uno的有线连接(以太网)...
阅读量:6338 次
发布时间:2019-06-22

本文共 1442 字,大约阅读时间需要 4 分钟。

本节书摘来自华章出版社《用于物联网的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

转载地址:http://rtooa.baihongyu.com/

你可能感兴趣的文章
TechParty - Code For Public - sz
查看>>
emacs 前端插件推荐[emmet-mode]
查看>>
dnsmasq配置文件
查看>>
Unity链接SqlServer数据库并进行简单的数据查询
查看>>
23种设计模式
查看>>
原生javascript学习:用循环改变div颜色
查看>>
ABBYY FineReader 12内置的自动化任务
查看>>
ab 测试 和 apache 修改 并发数 mpm
查看>>
Nginx 的软件负载均衡详解
查看>>
TIMED OUT WAITING FOR OHASD MONITOR
查看>>
过滤器
查看>>
入门技术管理者的思考
查看>>
Html与CSS快速入门02-HTML基础应用
查看>>
Tr A
查看>>
poj 3185 The Water Bowls
查看>>
《需求工程——软件建模与分析》读书笔记三
查看>>
常用HTTP状态码备忘
查看>>
资源合集
查看>>
MongoDB学习笔记(四) 用MongoDB的文档结构描述数据关系
查看>>
解决phpredis 'RedisException' with message 'read error on connection'
查看>>