物联网 (IoT) 简述



在软件方面,您需要在您的计算机上安装 Arduino IDE。请访问 https://www.arduino.cc/en/software

在硬件方面,您需要以下组件:

  • ESP32 开发板 — 必要

ESP32
  • Micro USB 数据线 — 用于为 ESP32 供电和编程,必要

Micro USB
  • MPU6050 模块 — 可选(仅在 MPU6050 相关的章节中需要)

MPU6050
  • 光敏电阻 (LDR) 和一个阻值相当的普通电阻或任何其他模拟传感器 — 可选(仅在 ADC 章节中需要)

LDR
  • OLED 显示屏 — 可选(仅在 OLED 接口相关的章节中需要)

OLED
  • 杜邦线 — 可选(将 ESP32 与 MPU6050、LDR 和/或 OLED 显示屏连接时需要)

Jumper wires

关于 GitHub 使用的说明

如概述部分所述,每个章节都提供了一个 GitHub 链接,其中包含代码演练。其中许多代码取自 Arduino 中 ESP32 开发板附带的示例。因此,您无需额外努力即可在本地计算机上运行它们。安装 ESP32 开发板到 Arduino 后(我们为此专门设置了一个章节),您可以在 Arduino IDE 中找到它们(文件 -> 示例)。在使用示例代码的地方,都会注明示例代码的确切路径。

所有不在示例中的代码都可以在以下仓库中找到:https://github.com/yash-sanghvi/ESP32。现在,如果您想下载并在本地计算机上运行这些代码,您需要执行以下操作:

  • 单击显示“代码”的绿色按钮。

GitHub
  • 如果您不熟悉 Git,您可以简单地下载 zip 文件并将其解压缩到您选择的文件夹中。子文件夹包含所需的 Arduino (.ino) 文件,您可以随后在 Arduino IDE 中打开这些文件,然后编译并将其烧录到 ESP32 中。

  • 如果您熟悉 Git 并在您的计算机上安装了 Git,您可以复制 HTTPS 地址 https://github.com/yash-sanghvi/ESP32.git,导航到您希望克隆此仓库的文件夹,打开 Git 命令行并输入 **git clone https://github.com/yash-sanghvi/ESP32.git**

GitHub

如果您不熟悉 Git,您可能想知道为什么我们应该努力克隆仓库,而下载和解压 zip 文件会有相同的效果。答案是下载 zip 文件是一次性过程。如果将来此仓库发生某些更改,本地计算机上下载的版本无法直接反映这些更改。您需要再次下载 zip 文件。如果您克隆了仓库,您可以通过简单地调用 **git pull** 来获取所有将来的更改。使用克隆还可以执行更多操作。如果仓库中有多个分支,您可以通过 **git checkout branch-name** 切换分支。如果您下载 zip 文件,则需要为每个分支下载一个单独的 zip 文件。底线是克隆通常更方便。但是,对于这个特定用例,由于我们预计将来不会对这个仓库进行重大更改,并且您只需要主分支,如果您不熟悉 Git,您可以继续下载 zip 文件。

您是否注意到最近很多日常用品都变得“智能化”了?有智能电视、智能空调、智能冰箱等等。这些设备的“智能化”指的是什么?虽然答案对于每个设备略有不同,但智能化的一个共同要素是“互联性”。您的电视连接到您的 WiFi,因此您可以播放以前只能在手机上观看的节目。您的空调连接到互联网。您可以从另一个城市通过手机发送命令,家里的空调就会打开/关闭。您的手表连接到您的手机(通过 BLE),您可以使用手表本身接听电话。您通常使用的所有东西都是相互连接的,就像在一个网络中一样。这是一个物联网。

IoT

以上段落让您对物联网有了一些了解。根据维基百科的定义,物联网的定义如下:

物联网 (IoT) 描述的是物理对象的网络——“事物”——它们嵌入传感器、软件和其他技术,目的是通过互联网与其他设备和系统连接和交换数据。

上述定义准确地概括了这一点。嵌入传感器并包含软件的事物通过互联网与其他设备/系统共享数据。此定义还清楚地突出了任何物联网设备的三个主要功能模块中的两个:

  • 感知

  • 处理和存储

  • 传输

感知

物联网设备感知什么?它们可以感知任何值得感知的东西。如果您的物联网设备安装在垃圾场,它可能会检查垃圾的填充水平。如果您的物联网设备安装在工厂,它可能会感知电力消耗。如果您的物联网设备安装在机器上,它可能会感知机器的振动特征以确定机器是开着还是关着或者正在切割。如果您的设备安装在车辆上,它可能会感知车辆的运动和位置。

您的物联网设备将感知任何可以帮助您节省成本、增加利润或警告您即将发生的灾难的事情。您传统的火灾报警器非常接近于物联网设备。它感知烟雾,对其进行处理以确定烟雾浓度是否高于安全水平。它只是没有将此信息传输到任何地方。但是,如果您将建筑物中的所有火灾报警器连接到互联网,并在安全室中有一个仪表板,显示哪个房间发生了火灾,那么您的火灾报警器将非常像一个物联网设备。

处理和存储

物联网设备上会进行什么处理/存储?此答案很大程度上取决于您的用例。有些物联网设备不进行板载处理,而只是将原始传感器数据传输到服务器。有些物联网设备在板载进行实时视频处理以识别物体/人员。这取决于您的数据量、可用内存、所需的最终输出以及可用的传输带宽。如果您的设备每毫秒获取一次机器的振动特征,那么您在一秒钟内就会有 1000 次读数。在这种情况下,将如此大量的数据发送到服务器可能没有意义(特别是如果您使用的是低带宽网络,如 NB-IoT)。在这种情况下,您可能希望在设备上进行 FFT 处理,并只将振动频率和振幅发送到服务器。如果您的设备每 5 分钟感知一次大气中的温度和湿度,您可能只需要一个公式来将原始读数转换为温度和湿度并将其发送出去。或者,您可以只发送原始读数并让服务器进行转换。在这种情况下,您可以发送每次读数。

几乎所有物联网设备都有一些板载内存,用于在网络错误的情况下存储丢失的数据包。有些设备有配置文件,也需要板载存储。有些设备将其内存中的最后 X 小时数据保留下来以供将来访问。在板载执行大量处理的物联网设备肯定需要存储空间来收集足够的数据,然后才能开始处理。例如,如果您的设备每 10,000 次读数对振动数据执行 FFT,则它需要存储传入的读数,直到数量达到 10,000。

传输

物联网设备如何传输数据?有很多解决方案可用。其中一些是:

选择合适的传输方案本身就是一个重大决定,很大程度上取决于您可用的电源、带宽需求、通信距离、成本和可接受的延迟。您的智能手表可以使用 BLE 与您的手机通信,您的智能电视可以使用 WiFi,而安装在车辆上的设备可以使用蜂窝网络。用于农业应用(如土壤湿度测量)的物联网设备,尤其是在偏远地区,可以使用 LoRa 与另一个设备通信,而另一个设备又可能具有 WiFi 或以太网连接。最终目标几乎总是将数据放在服务器上,和/或在仪表板/应用程序上将其显示给用户。

总结

如果您刚接触物联网 (IoT),本章将为您提供一个很好的概述,让您了解其中的关键所在。如果您对此感到兴奋,请继续阅读下一章,我们将讨论 ESP32,这是一种系统级芯片 (SoC) 微控制器,本教程将围绕它展开。我们将讨论 ESP32 为什么在物联网领域如此受欢迎,以及它在传感、处理、存储和传输领域提供的功能。敬请期待。

广告