《用于物联网的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
相关文章
|
14天前
|
传感器 C# Android开发
深度解析Uno Platform中的事件处理机制与交互设计艺术:从理论到实践的全方位指南,助您构建响应迅速、交互流畅的跨平台应用
Uno Platform 是一款开源框架,支持使用 C# 和 XAML 开发跨平台原生 UI 应用,兼容 Windows、iOS、Android 及 WebAssembly。本文将介绍 Uno Platform 中高效的事件处理方法,并通过示例代码展示交互设计的核心原则与实践技巧,帮助提升应用的用户体验。事件处理让应用能响应用户输入,如点击、触摸及传感器数据变化。通过 XAML 或 C# 添加事件处理器,可确保及时反馈用户操作。示例代码展示了一个按钮点击事件处理过程。此外,还可运用动画和过渡效果进一步增强应用交互性。
126 57
|
1月前
|
缓存 网络协议 Linux
DNS解析工具使用案例
关于如何在Windows和Linux操作系统下使用DNS解析工具的案例,包括查看和清空DNS缓存、使用whois查询工具以及安装和使用dig工具进行DNS记录查询。
19 2
DNS解析工具使用案例
|
19天前
|
负载均衡 监控 安全
Wi-Fi漫游深入解析:确保设备连接的有效策略
Wi-Fi漫游深入解析:确保设备连接的有效策略
32 9
|
2月前
|
人工智能 PyTorch 算法框架/工具
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
【8月更文挑战第6天】Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
|
4天前
|
运维 网络协议
深入解析TCP三次握手与四次挥手:建立与断开连接的关键过程
深入解析TCP三次握手与四次挥手:建立与断开连接的关键过程
15 0
|
2月前
|
JavaScript 前端开发 UED
Javaweb之javascript的小案例的详细解析
通过上述步骤,我们得到了一个动态更新的实时时钟,这个简单的JavaScript案例展示了定时器的使用方法,并讲解了如何处理日期和时间。这个案例说明了JavaScript在网页中添加动态内容与交互的能力。对于涉足JavaWeb开发的学习者来说,理解和运用这些基础知识非常重要。
36 11
|
2月前
|
JSON 数据管理 关系型数据库
【Dataphin V3.9】颠覆你的数据管理体验!API数据源接入与集成优化,如何让企业轻松驾驭海量异构数据,实现数据价值最大化?全面解析、实战案例、专业指导,带你解锁数据整合新技能!
【8月更文挑战第15天】随着大数据技术的发展,企业对数据处理的需求不断增长。Dataphin V3.9 版本提供更灵活的数据源接入和高效 API 集成能力,支持 MySQL、Oracle、Hive 等多种数据源,增强 RESTful 和 SOAP API 支持,简化外部数据服务集成。例如,可轻松从 RESTful API 获取销售数据并存储分析。此外,Dataphin V3.9 还提供数据同步工具和丰富的数据治理功能,确保数据质量和一致性,助力企业最大化数据价值。
115 1
|
2月前
|
开发者
告别繁琐代码,JSF标签库带你走进高效开发的新时代!
【8月更文挑战第31天】JSF(JavaServer Faces)标准标签库为页面开发提供了大量组件标签,如`<h:inputText>`、`<h:dataTable>`等,简化代码、提升效率并确保稳定性。本文通过示例展示如何使用这些标签实现常见功能,如创建登录表单和展示数据列表,帮助开发者更高效地进行Web应用开发。
32 0
|
2月前
|
前端开发 开发者 C#
深度解析 Uno Platform 中的 MVVM 模式:从理论到实践的全方位指南,助你轻松掌握通过 C# 与 XAML 构建高效可维护的跨平台应用秘籍
【8月更文挑战第31天】本文详细介绍如何在优秀的跨平台 UI 框架 Uno Platform 中实施 MVVM(Model-View-ViewModel)模式,通过一个简单的待办事项列表应用演示其实现过程。MVVM 模式有助于分离视图层与业务逻辑层,提升代码组织性、易测性和可维护性。Uno Platform 的数据绑定机制使视图与模型间的同步变得高效简便。文章通过构造 `TodoListViewModel` 类及其相关视图,展示了如何解耦视图与模型,实现动态数据绑定及命令处理,从而提高代码质量和开发效率。通过这一模式,开发者能更轻松地构建复杂的跨平台应用。
28 0
|
2月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
48 0

相关产品

  • 物联网平台
  • 推荐镜像

    更多
    下一篇
    无影云桌面