libp2p-lora-transport使libp2p節點可以通過洛拉進行通信。您可以將其用作“協議”,其中帶有lora橋的LIBP2P節點可以允許授權的同行從/到Lora橋的讀取/寫入數據。例如,這可以用來允許LIBP2P節點向Lorawan Gateway報告傳感器數據。另一種可能性是允許多個不同的LIBP2P節點通過LIBP2P節點與附加的Lora橋傳輸數據。
您將需要有效的C安裝,GO 1.13+以及安裝了WiringPI庫。
已經測試了以下硬件:
arduinobridgeincludesrc/dragino使用Arduino Mega + Dragino Lora GPS盾牌,將一個稱為“ Lora Bridge”的草圖部署到Arduino。該草圖是對兩件事的原因:
具有直接連接到Arduino串行接口的LIBP2P主機註冊連接到Arduino的橋接處理程序。該橋接處理程序創建了兩個通道,一個用於將數據寫入串行接口,一個用於從串行接口中讀取數據。然後啟動Goroutine,將數據從寫入通道中取下,然後將其輸送到串行接口中。如果沒有數據可供編寫,我們將查看是否可以從串行接口中讀取任何數據。如果可以的話,我們會讀取數據,然後通過讀取頻道發送。如果沒有人在等待從頻道接收,那麼數據就會簡單丟棄。
該橋將確保將串行界面傳來的所有消息正確格式化(包裹在Carrats ^ ),如果不是消息,它們也會被丟棄。
有兩種操作模式:
本實現絕對沒有提供安全性。數據按原樣處理,如果這些數據在clearText中,則數據將通過clearText中的lora收音機傳輸,以供任何聽取Snoop On的人。這意味著,如果您希望數據私有通過這座橋樑,則必須對其進行加密。如果使用此橋作為運輸(非協議模式),則建議使用私有的Libp2p群,因為它提供了相當好的安全層,而無需手動對橋樑的數據進行加密。如果在協議模式下使用橋樑,則意味著您需要手動加密消息。
在協議模式下,任何授權的同行都可以通過橋樑讀取/寫數據,因此請確保您只允許特定的同行訪問。
Arduino上的串行接口用於允許我們的LIBP2P節點訪問LORA模塊。每當數據從Arduino發送到LIBP2P節點,都包裹在^中。例如,我們應該希望向另一個洛拉節點發送一條消息,這是hello ,我們應該發送^hello^ 。控制洛拉橋是通過單個字母“控製字符”完成的。當前的控製字符是:
1切換調試模式所有非Firmata代碼均根據AGPLV3許可