IOTA 是一種加密貨幣,其特性最適合支持最具挑戰(zhàn)性的物聯(lián)網(wǎng)應(yīng)用程序。本文展示了一個普通且廉價的 Raspberry Pi,盡管計(jì)算資源有限,但能夠生成有效的 IOTA 交易。
在多元化和擁擠的加密貨幣世界中,IOTA 已經(jīng)占據(jù)了絕對重要的地位,成為支持物聯(lián)網(wǎng)應(yīng)用的理想加密貨幣。與比特幣和其他類似加密貨幣(如以太坊)使用的區(qū)塊鏈架構(gòu)相比,IOTA 基礎(chǔ)設(shè)施提供的優(yōu)勢可總結(jié)如下:
高交易率:確認(rèn)交易所需的時間非常短,并且隨著網(wǎng)絡(luò)的增長而減少。
可擴(kuò)展性:隨著存儲在加密貨幣基礎(chǔ)設(shè)施(所謂的纏結(jié),一種特殊形式的有向無環(huán)圖)中的交易的增長,以延遲和交易率表示的整體系統(tǒng)性能得到提高。
效率:在 IOTA 中,沒有采礦,因此沒有加密礦工。為了驗(yàn)證交易,不需要像比特幣和區(qū)塊鏈那樣的高計(jì)算能力。即使是一個足夠好的嵌入式系統(tǒng)也可以連接并發(fā)送交易到 IOTA 網(wǎng)絡(luò),為物聯(lián)網(wǎng)領(lǐng)域的無數(shù)應(yīng)用打開了大門。
安全性:IOTA 集成了復(fù)雜的安全機(jī)制,能夠檢測欺詐用戶的存在,這些欺詐用戶試圖通過輸入無效交易來破壞 Tangle 的完整性。重要的是,這些技術(shù)不會對網(wǎng)絡(luò)性能產(chǎn)生任何影響,尤其是對交易率的影響。
小額支付:沒有挖礦和創(chuàng)建小額交易(又名小額支付)的能力,使 IOTA 能夠有效地管理 M2M 和物聯(lián)網(wǎng)應(yīng)用程序,其中低延遲和減少(甚至零)交易費(fèi)用是強(qiáng)制性要求。
本文介紹的項(xiàng)目旨在演示嵌入式、廉價且廣泛使用的硬件平臺(例如 Raspberry Pi)如何連接到 IOTA 網(wǎng)絡(luò)并生成可以成功存儲在 Tangle 上的有效交易。當(dāng)然,這個用例可以在物聯(lián)網(wǎng)領(lǐng)域有多種應(yīng)用。例如,想想自動售貨機(jī),其中的交易與用于提供咖啡或小吃的小額支付相關(guān)聯(lián)。相同的概念證明可能適用于運(yùn)輸部門,其中 IOTA 交易可用于購買旅行車票。
項(xiàng)目概述
該項(xiàng)目使用 Raspberry Pi 3 B/B+ 板從 DHT22 傳感器實(shí)時采集空氣溫度,并在 DevNet Tangle 上每分鐘發(fā)布一次。DevNet 是一個專門為需要測試和調(diào)試基于 IOTA 的應(yīng)用程序的開發(fā)人員創(chuàng)建的網(wǎng)絡(luò)。為了驗(yàn)證每個事務(wù)是否已成功存儲,應(yīng)用程序訂閱 DevNet 節(jié)點(diǎn)上可用的事件隊(duì)列 (ZMQ),以便在 DevNet Tangle 上記錄數(shù)據(jù)時通知它。應(yīng)用程序工作流程如圖 1所示。Raspberry Pi 和 IOTA DevNet Tangle 之間的通信將通過 IOTA Javascript 客戶端庫執(zhí)行。DHT22 傳感器將通過一個用 Python 開發(fā)的特定 Adafruit 庫進(jìn)行管理。
圖 1:應(yīng)用程序工作流程
項(xiàng)目實(shí)施所需的組件清單如下:
Raspberry Pi 3 B/B+ 板(或更高版本)。我們建議使用此版本,因?yàn)樗L問 Web 所需的無線以太網(wǎng)連接 (Wi-Fi) 以及 DevNet URL。
容量至少為 8 GB 和高讀/寫數(shù)據(jù)速率的 microSD 存儲卡
DHT22(或 DHT11)溫度和相對濕度傳感器。DHT11 與 DHT22 引腳對引腳兼容,但提供的測量精度較低。
適用于低功率應(yīng)用的 10-k? 電阻器
一些杜邦跨接電纜
面包板
硬件設(shè)置
硬件設(shè)置包括創(chuàng)建 DHT22 傳感器和 Raspberry Pi 板之間的連接,使用上面列出的組件并參考圖 2。如圖所示,DHT22傳感器有四個引腳(其中一個不外接),需要連接樹莓派板的電源引腳(3.3V和GND)和一個用作GPIO引腳一個數(shù)據(jù)傳輸引腳(在我們的特定情況下,我們選擇了 GPIO 4)。
圖 2:接線圖
圖 3:連接所需引腳的詳細(xì)信息
為方便讀者,圖 3顯示了 Raspberry Pi 3 GPIO 連接器的布局(它與屬于同一系列的其他電路板引腳對引腳兼容)。連接所需的引腳在藍(lán)色框中突出顯示。表 1總結(jié)了相同的連接。
表 1:連接的詳細(xì)信息
軟件設(shè)置 軟件設(shè)置
的第一步包括準(zhǔn)備帶有 Raspbian 操作系統(tǒng)映像的 microSD 存儲卡。首先,我們需要下載并安裝與我們PC上安裝的操作系統(tǒng)兼容的Raspberry Pi Imager工具版本。1 圖 4顯示了下載 Windows 版本時提及的屏幕截圖。同樣的工具也可用于 Ubuntu 和 macOS。
圖 4:Windows 版 Raspbian Pi Imager 下載
然后我們可以啟動應(yīng)用程序,選擇 Raspbian 作為操作系統(tǒng)并選擇圖像目標(biāo)(SD 卡)。最后,只需單擊寫入按鈕(圖 5)。
圖 5:SD 卡編程
將 microSD 卡插入專用的 Raspberry Pi 插槽后,我們現(xiàn)在可以進(jìn)行首次啟動了。我們將按照樹莓派官網(wǎng)提供的說明啟用 SSH、 2 VNC、3和 Wi-Fi 連接,4 。這樣,該板將能夠連接到互聯(lián)網(wǎng)并通過 SSH(或 VNC 查看器)遠(yuǎn)程訪問,而無需鍵盤、鼠標(biāo)和顯示器。像往常一樣,每次安裝新的操作系統(tǒng)映像后,建議更新軟件包并升級發(fā)行版,發(fā)出以下命令:
sudo apt 更新
sudo apt 全面升級
下一步是安裝 Node.js 和 npm(節(jié)點(diǎn)包管理器)。當(dāng)前可用的 Node.js 版本是 LTS 12.6.1,其中包括 npm 6.13.4(圖 6)。
圖 6:Node.js 的 LTS 版本還包括 npm。
安裝所需的命令如下:
curl -sL https: //deb.nodesource.com/set.。. | 須藤重?fù)簟?/p>
sudo apt install nodejs
然后我們可以通過以下命令測試正確的安裝(圖 7):
節(jié)點(diǎn)-版本
圖 7:如何檢查 Node.js 和 npm 是否正確安裝
從軟件的角度來看,該應(yīng)用程序基于提供給 IOTA.org 社區(qū)的貢獻(xiàn),作者對6進(jìn)行了重大修改,將其適應(yīng) DHT22/11 傳感器(便宜且易于獲得)以代替原始的 Enviro Phat 傳感器板。 讓我們首先克隆樹莓派內(nèi)存卡上原始應(yīng)用程序的 git 存儲庫:
git clone https://github.com/iota-commun…
然后通過 npm 安裝依賴項(xiàng):
cd raspberrypi-pubsub
npm 安裝
我們現(xiàn)在可以安裝傳感器管理所需的 Adafruit 提供的庫:
cd
git clone https://github.com/adafruit/Ad.。.
cd Adafruit_Python_DHT
須藤 python setup.py 安裝
要完成軟件設(shè)置,只需將本文附帶的文件復(fù)制到 raspberrypi-pubsub 文件夾即可。為此,您可以使用 FileZilla,通過 SFTP 協(xié)議(SSH 文件傳輸協(xié)議)訪問 Raspberry Pi。
運(yùn)行和測試
要運(yùn)行應(yīng)用程序,請輸入以下命令:
cd raspberrypi-pubsub
節(jié)點(diǎn)索引.js
應(yīng)用程序?qū)?DHT22 傳感器獲取溫度測量值,準(zhǔn)備 IOTA 事務(wù),最后檢查它是否已成功傳輸?shù)?DevNet Tangle。所有操作都記錄在控制臺上,如圖 8所示(獲取的溫度為 23.3°C)。
圖 8:應(yīng)用程序的日志
在 Tangle 上發(fā)送的交易是不可變的:一旦創(chuàng)建,就永遠(yuǎn)無法更改。要檢查我們的應(yīng)用程序創(chuàng)建的事務(wù)是否在 DevNet Tangle 上,只需復(fù)制哈希字段的值(對應(yīng)于 index.js 源文件中的 dataLocation 字符串)并將其粘貼到 DevNet 資源管理器的搜索欄中。7在這個頁面,如圖9所示,我們可以看到交易已經(jīng)被正確接收并確認(rèn),消息payload指示正確的溫度(23.3°C),交易的金額值為0 IOTA。
圖 9:可以使用 DevNet 資源管理器檢查事務(wù)。
結(jié)論
本文提出的項(xiàng)目演示了現(xiàn)成的嵌入式系統(tǒng)如何輕松連接到 IOTA 網(wǎng)絡(luò),發(fā)送稍后將由系統(tǒng)確認(rèn)的有效交易。IOTA 確實(shí)是一種加密貨幣,除其他外,它具有與領(lǐng)先的物聯(lián)網(wǎng)應(yīng)用程序快速、安全和高效集成所需的所有功能?!?/p>
評論