如何輕松搭建一個IoT通知設(shè)備
在世界中,各種電子設(shè)備通過無線電通信。比如基于802.11 b/g/n的WiFi協(xié)議和BLE(低功耗藍(lán)牙)允許這些電子設(shè)備使用其通信方案共享數(shù)據(jù)。像ESP8266和ESP32這樣的無線芯片使得廠商和工程師能夠輕松進(jìn)行物聯(lián)網(wǎng)產(chǎn)品開發(fā)和試驗。在本項目系列中,你將使用無線平臺監(jiān)控和控制各種電子電路以及配件,借此你將加深對 IoT 概念的理解。
本文引用地址:http://www.ex-cimer.com/article/201807/384429.htm作為該系列的啟動項目,首先你將構(gòu)建一個 IoT 通知設(shè)備,當(dāng)被外部設(shè)備觸發(fā)時,它會發(fā)送郵件到你的桌面電腦、筆記本電腦或者移動設(shè)備(手機(jī)或者平板)。為了構(gòu)建這套系統(tǒng),你需要一個Arduino Uno開發(fā)板、 littleBits cloudBit、物聯(lián)網(wǎng)移動設(shè)備應(yīng)用程序以及一些常用的電子元器件。
零件清單
觸覺按鈕開關(guān)
Arduino UNO 開發(fā)板
LED 燈
330歐、1/4瓦電阻
1千歐、1/4瓦電阻,
littleBits cloudBit
littleBits proto-modules,2個
littleBits USB電源(參見 littleBits cloudBit 鏈接)
littleBits 安裝板(參見 littleBits proto-modules 鏈接)
無焊面包板
littleBits電源適配器(參見 littleBits cloudBit 鏈接)
跳線帽
IFTTT (IF This Then That) Applet
圖1物聯(lián)網(wǎng)通知設(shè)備系統(tǒng)框圖 littleBits cloudBit 模塊介紹
在正式構(gòu)建項目之前,你需要先了解一下 littleBits 這個很有意思的 WiFi 模塊。cloudBit模塊使得各種電子設(shè)備和器件能夠輕松連接到家庭WiFi網(wǎng)絡(luò)。這個模塊非常小巧,依靠它 PCB 板上的 IC 技術(shù)可輕松實現(xiàn)聯(lián)網(wǎng),從而監(jiān)控和控制其他的 littleBits 模塊。
此外,硬件開發(fā)套件(HDK)也為 littleBits 以外的模塊提供電路接口。cloudBit模塊的系統(tǒng)架構(gòu)由9個子電路組成。
圖2 littleBits cloudBit:用于IoT原型開發(fā)的WiFi模塊
littleBits 系統(tǒng)架構(gòu)包含如下內(nèi)容:
電源
Setup 按鍵
WiFi無線網(wǎng)卡(USB HOST)
模擬輸入
模擬輸出
micro SD 卡(用于安裝Linux軟件)
RGB LED
512M DDR
i.MX23 處理器
圖3 9個子電路構(gòu)成了 cloudBit 系統(tǒng)架構(gòu)
cloudBit 模塊的 WiFi 無線收發(fā)器封裝在一個 USB 適配器中,生產(chǎn)廠商是 Dynamode,其部件號為 WL-700N-XS, 它是符合802.11n / g標(biāo)準(zhǔn)的 WiFi 設(shè)備。其工作頻率范圍從2.4到2.4835GHz, 該范圍使得這款模塊能夠運用于ISM(工業(yè)、科技和醫(yī)療)領(lǐng)域。此外,這款由 Dynamode 打造的 USB 接口的WiFi適配器僅需5V DC電源即可供電,非常方便,同時它的功耗極低,只有0.6W。
圖4 cloudBit WiFi 芯片組高度封裝在一個 USB 適配器中
基于 Linux 的 WiFi 軟件存儲在 microSD 卡中,其接口在 cloudBit PCB 板的右下角。RGB LED 燈用來指示 cloudBit 處于運行還是設(shè)置狀態(tài)。cloudBit 的 Setup 按鍵是一個非常小巧的瞬時開關(guān),cloudBit 通過它開啟對家庭網(wǎng)絡(luò)的檢測和連接。cloudBit 模塊中最核心的部件是 NXP 的 i.MX23 處理器。
除了處理外部 IO 信號以外,i.MX23 處理器的內(nèi)部電路提供無線(WiFi)控制功能。cloudBit 模塊通過外擴(kuò)一個512M DDR SDRAM 芯片,來幫助 i.MX23處理器更好地處理大量的 WiFi 數(shù)據(jù)。DDR SDRAM 的 WiFi 數(shù)據(jù)傳輸速率需要 16條地址線、15條數(shù)據(jù)線和13條控制線的支持。 cloudBit模塊通過模擬 IO 口和其他 littleBit 模塊以及開發(fā)者自研的電路建立連接,從而實現(xiàn)信號傳輸和調(diào)制。
圖5 cloudBit WiFi 模塊的組件
如你所見,cloudBit 模塊尺寸小巧,提供的無線功能卻不失強大。通過上文你應(yīng)當(dāng)已經(jīng)大致了解了 cloudBit 的架構(gòu),那么接下來就可以開始動手構(gòu)建 IoT 硬件了。
構(gòu)建 IoT 通知設(shè)備
我們將使用 Arduino 搭配簡單的外圍電路來實現(xiàn)一個激活 cloudBit 的觸發(fā)器。對觸覺開關(guān)進(jìn)行編程,可以使其觸發(fā) cloudBit 發(fā)送郵件、短信或者執(zhí)行其他更加豐富的動作。當(dāng) cloudBit 接收到觸發(fā)信號時,它將通過你的家庭網(wǎng)絡(luò)執(zhí)行發(fā)送郵件的動作。
因此,該項目的第一步就是搭建觸發(fā)電路(很簡單,你可以使用面包板,如下圖所示)。
圖6 Arduino觸發(fā)電路連線圖。需要注意加入 切換開關(guān)
這是 Arduino 觸發(fā)電路的原理圖:
圖7 Arduino 觸發(fā)電路原理圖
Arduino 觸發(fā)電路搭建完畢,就可以添加 cloudBit 模塊了。使用 littleBits 組件提供連接 Arduino 觸發(fā)電路和 cloudBit 模塊的電氣接口。proto-module 是主要使用的組件,它有三個引腳:接地(gnd)、信號(sig)和Vcc。
圖8 proto-module 的信號引腳圖
下圖展示了構(gòu)建 IoT 通知設(shè)備所需的所有連線情況。
圖9 IoT 通知設(shè)備的完整電氣連線圖
基于這個原型可以搭建出多種連接方式的系統(tǒng)。我通過給這個原型附加一個智能邏輯探針,搭建了下圖所示的系統(tǒng),用于測試整套 IoT 通知設(shè)備的運轉(zhuǎn),其中 cloudBit 由littleBits 電源適配器供電。
圖10 作者搭建的 IoT 通知設(shè)備原型。安裝板用于支持 littleBits 模塊,智能邏輯探針用于原型測試。
至此,你已經(jīng)完成了 IoT 通知設(shè)備的電路搭建,下一步需要通過添加 Arduino 代碼以實現(xiàn)觸發(fā)功能。
添加 Arduino 代碼
在本小節(jié)中,你需要將代碼上傳到 Arudino 以使 IoT 通知設(shè)備能夠運轉(zhuǎn)。代碼主要修改了 Arduino IDE 中的“Button” 部分,添加了一個數(shù)字電平輸出用于觸發(fā) cloudBit。按下按鈕將打開 LED 并將 D6 引腳設(shè)置為高電平。
修改的代碼片段如下:
// constants won't change. They're used here to // set pin numbers: const int buttonPin = 5; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin const int trig_out = 6; // output pin to trigger cloudBit // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); // initialize the cloudBit trigger pin as an output: pinMode(trig_out, OUTPUT); } void loop() { // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on and trigger outpin: digitalWrite(ledPin, HIGH); digitalWrite(trig_out, HIGH); } else { // turn LED off and trigger outpin: digitalWrite(ledPin, LOW); digitalWrite(trig_out,LOW); } }
把代碼上傳到 Arduino 后,你需要把 IFTTT applet 添加到你的 IoT 通知設(shè)備原型中來。
添加 IFTTT Applet
借助Facebook、Gmail、Instagram和Twitter網(wǎng)絡(luò)服務(wù),搭配必要的物理設(shè)備(如微控制器),可以預(yù)先為 cloudBit 構(gòu)建 IFTTT applets 的觸發(fā)器。IFTTT applets 是免費的,它使用條件語句作為目標(biāo)服務(wù)的操作基礎(chǔ)。比如在項目中,當(dāng) Arduino 觸發(fā) cloudBit 時,littleBit applet 得到觸發(fā)的條件語句將執(zhí)行發(fā)送郵件的操作。
圖11 Arduino 觸發(fā) cloudBit 發(fā)送郵件
只有正確地設(shè)置 cloudBit ,它才能被你的家庭無線網(wǎng)絡(luò)檢測到。關(guān)于 cloudBit 的設(shè)置方法, littleBits website 提供了詳細(xì)說明。此外,你需要在 IFTTT applet service website 創(chuàng)建一個免費的賬戶,以便使用 littleBits 觸發(fā)你的 cloud 模塊發(fā)送電子郵件。在注冊帳戶時,務(wù)必提供你要用于該項目的郵件地址。注冊之后,你可以使用設(shè)置功能修改 applet。在本例中,我修改了 applet 中 cloudBit 無線傳輸事件,我把我的別名 MrD 添加在了郵件正文中。
圖12 通過 cloudBit applet 提供的設(shè)置方法,很方便就把郵件正文中設(shè)備名稱改為”MrD”
applet 配置正確之后,就可以測試你的 IoT 通知設(shè)備了。
最終測試
按下面包板上的按鈕將促使你的 IoT 通知設(shè)備向你發(fā)送電子郵件,郵件內(nèi)容將由主題和你在 applet 中設(shè)置的正文組成。
圖13 IoT 通知設(shè)備原型測試
以下是 cloudBit 發(fā)送到我郵箱的消息內(nèi)容:
圖14 cloudBit 發(fā)送的郵件
至此,你擁有了一個帶有通知功能的 IoT 設(shè)備?;叵胍幌拢@個項目通過使用一個Arduino、littleBits cloudBit 、其他的littleBits 模塊以及一些現(xiàn)成的電子元器件,實現(xiàn)了一個 IoT 應(yīng)用。你還可以嘗試設(shè)置 applet 來顯示新的郵件信息,同時把新的觀察結(jié)果記錄下來。在下一個項目中,你將構(gòu)建一個能夠控制各種電路和外設(shè)的 WiFi 設(shè)備。同時介紹 littleBits 云平臺的使用,它可以幫助你監(jiān)控和控制你的 IoT 原型設(shè)備。
評論