《用于物联网的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
相关文章
|
1月前
|
数据采集 人工智能 安全
数据治理的实践与挑战:大型案例解析
在当今数字化时代,数据已成为企业运营和决策的核心资源。然而,随着数据量的爆炸性增长和数据来源的多样化,数据治理成为了企业面临的重要挑战之一。本文将通过几个大型案例,探讨数据治理的实践、成效以及面临的挑战。
数据治理的实践与挑战:大型案例解析
|
18天前
|
存储 人工智能 自然语言处理
高效档案管理案例介绍:文档内容批量结构化解决方案解析
档案文件内容丰富多样,传统人工管理耗时低效。思通数科AI平台通过自动布局分析、段落与标题检测、表格结构识别、嵌套内容还原及元数据生成等功能,实现档案的高精度分块处理和结构化存储,大幅提升管理和检索效率。某历史档案馆通过该平台完成了500万页档案的数字化,信息检索效率提升60%。
|
2月前
|
传感器 C# Android开发
深度解析Uno Platform中的事件处理机制与交互设计艺术:从理论到实践的全方位指南,助您构建响应迅速、交互流畅的跨平台应用
Uno Platform 是一款开源框架,支持使用 C# 和 XAML 开发跨平台原生 UI 应用,兼容 Windows、iOS、Android 及 WebAssembly。本文将介绍 Uno Platform 中高效的事件处理方法,并通过示例代码展示交互设计的核心原则与实践技巧,帮助提升应用的用户体验。事件处理让应用能响应用户输入,如点击、触摸及传感器数据变化。通过 XAML 或 C# 添加事件处理器,可确保及时反馈用户操作。示例代码展示了一个按钮点击事件处理过程。此外,还可运用动画和过渡效果进一步增强应用交互性。
149 57
|
27天前
|
Prometheus 监控 Cloud Native
实战经验:成功的DevOps实施案例解析
实战经验:成功的DevOps实施案例解析
41 6
|
1月前
|
传感器 数据采集 物联网
元宇宙与物联网:连接虚拟与现实
【10月更文挑战第29天】元宇宙与物联网正逐步改变我们的生活和工作方式。元宇宙通过区块链、云计算等技术,构建了一个与现实世界平行的虚拟空间;物联网则通过智能感知和连接,将物体与互联网相连,提供精准数据和服务。两者融合,提升了虚拟空间的真实感和沉浸感,带来了更智能的服务,共同推动社会的数字化和智能化进程。
|
30天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
19 1
|
11天前
|
物联网 智能硬件
物联网技术:连接智能生活的桥梁
物联网技术:连接智能生活的桥梁
|
1月前
|
数据格式
常用的Lambda表达式案例解析,工作中都会用到!
常用的Lambda表达式案例解析,工作中都会用到!
|
2月前
|
缓存 网络协议 Linux
DNS解析工具使用案例
关于如何在Windows和Linux操作系统下使用DNS解析工具的案例,包括查看和清空DNS缓存、使用whois查询工具以及安装和使用dig工具进行DNS记录查询。
42 2
DNS解析工具使用案例
|
1月前
|
存储 数据采集 监控
CDGA\如何建立实现数据治理的效率价值框架:实践案例解析
数据治理是一个持续优化的过程。组织应建立健全的监督与评估机制,定期对数据治理工作进行评估,发现问题及时整改。广东药科大学通过数据全景图和数据监控大屏,实现了对数据治理成果的动态、多维度呈现与监控,为科学管理决策提供了有力支撑。

相关产品

  • 物联网平台
  • 下一篇
    无影云桌面