歡迎觀看本專案的示範影片:
想像一下,在一個環境中,您可以煮咖啡,打開窗簾,打開浴室燈,每天早上播放您最喜歡的音樂,而這些並不需要行動您的手指。
您很幸運,這已不再是夢想。這很可能是您親力親為的下一個項目!在本教材中,我們將使用Particle Photon創建一隻簡單的智慧物聯網鬧鐘。我們將從簡單的功能開始,例如在您自己的智慧手機中設定鬧鐘警報聲。我們還會在下文中講述更多功能。
Particle是一隻小型微控制器,可輕鬆將裝置連接到互聯網並通過網路和行動電話應用程式交換資料。Particle(以及Arduino)是目前市場上最受歡迎的微控制器之一,擁有如下優勢(來源:Particle公司):
從去年開始就實現了Microsoft Azure與Particle的配套使用。現在可以直接從Particle發送資料到Azure並顯示結果。
強烈建議您在設定前認真閱讀此處的Particle Setup Guide(Particle設定指南)。閱讀指南可以讓您更好地瞭解裝置的工作方式以及互聯網連接的相關知識,這點至關重要。
本裝置設有幾種模式,可以通過裝置上RGB LED的顏色進行識別。例如,裝置嘗試連接到互聯網時會以綠色閃爍。如果WiFi模組斷路,則以白光閃爍。因此,只需看LED的顏色,就可以瞭解Particle所處的模式。
您可以通過雲(Tinker應用程式)或IDE線上/離線等多種方式對Photon進行程式設計。
為簡化程式設計過程,本例中選用了選擇了離線IDE模式(Particle Dev)。Particle的程式設計方式和Arduino的IDE非常類似。您可以輕鬆創建資料夾並添加程式碼所需的所有檔,例如該資料夾中使用的程式館。
本專案分為以下幾個步驟。請按照適合自己節奏的步驟操作。在本專案中首先將Photon連接到一個名為Blynk的應用程式,然後觀察從Blynk發來的訊號導致Photon的內建LED(數位引腳7)閃爍的情況,並進行簡單的測試。
下一步,使螢幕與Particle一起正常工作。本項目中使用Particle Photon對LCD的接線方法進行說明,並繪製了LCD閃爍模式的草圖,還提供了該步驟所需的程式館。稍後還需使用此LCD來顯示日期和時間。
在最後的草圖中說明了判斷蜂鳴器是否正常工作的方法。該蜂鳴器用作嗡嗡聲警報,所以必須確保其聲音足夠響亮。
本例中從Blynk的一個簡單功能開始,以控制Particle Photon研發板上內建的LED。Photon在D7引腳上配有一個內建的LED,與Arduino UNO不同,後者在D13上配有LED。
按照以下步驟創建您的第一個應用程式,用來控制Particle Photon:
*如果您不熟悉Blynk並且您不確定如何使用該應用程式,可參見我以前發佈的A Smart Mailbox短文(在Blynk Mobile App章節中)。
首先創建一個新項目。
輸入專案標題,然後選擇“Particle Photon”作為硬體模型。點擊“Email”(電子郵件),獲取正確的身份驗證口令,該口令稍後用於最終代碼中,該代碼以快閃記憶體方式編入Particle內。按下按鈕後,相關口令會直接發送到您的電子郵箱。
現在,您已經創建了適用於您的應用的基本平台。使用“添加”按鈕和其他小功能可添加您自己的功能。
按右上角的“+”圖示,在Blynk提供的可用按鈕和微件之間進行選擇。
為了簡單起見,選擇了一個簡單按鈕來測試應用程式的閃爍功能。
將其拖動到工作區後,點擊按鈕。點擊後會打開一個視窗,選擇按鈕設定,可對引腳編號、按鈕名稱及按鈕狀態(開關方式/按鈕方式)進行設定。
本項目中選擇了D7作為photon的輸入,並設定了按鈕方式。
按鈕已設定,您可以看到該按鈕顯示為D7。
草圖:
運行應用程式前,必須在您的Particle中刷新該代碼。
如何刷新代碼?操作很簡單!下載代碼並在Particle IDE中打開。
通過左上角的“驗證”按鈕對代碼進行編譯,然後以快閃記憶體方式存入裝置內。您能夠在代碼中看到任何錯誤(若存在錯誤)。
通過快閃記憶體按鈕可將代碼編入裝置內。
液晶顯示屏為16列*2行點陣型,這足以滿足要求。
按照示例的草圖和接線圖進行操作。
接線:
草圖:
如上所述,完成LCD螢幕的連接和接線後,將此圖上傳到Particle Photon。
“Hello Sparky”將顯示出來,其計時器從您打開LCD的那一刻開始計算。
如果您得到不同的結果,請返回並再次檢查接線。
準備一隻警報時能發出嗡嗡聲蜂鳴器。這款小型蜂鳴器只需2根引腳即可實現所有功能:一根為接地腳,另一根為Photon的輸入腳。選擇數位引腳6用來輸入訊號。
草圖:
該草圖的功能是從蜂鳴器中提取警報音。
然後回到Blynk並添加3個新增按鈕。操作步驟與前述步驟完全相同。按鈕對應於類比引腳A0、1、2和3。
警報功能採用開關按鈕方式實現:按下該按鈕可將LCD開關到警報模式,該模式開啟後您可以看到警報時間。
Reset(重置)功能採用按鈕方式實現:按下該按鈕可將預設警報重置為預設值“0:0”。
小時和分鐘採用兩個按鈕:這兩個按鈕用於控制警報時間的數位。
如下面的模式部分所示,將警報按鈕的功能設定為開關方式,這點至關重要。
與“警報”按鈕不同,其他所有按鈕將設定為按鈕方式,如模式部分所示。
在Particle Dev上運行主代碼,操作非常簡單。只需在IDE上打開主資料夾main folder ,然後刷新主文件SparkTimeExample.cpp即可。
該資料夾中包含主代碼中使用的所有程式館,例如Blynk程式館和RTC“即時時脈”,該時脈能提供互聯網同步的準確時間,無需任何外部裝置。使用RTC和LCD程式館,可以在LCD上顯示準確的日期和時間。
在Particle Dev中運行主代碼的快速指南:
選擇包含所有檔的主資料夾(主要代碼+程式館)
在快閃記憶體中編入代碼前,請確保裝置線上,如下面的黃色框所示!
請注意,我們只對SparkTimeExample.cpp進行程式設計
智慧家庭業界近年來發展迅速。越來越多的創新者和研發者正積極投入這一領域,每天不斷研製出各種新的裝置。
該物聯網鬧鐘專案的靈感來自Ian Sterling,他使用Microsoft HoloLens開創了一個驚人的項目。按照其理念,他稱之為“IoTxMR”,用戶只需查看微件並用手勢就能進行控制。