今日头条
IOTA 是一种加密货币,其特性最适合支持最具挑战性的物联网应用程序。本文展示了一个普通且廉价的 Raspberry Pi,尽管计算资源有限,但能够生成有效的 IOTA 交易。
在多元化和拥挤的加密货币世界中,IOTA 已经占据了绝对重要的地位,成为支持物联网应用的理想加密货币。与比特币和其他类似加密货币(如以太坊)使用的区块链架构相比,IOTA 基础设施提供的优势可总结如下:
高交易率:确认交易所需的时间非常短,并且随着网络的增长而减少。
可扩展性:随着存储在加密货币基础设施(所谓的缠结,一种特殊形式的有向无环图)中的交易的增长,以延迟和交易率表示的整体系统性能得到提高。
效率:在 IOTA 中,没有采矿,因此没有加密矿工。为了验证交易,不需要像比特币和区块链那样的高计算能力。即使是一个足够好的嵌入式系统也可以连接并发送交易到 IOTA 网络,为物联网领域的无数应用打开了大门。
安全性:IOTA 集成了复杂的安全机制,能够检测欺诈用户的存在,这些欺诈用户试图通过输入无效交易来破坏 Tangle 的完整性。重要的是,这些技术不会对网络性能产生任何影响,尤其是对交易率的影响。
小额支付:没有挖矿和创建小额交易(又名小额支付)的能力,使 IOTA 能够有效地管理 M2M 和物联网应用程序,其中低延迟和减少(甚至零)交易费用是强制性要求。
本文介绍的项目旨在演示嵌入式、廉价且广泛使用的硬件平台(例如 Raspberry Pi)如何连接到 IOTA 网络并生成可以成功存储在 Tangle 上的有效交易。当然,这个用例可以在物联网领域有多种应用。例如,想想自动售货机,其中的交易与用于提供咖啡或小吃的小额支付相关联。相同的概念证明可能适用于运输部门,其中 IOTA 交易可用于购买旅行车票。
项目概述
该项目使用 Raspberry Pi 3 B/B+ 板从 DHT22 传感器实时采集空气温度,并在 DevNet Tangle 上每分钟发布一次。DevNet 是一个专门为需要测试和调试基于 IOTA 的应用程序的开发人员创建的网络。为了验证每个事务是否已成功存储,应用程序订阅 DevNet 节点上可用的事件队列 (ZMQ),以便在 DevNet Tangle 上记录数据时通知它。应用程序工作流程如图 1所示。Raspberry Pi 和 IOTA DevNet Tangle 之间的通信将通过 IOTA Javascript 客户端库执行。DHT22 传感器将通过一个用 Python 开发的特定 Adafruit 库进行管理。
图 1:应用程序工作流程
项目实施所需的组件清单如下:
Raspberry Pi 3 B/B+ 板(或更高版本)。我们建议使用此版本,因为它包含访问 Web 所需的无线以太网连接 (Wi-Fi) 以及 DevNet URL。
容量至少为 8 GB 和高读/写数据速率的 microSD 存储卡
DHT22(或 DHT11)温度和相对湿度传感器。DHT11 与 DHT22 引脚对引脚兼容,但提供的测量精度较低。
适用于低功率应用的 10-kΏ 电阻器
一些杜邦跨接电缆
面包板
硬件设置
硬件设置包括创建 DHT22 传感器和 Raspberry Pi 板之间的连接,使用上面列出的组件并参考图 2。如图所示,DHT22传感器有四个引脚(其中一个不外接),需要连接树莓派板的电源引脚(3.3V和GND)和一个用作GPIO引脚一个数据传输引脚(在我们的特定情况下,我们选择了 GPIO 4)。
图 2:接线图
图 3:连接所需引脚的详细信息
为方便读者,图 3显示了 Raspberry Pi 3 GPIO 连接器的布局(它与属于同一系列的其他电路板引脚对引脚兼容)。连接所需的引脚在蓝色框中突出显示。表 1总结了相同的连接。
表 1:连接的详细信息
软件设置 软件设置
的第一步包括准备带有 Raspbian 操作系统映像的 microSD 存储卡。首先,我们需要下载并安装与我们PC上安装的操作系统兼容的Raspberry Pi Imager工具版本。1 图 4显示了下载 Windows 版本时提及的屏幕截图。同样的工具也可用于 Ubuntu 和 macOS。
图 4:Windows 版 Raspbian Pi Imager 下载
然后我们可以启动应用程序,选择 Raspbian 作为操作系统并选择图像目标(SD 卡)。最后,只需单击写入按钮(图 5)。
图 5:SD 卡编程
将 microSD 卡插入专用的 Raspberry Pi 插槽后,我们现在可以进行首次启动了。我们将按照树莓派官网提供的说明启用 SSH、 2 VNC、3和 Wi-Fi 连接,4 。这样,该板将能够连接到互联网并通过 SSH(或 VNC 查看器)远程访问,而无需键盘、鼠标和显示器。像往常一样,每次安装新的操作系统映像后,建议更新软件包并升级发行版,发出以下命令:
sudo apt 更新
sudo apt 全面升级
下一步是安装 Node.js 和 npm(节点包管理器)。当前可用的 Node.js 版本是 LTS 12.6.1,其中包括 npm 6.13.4(图 6)。
图 6:Node.js 的 LTS 版本还包括 npm。
安装所需的命令如下:
curl -sL https: //deb.nodesource.com/set.。. | 须藤重击——
sudo apt install nodejs
然后我们可以通过以下命令测试正确的安装(图 7):
节点-版本
图 7:如何检查 Node.js 和 npm 是否正确安装
从软件的角度来看,该应用程序基于提供给 IOTA.org 社区的贡献,作者对6进行了重大修改,将其适应 DHT22/11 传感器(便宜且易于获得)以代替原始的 Enviro Phat 传感器板。 让我们首先克隆树莓派内存卡上原始应用程序的 git 存储库:
git clone https://github.com/iota-commun…
然后通过 npm 安装依赖项:
cd raspberrypi-pubsub
npm 安装
我们现在可以安装传感器管理所需的 Adafruit 提供的库:
cd
git clone https://github.com/adafruit/Ad.。.
cd Adafruit_Python_DHT
须藤 python setup.py 安装
要完成软件设置,只需将本文附带的文件复制到 raspberrypi-pubsub 文件夹即可。为此,您可以使用 FileZilla,通过 SFTP 协议(SSH 文件传输协议)访问 Raspberry Pi。
运行和测试
要运行应用程序,请输入以下命令:
cd raspberrypi-pubsub
节点索引.js
应用程序将从 DHT22 传感器获取温度测量值,准备 IOTA 事务,最后检查它是否已成功传输到 DevNet Tangle。所有操作都记录在控制台上,如图 8所示(获取的温度为 23.3°C)。
图 8:应用程序的日志
在 Tangle 上发送的交易是不可变的:一旦创建,就永远无法更改。要检查我们的应用程序创建的事务是否在 DevNet Tangle 上,只需复制哈希字段的值(对应于 index.js 源文件中的 dataLocation 字符串)并将其粘贴到 DevNet 资源管理器的搜索栏中。7在这个页面,如图9所示,我们可以看到交易已经被正确接收并确认,消息payload指示正确的温度(23.3°C),交易的金额值为0 IOTA。
图 9:可以使用 DevNet 资源管理器检查事务。
结论
本文提出的项目演示了现成的嵌入式系统如何轻松连接到 IOTA 网络,发送稍后将由系统确认的有效交易。IOTA 确实是一种加密货币,除其他外,它具有与领先的物联网应用程序快速、安全和高效集成所需的所有功能。
全部0条评论
快来发表一下你的评论吧 !