《用于物联网的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
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
2月前
|
传感器 存储 监控
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
54 0
|
3月前
|
传感器 监控 安全
物联网与智能家居:连接未来的无限可能
随着科技的不断进步,物联网(IoT)正逐渐渗透到我们的生活中。智能家居作为物联网的重要应用领域,正在改变我们的生活方式。本文将探讨物联网在智能家居中的应用,以及它对我们日常生活的影响。
|
1月前
|
关系型数据库 MySQL 分布式数据库
PolarDB for MySQL数据库外网连接解析失败的原因可能有以下几点
【2月更文挑战第16天】PolarDB for MySQL数据库外网连接解析失败的原因可能有以下几点
24 1
|
1月前
|
存储 安全 网络安全
Git 安全远程访问:SSH 密钥对生成、添加和连接步骤解析
SSH(Secure Shell)是一种用于安全远程访问的协议,它提供了加密通信和身份验证机制。在使用 SSH 连接到远程 Git 存储库时,您可以使用 SSH 密钥对来确保安全性。以下是关于如何生成和使用 SSH 密钥对的详细步骤: 生成 SSH 密钥对
102 2
|
1月前
|
网络协议 数据格式
|
2月前
|
关系型数据库 MySQL 分布式数据库
PolarDB for MySQL数据库外网连接解析失败的原因
【2月更文挑战第5天】PolarDB for MySQL数据库外网连接解析失败的原因
63 8
|
2月前
|
JavaScript 前端开发 区块链
最新视频连接解析地址
最新视频连接解析地址
28 0
|
3月前
|
关系型数据库 MySQL 分布式数据库
PolarDB for MySQL数据库外网连接解析失败的原因可能有以下几点
【1月更文挑战第21天】【1月更文挑战第105篇】PolarDB for MySQL数据库外网连接解析失败的原因可能有以下几点
45 1
|
3月前
|
传感器 物联网 智能硬件
连接家居的未来:物联网在智能家居中的革命性应用
随着物联网技术的迅猛发展,智能家居正成为我们生活中不可忽视的一部分。本文将探讨物联网在智能家居领域的创新和应用,包括智能设备的互联互通、家庭自动化、能源管理等方面的进展,以及其对我们日常生活的影响与未来发展的前景。
120 0
|
4月前
|
SQL 数据库
SQL FULL OUTER JOIN 关键字:左右表中所有记录的全连接解析
SQL RIGHT JOIN关键字返回右表(table2)中的所有记录以及左表(table1)中的匹配记录。如果没有匹配,则左侧的结果为0条记录。
64 0

相关产品

  • 物联网平台
  • 推荐镜像

    更多