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