如何輕松搭建一個IoT通知設備
在世界中,各種電子設備通過無線電通信。比如基于802.11 b/g/n的WiFi協議和BLE(低功耗藍牙)允許這些電子設備使用其通信方案共享數據。像ESP8266和ESP32這樣的無線芯片使得廠商和工程師能夠輕松進行物聯網產品開發和試驗。在本項目系列中,你將使用無線平臺監控和控制各種電子電路以及配件,借此你將加深對 IoT 概念的理解。
本文引用地址:http://www.j9360.com/article/201807/384429.htm作為該系列的啟動項目,首先你將構建一個 IoT 通知設備,當被外部設備觸發時,它會發送郵件到你的桌面電腦、筆記本電腦或者移動設備(手機或者平板)。為了構建這套系統,你需要一個Arduino Uno開發板、 littleBits cloudBit、物聯網移動設備應用程序以及一些常用的電子元器件。
零件清單
觸覺按鈕開關
Arduino UNO 開發板
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物聯網通知設備系統框圖 littleBits cloudBit 模塊介紹
在正式構建項目之前,你需要先了解一下 littleBits 這個很有意思的 WiFi 模塊。cloudBit模塊使得各種電子設備和器件能夠輕松連接到家庭WiFi網絡。這個模塊非常小巧,依靠它 PCB 板上的 IC 技術可輕松實現聯網,從而監控和控制其他的 littleBits 模塊。
此外,硬件開發套件(HDK)也為 littleBits 以外的模塊提供電路接口。cloudBit模塊的系統架構由9個子電路組成。

圖2 littleBits cloudBit:用于IoT原型開發的WiFi模塊
littleBits 系統架構包含如下內容:
電源
Setup 按鍵
WiFi無線網卡(USB HOST)
模擬輸入
模擬輸出
micro SD 卡(用于安裝Linux軟件)
RGB LED
512M DDR
i.MX23 處理器

圖3 9個子電路構成了 cloudBit 系統架構
cloudBit 模塊的 WiFi 無線收發器封裝在一個 USB 適配器中,生產廠商是 Dynamode,其部件號為 WL-700N-XS, 它是符合802.11n / g標準的 WiFi 設備。其工作頻率范圍從2.4到2.4835GHz, 該范圍使得這款模塊能夠運用于ISM(工業、科技和醫療)領域。此外,這款由 Dynamode 打造的 USB 接口的WiFi適配器僅需5V DC電源即可供電,非常方便,同時它的功耗極低,只有0.6W。

圖4 cloudBit WiFi 芯片組高度封裝在一個 USB 適配器中
基于 Linux 的 WiFi 軟件存儲在 microSD 卡中,其接口在 cloudBit PCB 板的右下角。RGB LED 燈用來指示 cloudBit 處于運行還是設置狀態。cloudBit 的 Setup 按鍵是一個非常小巧的瞬時開關,cloudBit 通過它開啟對家庭網絡的檢測和連接。cloudBit 模塊中最核心的部件是 NXP 的 i.MX23 處理器。
除了處理外部 IO 信號以外,i.MX23 處理器的內部電路提供無線(WiFi)控制功能。cloudBit 模塊通過外擴一個512M DDR SDRAM 芯片,來幫助 i.MX23處理器更好地處理大量的 WiFi 數據。DDR SDRAM 的 WiFi 數據傳輸速率需要 16條地址線、15條數據線和13條控制線的支持。 cloudBit模塊通過模擬 IO 口和其他 littleBit 模塊以及開發者自研的電路建立連接,從而實現信號傳輸和調制。

圖5 cloudBit WiFi 模塊的組件
如你所見,cloudBit 模塊尺寸小巧,提供的無線功能卻不失強大。通過上文你應當已經大致了解了 cloudBit 的架構,那么接下來就可以開始動手構建 IoT 硬件了。
構建 IoT 通知設備
我們將使用 Arduino 搭配簡單的外圍電路來實現一個激活 cloudBit 的觸發器。對觸覺開關進行編程,可以使其觸發 cloudBit 發送郵件、短信或者執行其他更加豐富的動作。當 cloudBit 接收到觸發信號時,它將通過你的家庭網絡執行發送郵件的動作。
因此,該項目的第一步就是搭建觸發電路(很簡單,你可以使用面包板,如下圖所示)。

圖6 Arduino觸發電路連線圖。需要注意加入 切換開關
這是 Arduino 觸發電路的原理圖:

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

圖8 proto-module 的信號引腳圖
下圖展示了構建 IoT 通知設備所需的所有連線情況。

圖9 IoT 通知設備的完整電氣連線圖
基于這個原型可以搭建出多種連接方式的系統。我通過給這個原型附加一個智能邏輯探針,搭建了下圖所示的系統,用于測試整套 IoT 通知設備的運轉,其中 cloudBit 由littleBits 電源適配器供電。

圖10 作者搭建的 IoT 通知設備原型。安裝板用于支持 littleBits 模塊,智能邏輯探針用于原型測試。
至此,你已經完成了 IoT 通知設備的電路搭建,下一步需要通過添加 Arduino 代碼以實現觸發功能。
添加 Arduino 代碼
在本小節中,你需要將代碼上傳到 Arudino 以使 IoT 通知設備能夠運轉。代碼主要修改了 Arduino IDE 中的“Button” 部分,添加了一個數字電平輸出用于觸發 cloudBit。按下按鈕將打開 LED 并將 D6 引腳設置為高電平。
修改的代碼片段如下:
// 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 通知設備原型中來。
添加 IFTTT Applet
借助Facebook、Gmail、Instagram和Twitter網絡服務,搭配必要的物理設備(如微控制器),可以預先為 cloudBit 構建 IFTTT applets 的觸發器。IFTTT applets 是免費的,它使用條件語句作為目標服務的操作基礎。比如在項目中,當 Arduino 觸發 cloudBit 時,littleBit applet 得到觸發的條件語句將執行發送郵件的操作。

圖11 Arduino 觸發 cloudBit 發送郵件
只有正確地設置 cloudBit ,它才能被你的家庭無線網絡檢測到。關于 cloudBit 的設置方法, littleBits website 提供了詳細說明。此外,你需要在 IFTTT applet service website 創建一個免費的賬戶,以便使用 littleBits 觸發你的 cloud 模塊發送電子郵件。在注冊帳戶時,務必提供你要用于該項目的郵件地址。注冊之后,你可以使用設置功能修改 applet。在本例中,我修改了 applet 中 cloudBit 無線傳輸事件,我把我的別名 MrD 添加在了郵件正文中。

圖12 通過 cloudBit applet 提供的設置方法,很方便就把郵件正文中設備名稱改為”MrD”
applet 配置正確之后,就可以測試你的 IoT 通知設備了。
最終測試
按下面包板上的按鈕將促使你的 IoT 通知設備向你發送電子郵件,郵件內容將由主題和你在 applet 中設置的正文組成。

圖13 IoT 通知設備原型測試
以下是 cloudBit 發送到我郵箱的消息內容:

圖14 cloudBit 發送的郵件
至此,你擁有了一個帶有通知功能的 IoT 設備。回想一下,這個項目通過使用一個Arduino、littleBits cloudBit 、其他的littleBits 模塊以及一些現成的電子元器件,實現了一個 IoT 應用。你還可以嘗試設置 applet 來顯示新的郵件信息,同時把新的觀察結果記錄下來。在下一個項目中,你將構建一個能夠控制各種電路和外設的 WiFi 設備。同時介紹 littleBits 云平臺的使用,它可以幫助你監控和控制你的 IoT 原型設備。
評論