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