資料介紹
描述
最初發表于DIYODE 雜志第 40 期,2020 年 11 月。
介紹
有時您可能需要一個項目來監控遠程位置的真實情況并將該數據無線傳輸給最終用戶。例如,它可能是一系列遠程泵站,它們是您的財產或運營的關鍵基礎設施。您可能需要監測空氣質量以了解坑內氣體的積聚,監測流速以衡量泵的性能,也許還需要監測備用電池的電壓。它也可以是您財產周圍大門的遠程氣象站或門禁系統。
對于您自己或員工來說,經常出差到每個站點來監控系統是不切實際的。因此,自動化是您最好的解決方案。
好消息是您可以通過多種方式做到這一點。例如,回到第 21 期,我們創建了一個基于 LoRa/Arduino 的物聯網設備,在我們的測試中,它能夠在近 7.5 公里的距離內將數據從發送器單元傳輸到接收器。當時我們對這個項目的影響力印象深刻,但事后看來,考慮到澳大利亞的國土面積為 769.2 萬平方公里,7 公里是微不足道的。除了距離問題,還有其他問題會使 LoRa 在這種情況下不受歡迎。
LoRa 是一個共享網絡,在 915MHz - 928MHz 之間的共享工業、科學和醫學 (ISM) UHF 無線電頻段上運行。這個波段不需要澳大利亞政府的許可就可以繼續傳輸,這意味著任何人都可以自由使用這個波段,因此,這個小波段可能會變得擁擠。
解釋這種擁堵的最好方法是將 ISM 頻段想象成酒館或酒吧內的空間,而您和您的朋友是這個酒吧的客戶,所有人都以與 IoT 節點幾乎相同的方式進行通信。隨著越來越多的人(客戶)進入場地,背景噪音越來越大,因為其他客戶試圖在場地有限的空間內進行交流。這使您別無選擇,只能重復相同的消息。
如果你不這樣做,你的交流就會被其他交流的積累淹沒。如果您的項目是一個簡單的氣象站,LoRa 可以作為一些丟失的通信在這里和那里的影響最小。但是,如果像我們假設的情況那樣,使用關鍵任務設備(例如我們的遠程泵站),失去通信可能是災難性的。
另一方面,基于蜂窩的物聯網使用網絡提供商嚴格控制的專用頻譜。只有經過批準的客戶才能在該空間進行交流,實質上是為您和您的朋友預留 VIP 休息室。
那么,如果您需要與距離比 LoRa 節點允許的距離更遠的設備進行通信,或者如果您有關鍵任務需求,您有什么選擇?好吧,感謝Arduino 和 Telstra 之間的合作,我們得到了答案。
Arduino MKR NB 1500 板的頂視圖和底視圖
Arduino 開發了 Arduino MKR NB 1500,這是一款基于物聯網的 32 位 Arm Cortex M0+ 微控制器開發板,帶有 u-blox SARA-R4 多頻段長期演進 4G (LTE-M) / NB-IoT 窄帶模塊。開發板擁有 256KB 的閃存和 32KB 的靜態 RAM,這應該給你相當多的編程空間。
Arduino MKR NB 1500 板令人印象深刻的規格
總共有 15 個數字 I/O 引腳 D0 – D14,其中 11 個具有 PWM 功能。在模擬端,我們有 7 個模擬 I/O 引腳,它們都可以用作數字引腳,2 個可以用作 PWM。結合起來,這使得 MKR 1500 成為功能豐富的開發板,具有足夠的內存和 I/O,甚至可以用于一些具有挑戰性的項目。
當然,在這種情況下,一切都與從項目傳輸和接收信號的能力有關,為此,我們擁有 Telstra 機器對機器 (M2M) LTE-M 網絡。
從覆蓋圖中可以看出,該網絡覆蓋了澳大利亞300萬平方公里的區域,為人口最稠密的地區提供服務。因此,只要您的設備在覆蓋地圖的范圍內,您就可以開始了。
Telstra 在澳大利亞的交互式窄帶覆蓋地圖
但是擁塞怎么辦?好吧,這也包括在內。與具有共享頻譜的 LoRa 不同,Telstra 網絡是一個專用頻譜網絡,同時只有有限的用戶在該頻譜上。同樣,基地塔使用稱為調度程序的軟件作為中介工作,確保設備不會試圖在彼此之上交談/通信。
這可以防止通信丟失,也意味著您可以使用較低的傳輸功率。這非常適用于可能需要電池供電的遠程設備,因為電池和相關支持硬件(如太陽能電池板)的尺寸減小了。
除了這些好處之外,您還可以在 Telstra LTE-M 網絡上獲得多方面的身份驗證安全性。直到最近,安全性在物聯網世界中通常都是事后才想到的。總的來說,這可能是簡單化思維的結果。
我們大多數人會認為我們支持物聯網的咖啡機相當安全。畢竟,從表面上看,如果有人要控制,最糟糕的事情就是毀了你早上的咖啡。但是,請務必記住,您的網絡安全取決于最薄弱的環節。
如果您的咖啡機連接到您的無線局域網 (WLAN),技術嫻熟的壞人可能會通過您的咖啡機訪問您網絡上的其他設備。以 2017 年遭到黑客攻擊的北美賭場為例。黑客通過物聯網魚缸監視器獲得了對系統的訪問權限。雖然這顯然是一個極端案例,但它證明了不良行為者是如何進行越來越多的創造性攻擊的。
因此,安全現在越來越成為物聯網的焦點,尤其是在物聯網設備可用于企業間諜活動的企業界。這使得未直接連接到您的 WiFi 網絡的基于單元的物聯網設備更具吸引力。在 LTE-M 網絡中,使用通用集成電路卡 (UICC) 驗證通信,我們通常將其稱為用戶識別模塊或 SIM 卡。
此卡是驗證網絡訪問權限的第一步。這種相互身份驗證不僅確保設備是它聲稱的身份,而且網絡/服務器也是它聲稱的身份。
為了將這兩種技術結合在一起,Arduino 開發了物聯網云。這使您不僅可以使用 1500 NB 和 Telstra 網絡非常輕松地創建物聯網應用程序,還可以在世界任何地方的任何計算機或移動設備上訪問和顯示數據。這使您不僅可以隨時檢查項目的傳感器數據,還可以對其做出響應。
例如,讓我們繼續假設的泵站。該泵站存在一個問題,即需要遠程控制泵的流量。有了這個系統,您不僅可以實時可靠地監控真實世界的傳感器數據,還可以根據需求實時做出反應,甚至可以根據不可預見的情況做出反應。
流量套餐
感謝 Arduino 和 Telstra 之間的合作,您可以從 Telstra 以 119 美元的價格購買帶有 SIM 卡的 Arduino MKR NB 1500 板,其中包括前 6 個月每月 10MB 的免費數據!我們進行了計算,對于許多物聯網項目來說,這是大量數據。
您需要的數據量將完全取決于您正在創建的項目類型。如果您需要實時到第二個傳感器數據,那么與只需要每 10 秒左右更新一次相比,您將需要更多數據。
例如,Arduino MKR NB 1500 上的整數是 32 位值。因此,如果您要在一個月內每秒發送一個 32 位整數,您將使用每月 10MB 計劃中的大部分。這是計算出來的,因為一個月有 2、592、000 秒,因此僅此值就需要 8.3 MB 的數據。
注意:這不考慮發送的實際數據包幀之上的任何開銷。
但是,如果您每 10 秒發送一次相同的整數,您將使用 1MB 多一點的數據,如果將其減少到 30 秒,數據使用將減少到 0.0108MB。好消息是這一切都可以在 Arduino IoT Cloud 軟件中輕松控制。
在 6 個月的免費數據之后,您將需要注冊 M2M 數據計劃。根據您將使用的數據,有許多計劃可供選擇。每月 100KB 數據的起價為 2.40 美元。您可以在這里查看不同的計劃:https ://diyode.io/040dataplans
動手原型:
使用三個氣體傳感器動手構建原型
所需零件:
1 x Arduino MKR NB 1500 帶 Telstra M2M LTE-M Sim 和帳戶
1 x MQ4 甲烷傳感器(核心電子:SEN0129 )
1 x MQ6 LPG 傳感器(核心電子:SEN0131 )
1 x MQ7 一氧化碳傳感器(核心電子:SEN0132 )
* 還需要面包板和原型制作硬件。
原型:
與我們的許多其他評論一樣,我們喜歡親身體驗我們評論的內容,所以讓我們使用 Telstra 窄帶網絡對 MKR NB 1500 板進行測試。
我們檢查這個硬件的主要目標是讓它在一個實際的,盡管是假設的,真實世界的應用程序中工作。因此,我們對硬件的第一個修補將是創建一個簡單的遠程空氣質量項目,該項目可用于密閉空間,以確保在派遣人員進入該空間之前該空間可以安全進入。
注意:我們使用的傳感器不是為在一個人的生命依賴于它們的情況下使用而設計的,它們也不夠準確。這只是一個示例情況,人們可以針對該示例情況實施該技術。我們不建議您將此項目用于現實世界的密閉空間監控。
我們首先看一下該技術將是一個簡單的單邊通信示例,其中單元只是發送傳感器數據。在不久的將來,我們打算創建一個更大的雙向通信項目,我們不僅可以接收傳感器數據,還可以遠程控制設備。
如果您想自己復制此項目,我們提供了零件清單、Fritzing 圖、代碼和構建說明。
Fritzing 使用 Arduino MKR NB 1500 板和三個氣體傳感器
傳感器
在這個項目中,我們使用了零件倉庫中已有的傳感器。可能無法從您當地的電子產品零售商處獲得相同的部件,但是,我們列出了DFRobot制造的類似傳感器。這些可在Core Electronics獲得,并使用與我們使用的傳感器相同的傳感器技術,但是,占地面積不同。
3 針傳感器引出線
4 針傳感器引出線
Arduino MKR NB 1500 上的 GPIO 引腳不支持 5V。因此,我們需要確保來自傳感器的輸入不超過 3.3V。在最大濃度下,傳感器能夠在模擬輸出上輸出 4V,這可能會損壞 Arduino MKR NB 1500。因此,我們將實施分壓器以將電壓降至 3.3V 最大值以下。對于我們的演示,我們將簡單地使用 R1 和 R2 均設置為 10KΩ 的分壓器,這將使輸出降低一半。這意味著 Arduino 是安全的,但會降低傳感器讀數的準確性。
如果我們將其開發為一個合適的項目,我們將實施一種更精確的方法來限制電壓,而不會影響傳感器的精度。但是,作為演示,它工作正常。
無論您使用哪種傳感器,都需要連接傳感器,使傳感器的模擬輸出引腳連接到 10KΩ - 10KΩ 分壓器,分壓器的連接點連接到 Arduino MKR NB 1500 的模擬引腳。同樣,每個傳感器需要 5V 和接地。這三個都必須與 Arduino MKR NB 1500 共享共同點。
對于我們的項目,我們通過 USB 端口為 Arduino MKR NB 1500 供電,并通過單獨的 5V 電源為傳感器供電。我們這樣做是因為三個傳感器加在一起可能需要高達 350mA 的電流,而我們不希望我們的 PC 在編程期間提供那么大的電流。完成 Arduino 編程后,您可以使用 Vin 引腳從同一 5V 電源直接為 Arduino 和傳感器供電。
Arduino 創建物聯網
創建電路后,我們將注意力轉向對設備進行編程。這完全是通過 Arduino Create IoT 云完成的,您可以在這里找到它:https ://create.arduino.cc/iot/
使用 Arduino Create IoT Cloud 構建項目非常簡單。本質上,這是一個 4 步過程:
創建設備
創建一個東西
創建草圖
創建儀表板
完成這些簡單的步驟后,您將在 Telstra M2M 蜂窩網絡上擁有一個正常運行的物聯網設備,只要設備位于覆蓋區域內,它就可以將傳感器數據發送到地球上的任何位置。考慮到讓程序運行所需的時間非常少,這是一個令人印象深刻的壯舉。
我們將更詳細地描述這些步驟。
創建設備
對于大多數制造商而言,創建/設置設備將很簡單。然而,在我們的案例中,我們遇到了與 Portenta H7 開發板審查相同的問題。該系列微控制器沒有專用的 USB 轉串口轉換器芯片。相反,他們使用微控制器本身來處理 USB 通信,這對絕大多數制造商來說非常好,但在我們的 Windows 臺式電腦上,我們必須手動強制微控制器進入引導加載程序模式。我們通過在一秒鐘內按兩次重置按鈕來完成此操作,然后選擇出現的新 com 端口。不過,我們必須多次重復此過程才能獲得成功的時機。最后,我們發現更換到沒有同樣問題的 Windows 筆記本電腦更容易。因此,
首先,將您的網絡瀏覽器指向 Arduino Create IoT 網站:https ://create.arduino.cc/iot/
如果尚未這樣做,您將需要創建一個帳戶或登錄。
從頂部菜單中選擇設備。
選擇添加設備按鈕。
選擇“設置 Arduino 設備”按鈕。
幾秒鐘后,系統可能會要求您安裝 Arduino Create Agent 插件。安裝這個,最終,您會看到一個屏幕,表明該軟件已找到兼容的 Arduino 設備已連接。
如果這是您的設備,請選擇配置按鈕。
這樣做之后,您將獲得一個隨機生成的名稱。我們建議您將此名稱更改為可以識別其用途的名稱。對于我們的示例,我們將其稱為 DIYODE_MKR_1500。
輸入適當的名稱后,選擇下一步按鈕。Create 軟件現在將創建您設備的一個實例。在此過程中,軟件似乎將草圖上傳到開發板并進行了一系列檢查和測試。
注意:在我們的測試中,這是我們發現一些問題的地方,似乎源于前面提到的 USB / Bootloader 問題。如果您在此處收到錯誤消息,請嘗試使用不同的計算機或將設備置于引導加載程序模式,然后再添加上面的名稱。
如果一切順利,您應該會看到這里顯示的窗口。
如果它不起作用,您可能會看到一條令人擔憂的消息,如此處所示。如果是這樣,請不要絕望。我們有同樣的錯誤,我們的硬件沒有任何問題。我們只是簡單地重復了這個過程,它運行良好。
創建一個東西
正確設置設備后,您現在可以設置整個項目,Arduino Create 稱之為“事物”。在我們的例子中,我們的“東西”將是一個氣體傳感器,因此,我們的東西將被命名為 DYODE_Gas_Sensor。
只需為您的東西命名,然后將其鏈接到在上一步中創建和命名的設備。
從這里,選擇添加屬性按??鈕,這將允許您添加屬性實例,例如您的傳感器。這樣做會自動生成代碼來處理來自該屬性的預期數據的傳輸。
這將帶您進入以下屏幕,您可以在其中為要添加的屬性從所有功能中進行選擇。
對我們來說,該屬性將是一個傳感器,因此我們將以傳感器命名它,以明確我們指的是什么傳感器。
變量名稱是我們需要在代碼中引用的名稱。此名稱應與所使用的傳感器相關,這將使編碼過程更容易。
我們的傳感器是模擬傳感器,因此,假設是 10 位 ADC,我們預計它會返回一個介于最小值 0 和最大值 1024 之間的正數。因此,我們可以將類型定義為 int,表示整數,并相應地設置最小值和最大值。
為了獲得許可,我們將它們設置為只讀,這是有道理的,因為我們只需要從它們接收模擬信號。
更新設置為定期,周期為 30 秒。正如我們之前所說,您發送的數據量將決定您將在計劃中使用的數據量。如果您不需要最多第二個數據,您可以通過增加周期來節省成本。
我們還選擇了 Show history visualization,它似乎將歷史數據存儲在 Arduino Cloud 中,允許我們在創建儀表板后稍后查看。
我們的財產屏幕看起來像這里顯示的那個。
重復該過程,直到添加完所有傳感器。
接下來,選擇右上角的編輯草圖按鈕開始編碼部分。
要向您的項目添加五個以上的屬性,您需要擁有一個帳戶和一個付費的 Arduino 創客計劃,這將提供此處列出的好處。Maker 計劃可直接從 Arduino 數字商店購買,每月費用為 6.99 美元。https://store.arduino.cc/digital/create
創建草圖
下一步對于之前使用過Arduino的人來說應該是比較熟悉的一步,也就是編碼。這里令人印象深刻的是自動化。Arduino 會根據您在添加屬性時的選擇來處理所有通信方面的事情。不需要“大腦”工作。
我們需要做的就是創建一個簡單的草圖,將所需的傳感器值放入一個變量中,與我們之前創建的一個或多個變量名稱相匹配。Arduino 軟件負責傳輸和計時,我們無需費力。
這使我們的編碼任務非常簡單。
對于我們來說,我們只需使用AnalogRead()函數來讀取傳感器所連接的模擬引腳,并將該值放入相應的變量中。我們不需要轉換任何東西,因為我們可以像這里顯示的那樣傳輸原始數據。
?
#include?"thingProperties.h" int?readSensor; void?setup()?{ ??//?Initialize?serial?and?wait?for?port?to?open: ??Serial.begin(9600); ??//?This?delay?gives?the?chance?to?wait?for?a?Serial?Monitor?without?blocking?if?none?is?found ??delay(1500);? ??Serial.println("Hello?world"); ??//?Defined?in?thingProperties.h ??initProperties(); ??//?Connect?to?Arduino?IoT?Cloud ??ArduinoCloud.begin(ArduinoIoTPreferredConnection); ??setDebugMessageLevel(2); ??ArduinoCloud.printDebugInfo(); } void?loop()?{ ??ArduinoCloud.update(); ??//?Your?code?here? ??sensor1?=?analogRead(1); ??carbonMonoxide?=?analogRead(2); ??methaneSensor?=?analogRead(3); ??Serial.println(sensor1); ??Serial.println(carbonMonoxide); ??Serial.println(methaneSensor); ??delay(1000); ?}
?
如果你想處理你的數據而不是簡單地發送原始數據,那也很簡單。您需要做的就是對傳感器值執行數學運算,完成后,將結果放入在添加屬性部分創建的相應變量名中。為了幫助您,Arduino 在生成代碼的注釋中包含了這些變量名稱。
一旦您對代碼感到滿意,就可以將其上傳到開發板。將電路板插入計算機上的 USB 并直接從該 Web 界面上傳。
在此之后,您的最后一步是創建一個儀表板,以便您可以查看設備中的數據。
創建儀表板
從 Arduino Create IoT 主頁選擇儀表板按鈕。
選擇添加,您將看到一個圖形元素列表。這些可用于提供 I/O 或以其他方式顯示來自或去往 IoT 設備的數據。
對于我們的項目,我們滾動到列表的最底部并選擇了圖表選項。這將使我們能夠以易于理解和即時衡量的方式輕松繪制和顯示原始傳感器數據。
當然,如果您想在這里進行試驗,您一定會發現許多有趣的方式來交互和顯示來自您設備的數據。快速瀏覽一下肯定給我們一些靈感,讓我們對這個令人興奮的硬件的未來用例有所了解。
選擇顯示數據的方式后(在我們的例子中使用圖形元素),您可以將元素放置在 GUI 儀表板工作平面上。然后您需要將元素鏈接到特定屬性。對我們來說,我們將這張圖與一氧化碳傳感器聯系起來。
重復相同的過程以添加其他元素并將它們鏈接到所需的屬性。
遠程訪問項目
Arduino 創建了一個名為 Arduino IoT Cloud Remote 的移動應用程序,它允許您訪問完全相同的儀表板,盡管經過修改以適合手機屏幕。
ANDRIOD:https ://play.google.com/store/apps/details?id=cc.arduino.cloudiot
蘋果:https ://apps.apple.com/us/app/id1514358431
我們的最終想法
基于我們動手測試的成功,我們對 Arduino 硬件和 Telstra 網絡提供的性能和易用性印象深刻。
因此,我們很高興看到社區在何處以及如何使用該系統實施項目。
我們可以看到大量的利基應用,從用于定位和禁用被盜車輛的汽車設備到偏遠農田、礦區等的水資源管理項目。
這種組合確實為愛好者們帶來了不可思議的力量,這在幾年前還顯得不可思議。
?
- 使用Arduino MKR1000通過WiFi進行HID攻擊
- 如何使用Arduino MKR GSM 1400的蜂窩定位
- Arduino MKR WAN 1300 LoRa現場網關客戶端
- 如何將Arduino MKR和Portenta安裝到機柜中
- Arduino MKR1000的大負載
- 基于Arduino Zero/MKR的示波器
- 使用Arduino MKR1000構建溫度傳感設備
- 在Raspberry Pi上使用Arduino MKR ENV Shield
- Arduino MKR1000通用Remonster
- 使用Arduino Mkr Wifi 1010和Thincloud構建連接燈的過程
- 帶有Arduino MKR1010和MKR RGB Shield的Otto Biped
- 使用MKR IoT載體的Arduino燈控制器
- Arduino MKR GSM 1400和DTMF開源
- 使用Grove Sensor的Arduino MKR1010和阿里云IoT
- 窄帶物聯網NB-IoT及性能測試綜述 23次下載
- 窄帶自組網基站搭建技巧 1096次閱讀
- WinCC與S7-1500 PROFINET通信技術 1570次閱讀
- 什么是窄帶通信?窄帶通信與Cat.1的關系 淺談AIoTel下的Cat.1窄帶通信技術 2195次閱讀
- 窄帶阻抗匹配電路設計 866次閱讀
- 如何從網頁控制arduino? 3836次閱讀
- NB-IoT技術的核心優勢 1.3w次閱讀
- 窄帶物聯網有哪些優勢 6556次閱讀
- dfrobot以太網絡擴展板-W5200簡介 1697次閱讀
- 一文知道NB-IoT和5G對物聯網的影響 5606次閱讀
- 簡評FPGA——Arduino MKR Vidor 4000 6807次閱讀
- 詳解NB-IoT容量規劃方法,更有效的進行容量規劃和網絡擴容 1.2w次閱讀
- NB-IOT為何比其他網絡系統更省電 9018次閱讀
- 大講解PATHRROT X2信道模擬器在NB-IoT測試中的應用 3703次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
- NB-IoT技術網絡部署方案及建議 1.6w次閱讀
下載排行
本周
- 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次下載 | 免費
評論
查看更多