zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

《用于物联网的Arduino项目开发:实用案例解析》—— 2.3 Arduino Uno的无线连接(WiFi)

WiFi案例项目开发 解析 联网 实用 用于
2023-09-11 14:17:32 时间

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

2.3 Arduino Uno的无线连接(WiFi)

这一节要给Arduino Uno安装一块无线盾板,然后写代码通过WiFi连接到互联网。
如果你使用的Arduino板子有内置的无线功能,比如Arduino Yún,那么就不需要额外的无线盾板。Arduino Yún的互联网连接设置在本章后面介绍。

2.3.1 硬件需求

图2-4给出了通过无线盾板把Arduino Uno连接到互联网上所需的全部硬件。

56f06339833fa4a2b2b3449cf11edce008d715bc
2.3.2 软件需求

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

2.3.3 电路

以下是我们要搭建通过WiFi连接互联网所需的电路。
1.首先确认Arduino没有连接任何电源、USB线和电池。
2.把WiFi盾板(也就是无线盾板)插在Arduino上。所有的引脚都要对齐。
插好无线盾板后应如图2-5所示。

aed43b7c174890ad521ae4a7ea14a2f96b38c5d1
2.3.4 代码(Arduino)

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

互联网连接(无线)

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

ff1c660b0386bc027ec174971af3787a6a119c88
互联网连接(无线)

代码的第二部分定义了连接互联网要用到的变量、常量和函数。
为了把Arduino连接到你的无线路由器,要像程序2-7那样来设置无线网络的SSID和密码(口令)。另外还要创建一个WiFiClient变量以供互联网连接之用。

548ea088540c9174d52a993205940438e62e44ce

程序2-8给出了无线连接设置的代码。connectToInternet()函数首先检查是否接上了WiFi盾板,然后它不断地尝试连接到无线网络。一旦Arduino成功地连接到了无线网络,这个循环就结束了,同时这个函数也就结束了。

4b12654df1abd7cdd359e42fbc829503e1380648810560863671d44a0f283992b4d0d4f2be5f5264

一旦Arduino成功连接无线网络,程序2-9中的printConnectionInformation()函数就会被调用,它会在串口监视器窗口中打印出SSID、路由器的MAC地址、信号强度(RSSI)、Arduino的IP地址和Arduino的MAC地址。

42374e5075bec453df68c8a8009758b260c1e81ee573508e772e91eca624659cea819555467ae8c9

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

278cae59fe5750e9809843baa969aa6d384d7e78

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

2.3.5 最终的作品

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

88b68bd296eb4e24ef713fe62617dbb8e150e3b8

带你读《基于区块链的物联网项目开发》之二:创建物联网解决方案 本书首先概述当前业务场景中的物联网概念,帮助读者在IBM Watson物联网平台上开发自己的设备,并使用Watson和Intel Edison创建物联网解决方案。之后介绍如何利用Hyperledger框架开发区块链网络,以及如何创建自己的集成区块链和物联网解决方案。接下来的章节讲述了如何在IBM Cloud平台利用物联网来实现端到端的区块链解决方案。最后,你将掌握如何将物联网和区块链技术融合,利用实践和驱动程序来开发实用集成解决方案。
带你读《基于区块链的物联网项目开发》之一:了解物联网并在IBM Watson物联网平台上开发 本书首先概述当前业务场景中的物联网概念,帮助读者在IBM Watson物联网平台上开发自己的设备,并使用Watson和Intel Edison创建物联网解决方案。之后介绍如何利用Hyperledger框架开发区块链网络,以及如何创建自己的集成区块链和物联网解决方案。接下来的章节讲述了如何在IBM Cloud平台利用物联网来实现端到端的区块链解决方案。最后,你将掌握如何将物联网和区块链技术融合,利用实践和驱动程序来开发实用集成解决方案。
《用于物联网的Arduino项目开发:实用案例解析》—— 导读 分析家预测,到了2020年,会有超过500亿的联网物(设备),在物联网领域的总营收会轻松超过1.5万亿美元。 数字看上去巨大,但是物联网究竟是什么呢?是不是就只是把东西连接到互联网上呢?为什么连接后的东西就有意义了呢?
《用于物联网的Arduino项目开发:实用案例解析》—— 3.4 小结 本章我们研究了HTTP和MQTT,在物联网应用中它们是两个非常重要、流行、轻量级的通信协议。这些协议是与具体设备无关的,所以可以用作任何类型的设备或服务器的通信。下一章会大量地使用这两个协议。
《用于物联网的Arduino项目开发:实用案例解析》—— 3.3 MQTT MQTT是一个轻量级的机器对机器的协议。它采用的是发布者-订阅者模型,就是说由一个发布者把数据发布给服务器(也叫作代理),然后订阅者就能收到这个数据。发布者和订阅者彼此互不相识,但他们都连接在代理上,代理异步地完成这个通信。
《用于物联网的Arduino项目开发:实用案例解析》—— 3.2 HTTP 网站使用超文本传输协议(Hyper Text Transfer Protocol,HTTP)。HTTP支持多种数据传输的方法,在这个作品中,我们会用其中两种较常用的方法:GET和POST。GET和POST方法要做的事情是一样的,所以代码也很相似,它们的不同在于请求的格式略有变化。
《用于物联网的Arduino项目开发:实用案例解析》—— 第3章 通信协议 3.1 学习目标 第2章已经分别用以太网或WiFi把Arduino连接到了互联网上。这一章将介绍发送和接收数据的协议。协议是一种用于网络通信的约定好了的结构化的格式。它定义了要发送和接收的信息,以及要采取的动作。