資料介紹
描述
概述
該項目是羅馬第一大學物聯網課程作業的第二部分。目的是建立一個基于亞馬遜網絡服務(AWS)的虛擬環境站。建議檢查第一部分,因為在本指南中,假設您已經了解該論點的基礎知識。
該系統由兩個 RIOT-OS 原生板組成,它們生成隨機環境數據,并通過 MQTT-SN ( Mosquitto ) 和一個 MQTT 透明橋將它們發送到 AWS。在有用的鏈接部分,您可以找到指向我的 GitHub 存儲庫的鏈接,其中包含我使用的所有代碼和 YouTube 演示文稿。
MQTT-SN - 蚊子 RSMB
首先,您需要克隆此存儲庫并設置 RSMB(真正的小型消息代理):
-
> git clone https://github.com/eclipse/mosquitto.rsmb
然后,基本上你必須逐步按照自述文件中提供的說明進行操作,所以:
-
> cd mosquitto.rsmb/rsmb/src
> make
之后,您必須在同一文件夾中創建一個名為config.conf的新文件,其中包含:
-
# Uncomment this to show you packets being sent and received
#trace_output protocol
# Normal MQTT listener
listener 1883 INADDR_ANY
ipv6 true
# MQTT-SN listener
listener 1883 INADDR_ANY mqtts
ipv6 true
即使這是 README 中提供的示例配置,建議將 1885 端口用于 MQTT-SN 偵聽器,將 1886 端口用于 MQTT 偵聽器作為標準端口。通過這些簡單的步驟,您已經配置了 MQTT-SN 代理,因此您可以使用以下命令運行它:
-
> ./broker_mqttsn config.conf
現在代理已準備好連接
防暴操作系統
RIOT 是一個用于聯網、內存受限系統的小型操作系統,專注于低功耗無線物聯網設備。它是開源軟件,根據 GNU Lesser General Public License ( Wikipedia ) 發布。首先,顯然你必須下載和設置 RIOT-OS 和所有需要的組件:因為這是一個相當長但簡單的過程,只需按照RIOT-OS 教程獲得下載的分步指南并獲得一些有用的教程來對 RIOT-OS 充滿信心。之后,您可以克隆此存儲庫以獲取該項目的所有基本工具。請注意,請務必注意本指南中提到的每個文件的路徑!您將在名為的文件夾中工作在我的情況下位于home/RIOT/examples/emcute_mqttsn 的 emcute_mqttsn ;如果由于某種原因您有不同的路徑,則必須修改 Makefile 中的以下行(它顯然位于emcute_mqttsn文件夾中):
RIOTBASE ?= $(CURDIR)/../..
此時,您需要創建一個網橋、一些 Tap 接口(本例中為兩個),并且您需要為通信配置全局地址:
-
在主文件夾中,輸入終端:您可以檢查一切是否順利,輸入:如果您在點擊接口時遇到問題,請考慮:您可以刪除并重新設置接口!(最古老和最強大的解決方案......)
> sudo ./RIOT/dist/tools/tapsetup/tapsetup -c 2
> ifconfig | grep tap
> sudo ./RIOT/dist/tools/tapsetup/tapsetup -d
-
為tapbr0分配一個站點全局前綴:
> sudo ip a a fec0:affe::1/64 dev tapbr0
另一方面,我們必須在 RIOT 板中設置通信,因此在文件夾RIOT/examples/emcute_mqttsn 中:
-
類型:
> sudo make all term PORT=tap0
-
然后,在 RIOT 板上:
> ifconfig 5 add fec0:affe::99
這是針對第一個 RIOT 板的,但由于在這個項目中預計會有兩個虛擬站,當您運行第二個板時,您必須選擇另一個抽頭,例如tap1,并且您必須更改最后一部分地址,例如使用 100 而不是 99。
在繼續之前,先看一下代碼。對于這個項目,它大部分都使用了 RIOT-OS 存儲庫中可用的示例文件,并在需要時進行了一些調整。該文件本質上提供了具有基本功能的本機板,您可以簡單地添加您需要的任何其他命令。在這種情況下,對命令 cmd_pub 進行了輕微調整,并添加了命令basic_pub和cmd_start,以便以更舒適的方式運行進程。
函數random_values提供了以非常簡單的方式生成的隨機環境值;顯然,如果您有一個不同的名稱,您需要更改您將發布自己的數據的主題。
-
現在你可以開始在 RIOT board 中輸入:
> start fec0:affe::1 1885 station1
請注意,1885是為 MQTT-SN 偵聽器選擇的端口,station1是一個虛擬環境站的 ID。當您運行第二個站點時,您還將使用端口 1885,但當然是 ID 站點。從這一刻起,系統開始生成隨機值并將它們發送給代理,每 10 秒一次。
到 AWS 的 MQTT 透明橋
最后,由于不支持 MQTT-SN 和 AWS 之間的直接通信,因此您必須設置 MQTT 透明橋。您可以通過多種方式執行此操作:在此項目中使用 Python 腳本來充當透明橋梁并將數據存儲在 DynamoDB 中,但請注意,您也可以簡單地使用.conf文件來執行此操作,即使在本指南我們將不討論該方法。因為當您運行網橋時,您使用 Mosquitto 提供的一些默認實用程序,位于mosquitto.rsmb/rsmb/src/MQTTSClient/Python,建議不要使用 Python3,否則您需要對這些實用程序進行一些調整。大部分代碼與項目的前一部分相同;所以基本上你有一個功能來建立與 AWS 的連接和一些功能來發布和存儲數據。如果您需要更多信息,請再次查看第一部分!
新的是 Callback 類:它允許通過函數messageArrived發布和存儲每條消息(有效負載)到達。函數messageArrived處理 Mosquitto 的實用程序,因此建議不要更改參數的名稱。在這里,您也許可以找到一些其他有用的信息。您現在可以運行橋接器,注意將其放置在正確的文件夾中:橋接器必須保留在文件夾mosquitto.rsmb/rsmb/src/MQTTSClient/Python 中;還要檢查之前運行的 MQTT-SN 代理是否仍在工作。
-
跑:
> python bridge.py
現在透明網橋將開始接收來自 RIOT 的隨機負載并將它們存儲在數據庫中。請注意,環境數據將顯示在第一部分介紹的同一個Web 應用程序(localhost)上!
系統如何運作
該代碼在我的 Github 存儲庫中可用,顯然,如果您想使用它,您必須更改一些參數,例如端點和證書的路徑。如果一切都已正確完成,您可以按以下方式運行系統(每一步都需要一個單獨的終端):
-
(可選)運行 localhost 頁面鍵入:該文件位于django_web文件夾中
>
python3 manage.py runserver
-
運行 MQTT-SN 代理:
> ./broker_mqttsn config.conf
- 設置分接橋和一些接口(RIOT-OS 部分)并分配站點全局前綴
- 為每個站點制作、配置和運行一些具有不同 ID 的 RIOT 板(RIOT-OS 部分)
-
運行透明網橋:
> python bridge.py
如果一切正常,您應該會看到如下內容:
有用的鏈接
- 基于AWS的物聯網虛擬環境站
- 使用AWS的IoT環境站第2部分
- 使用LoRaWAN和TTN在IoT實驗室測試RIOT-OS設備
- 使用RIOT/Google IoT/MQTT的環境站
- 連接到AWS IoT的RIOT-OS應用程序
- 使用RIOT OS控制外部LED 0次下載
- 用于PIC IoT和AVR IoT的AWS應用程序
- 基于RIOT OS的LoRa信號的被動數據包嗅探應用程序
- RIOT-OS實時多線程IoT操作系統
- RIOT-OS入門 Windows系統下在STM32上運行RIOT OS
- 虛擬現實技術在機器人臂靈巧手遙操作中的應用 22次下載
- 調整AVR-IoT WG的用途以連接到AWS 10次下載
- 機器視覺智能車虛擬環境的搭建_鄒斌 1次下載
- 機器人操作虛擬環境的研究 38次下載
- 協同虛擬環境中的并發控制機制
- Matter IDT工具使用步驟(一) 461次閱讀
- 虛擬現實技術應用在哪些方面 1822次閱讀
- 如何在RT-Thread OS環境下使用ncnn進行AI推理 1107次閱讀
- 創建Root權限虛擬環境 1051次閱讀
- 使用vRealize Automation REST API置備虛擬機以進行軟件開發 1019次閱讀
- Visual Studio Code Python使用新的創建環境命令簡化項目設置 1217次閱讀
- 虛擬機:Ubuntu安裝C Sharp開發環境 3070次閱讀
- 虛擬機:Ubuntu安裝R語言環境 2776次閱讀
- python如何配置虛擬環境? 893次閱讀
- python虛擬環境遷移4大關鍵步驟 3312次閱讀
- 3D磁傳感器,可以增強虛擬環境中的真實感 1872次閱讀
- 基于ML-Agents v0.4,在Unity 2018搭建的虛擬城市環境中訓練了一輛自動駕駛車輛 8650次閱讀
- 什么是虛擬化?什么是Docker ?Docker容器與虛擬機區別 2.3w次閱讀
- Xilinx 軟件定義開發環境 SDAccel上線 AWS 5483次閱讀
- 工業機器人虛擬樣機系統的研究 1385次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多