新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 如何輕松搭建一個(gè)IoT通知設(shè)備

如何輕松搭建一個(gè)IoT通知設(shè)備

作者: 時(shí)間:2018-07-30 來源:網(wǎng)絡(luò) 收藏

在世界中,各種電子設(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ā)和試驗(yàn)。在本項(xiàng)目系列中,你將使用無線平臺(tái)監(jiān)控和各種電子電路以及配件,借此你將加深對 IoT 概念的理解。

本文引用地址:http://www.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)用程序以及一些常用的電子元器件。

零件清單

觸覺按鈕開關(guān)

Arduino UNO 開發(fā)板

LED 燈

330歐、1/4瓦電阻

1千歐、1/4瓦電阻,

littleBits cloudBit

littleBits proto-modules,2個(gè)

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)建項(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è)子電路組成。

圖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è)子電路構(gòu)成了 cloudBit 系統(tǒng)架構(gòu)

cloudBit 模塊的 WiFi 無線收發(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。

圖4 cloudBit WiFi 芯片組高度封裝在一個(gè) USB 適配器中

基于 Linux 的 WiFi 軟件存儲(chǔ)在 microSD 卡中,其接口在 cloudBit PCB 板的右下角。RGB LED 燈用來指示 cloudBit 處于運(yùn)行還是設(shè)置狀態(tài)。cloudBit 的 Setup 按鍵是一個(gè)非常小巧的瞬時(shí)開關(guān),cloudBit 通過它開啟對家庭網(wǎng)絡(luò)的檢測和連接。cloudBit 模塊中最核心的部件是 NXP 的 i.MX23 處理器。

除了處理外部 IO 信號(hào)以外,i.MX23 處理器的內(nèi)部電路提供無線(WiFi)功能。cloudBit 模塊通過外擴(kuò)一個(gè)512M DDR SDRAM 芯片,來幫助 i.MX23處理器更好地處理大量的 WiFi 數(shù)據(jù)。DDR SDRAM 的 WiFi 數(shù)據(jù)傳輸速率需要 16條地址線、15條數(shù)據(jù)線和13條控制線的支持。 cloudBit模塊通過模擬 IO 口和其他 littleBit 模塊以及開發(fā)者自研的電路建立連接,從而實(shí)現(xiàn)信號(hào)傳輸和調(diào)制。

圖5 cloudBit WiFi 模塊的組件

如你所見,cloudBit 模塊尺寸小巧,提供的無線功能卻不失強(qiáng)大。通過上文你應(yīng)當(dāng)已經(jīng)大致了解了 cloudBit 的架構(gòu),那么接下來就可以開始動(dòng)手構(gòu)建 IoT 硬件了。

構(gòu)建 IoT 通知設(shè)備

我們將使用 Arduino 搭配簡單的外圍電路來實(shí)現(xiàn)一個(gè)激活 cloudBit 的觸發(fā)器。對觸覺開關(guān)進(jìn)行編程,可以使其觸發(fā) cloudBit 發(fā)送郵件、短信或者執(zhí)行其他更加豐富的動(dòng)作。當(dāng) cloudBit 接收到觸發(fā)信號(hào)時(shí),它將通過你的家庭網(wǎng)絡(luò)執(zhí)行發(fā)送郵件的動(dòng)作。

因此,該項(xiàng)目的第一步就是搭建觸發(fā)電路(很簡單,你可以使用面包板,如下圖所示)。

圖6 Arduino觸發(fā)電路連線圖。需要注意加入 切換開關(guān)

這是 Arduino 觸發(fā)電路的原理圖:

圖7 Arduino 觸發(fā)電路原理圖

Arduino 觸發(fā)電路搭建完畢,就可以添加 cloudBit 模塊了。使用 littleBits 組件提供連接 Arduino 觸發(fā)電路和 cloudBit 模塊的電氣接口。proto-module 是主要使用的組件,它有三個(gè)引腳:接地(gnd)、信號(hào)(sig)和Vcc。

圖8 proto-module 的信號(hào)引腳圖

下圖展示了構(gòu)建 IoT 通知設(shè)備所需的所有連線情況。

圖9 IoT 通知設(shè)備的完整電氣連線圖

基于這個(gè)原型可以搭建出多種連接方式的系統(tǒng)。我通過給這個(gè)原型附加一個(gè)智能邏輯探針,搭建了下圖所示的系統(tǒng),用于整套 IoT 通知設(shè)備的運(yùn)轉(zhuǎn),其中 cloudBit 由littleBits 電源適配器供電。

圖10 作者搭建的 IoT 通知設(shè)備原型。安裝板用于支持 littleBits 模塊,智能邏輯探針用于原型

至此,你已經(jīng)完成了 IoT 通知設(shè)備的電路搭建,下一步需要通過添加 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è)備原型中來。

添加 IFTTT Applet

借助Facebook、Gmail、Instagram和Twitter網(wǎng)絡(luò)服務(wù),搭配必要的物理設(shè)備(如),可以預(yù)先為 cloudBit 構(gòu)建 IFTTT applets 的觸發(fā)器。IFTTT applets 是免費(fèi)的,它使用條件語句作為目標(biāo)服務(wù)的操作基礎(chǔ)。比如在項(xiàng)目中,當(dāng) Arduino 觸發(fā) cloudBit 時(shí),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)建一個(gè)免費(fèi)的賬戶,以便使用 littleBits 觸發(fā)你的 cloud 模塊發(fā)送電子郵件。在注冊帳戶時(shí),務(wù)必提供你要用于該項(xiàng)目的郵件地址。注冊之后,你可以使用設(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ā)送的郵件

至此,你擁有了一個(gè)帶有通知功能的 IoT 設(shè)備。回想一下,這個(gè)項(xiàng)目通過使用一個(gè)Arduino、littleBits cloudBit 、其他的littleBits 模塊以及一些現(xiàn)成的電子元器件,實(shí)現(xiàn)了一個(gè) IoT 應(yīng)用。你還可以嘗試設(shè)置 applet 來顯示新的郵件信息,同時(shí)把新的觀察結(jié)果記錄下來。在下一個(gè)項(xiàng)目中,你將構(gòu)建一個(gè)能夠控制各種電路和外設(shè)的 WiFi 設(shè)備。同時(shí)介紹 littleBits 云平臺(tái)的使用,它可以幫助你監(jiān)控和控制你的 IoT 原型設(shè)備。



關(guān)鍵詞: 控制 測試 微控制器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉