使用 Arduino 的智能灯 Fedora

物联网 对我们来说是一个新概念。 但如果我们仔细想想,互联网访问并不是什么新鲜事。 我们在日常生活中会遇到很多“事情”。 它们帮助我们每天的生活更轻松。 为了 example,拿一个普通的灯泡。 它消耗能量并产生光,这有助于我们每天看到。

技术和改进已将资源消耗降至最低。 他们优化了输出,现在我们进入了一个移动和电信行业蓬勃发展的时代。 与过去相比,互联网的速度是难以想象的。 从那时起,我们的想法是通过将事物连接到互联网、分析 PB 级的历史和实时数据以及自动化操作来让事物变得“更智能”。 这导致了一种更智能的生活方式。 物联网影响了该行业的几乎所有主要领域:农业、医疗保健、家庭自动化等等。

现在很容易在没有以太网屏蔽的情况下控制 Arduino 上的灯,但只需通过 HTTP。 这个想法是让您通过点击设备上的应用程序来控制家中的单个灯泡或一系列灯泡。

自制电灯开关的成分

  1. Arduino UNO 带 USB 端口
  2. Arduino IDE
  3. 互联网连接
  4. “root”访问开发机器
  5. 节点.js
  6. 强尼五号 和narf

Arduino UNO 是我们将用作开关的微控制器。 在本指南中,Arduino 板将控制一盏灯。 为简单起见,我们将使用 Arduino 的 Pin13 作为光源。 这是 Arduino 本身的 LED 灯。 不使用以太网或 WiFi 屏蔽。

设置 Arduino

要开始使用,您需要 Arduino 集成开发环境或 IDE。 如果您正在使用 Fedora,您可以在终端中使用单个命令安装官方 Arduino IDE。

$ sudo dnf install arduino

安装后,确保插入 Arduino 并检查系统是否检测到它。 将 USB 插入系统后,进入终端并查找系统注册 Arduino 的位置。 稍后您将需要此信息来执行您将使用 Arduino IDE 编写的代码。

下面的命令应该告诉你它的位置。

$ dmesg | tail

在同一行中寻找总线设备和 Arduino。 在我的屏幕截图中,我需要的行是

总线 002 设备:ID Arduino SA Uno R3

. 找到板后,我们可以继续设置通信协议。

配置 强尼五号

强尼五号 是个 JavaScript 机器人与物联网 平台。 被释放 博科普 2012 年,Johnny-Five 由充满热情的软件开发人员和硬件工程师组成的社区维护。 超过 75 位开发人员为构建强大、可扩展和可组合的生态系统做出了贡献。 在此设置中,我们还将使用 菲尔玛塔. Firmata 库实现了 固件协议 用于与主机上的软件进行通信。 这允许您编写自定义固件,而无需为您使用的编程环境创建自己的协议和对象。

要安装和设置 Johnny-Five,请打开我们在上一步中安装的 Arduino IDE(如果您使用的是 GNOME,它应该在 Applications 菜单中)。 在 IDE 中,转到文件 > 示例 > Firmata > StandardFirmata。 我们将把 StandardFirmata 上传到 Arduino 板上,供我们在创建开关时使用。 StandardFirmata 在高于 v2.5.0 的所有版本的 Firmata 中都可用。

一旦你在 Arduino IDE 中找到它,点击“上传”按钮将固件推送到 Arduino 板。 如果上传成功,板子已经准备好供我们使用了,你现在可以 close Arduino IDE。

设置项目工作区

您将需要创建并设置一个项目工作区来创建 Arduino 应用程序。 对于我们的项目,我们将使用 Node.js 作为创建开关的语言。 有几种方法可以创建这种应用程序,但为了帮助您入门,我创建了一个 HTML 页面和 JavaScript 文件,您可以将其用于自己的设置。

您可以在以下位置找到我的演示代码 GitHub. 对于这个项目,您需要一份 索引.htmlLED_Server.js 文件。 您可以将这两个文件复制并粘贴到您之前创建的项目工作区中。

设置 node.js

现在我们有了运行项目所需的工作区和文件,我们需要设置一个 Node.js 服务器来运行应用程序。 要开始运行“灯开关服务器”,您需要安装 Node.js 和 NPM,这是 Node.js 应用程序的包管理器。

Enter 以下命令安装必要的依赖项。

$ sudo dnf install npm nodejs
$ npm install narf johnny-five

安装完所有依赖项后,您现在就可以启动电灯开关服务器了。 确保您位于项目工作区文件夹中,输入以下命令以启动 Node.js 服务器。

$ node LED_Server.js

执行命令后,您的终端窗口应如下所示。
从 Arduino 进行电灯开关:运行 Node.js 服务器

如果您收到有关未找到串行端口的错误,您可能需要另一个依赖项(取决于您的环境)。 要解决此问题,请运行以下命令进行安装

串行端口

通过

npm

.

$ npm install serialport

从 Arduino 制作电灯开关:安装和使用串口

该应用程序现在将运行。 要测试它是否正常工作,请打开您喜欢的浏览器并将其指向 https://127.0.0.1:8079/index.html。 这是您系统上本地页面的地址,您可以在其中查看我们创建的虚拟电源开关。

控制 Arduino 灯

现在,您可以通过此网页控制 Arduino 板上 Pin13 的电源。 在这个概念验证中,您将只能控制 Arduino 上的 LED 灯。 然而,在更现实的 example,也许你去度假了,不记得你是否在收拾行李时关掉了床边的灯。 该解决方案可让您随时随地从世界任何地方关闭灯泡。

以下是从上面看网页的实际效果 example.

从 Arduino 制作电灯开关:控制电灯的网页

特征图像灯泡基于 这个图标来自名词项目 – CC-BY