在這篇文章中,我們將介紹如何搭建一款監(jiān)測土壤水分的物聯(lián)網(wǎng)系統(tǒng),用于在土壤干燥時發(fā)出警報(bào),提醒用戶。本項(xiàng)目使用了IoT云平臺來管理警報(bào)系統(tǒng),同時存儲來自傳感器的數(shù)據(jù)。眾所周知,物聯(lián)網(wǎng)是當(dāng)今熱門話題之一,它將改變我們的未來及生活方式。如今我們可以自己動手搭建物聯(lián)網(wǎng)系統(tǒng),因?yàn)槭袌錾弦延幸恍┰桶?,這使得我們不用花費(fèi)太多金錢及精力就可以著手物聯(lián)網(wǎng)項(xiàng)目。
搭建 IoT系統(tǒng)項(xiàng)目
構(gòu)建這個項(xiàng)目,我們需要:
2.濕度傳感器;
3. IoT 云平臺Carriots的免費(fèi)賬戶(點(diǎn)擊創(chuàng)建賬戶);
4. IFFT賬戶(點(diǎn)擊,了解更多)。
該項(xiàng)目的核心理念是搭建一個監(jiān)測土壤水分的 IoT系統(tǒng),勘測土壤的濕度。Arduino MKR1000控制傳感器向 Carriots IoT平臺發(fā)送數(shù)據(jù)。Carriots平臺反過來存儲來自傳感器的數(shù)據(jù),并檢測存儲的值何時達(dá)到閾值。下文我們會分享如何分析數(shù)據(jù)。現(xiàn)在可以假設(shè) Carriots IoT平臺能夠以某種方式調(diào)用一個 IFFT服務(wù),并向用戶發(fā)送一個提醒的短消息。構(gòu)建該 IoT系統(tǒng),我們可以探索如何使用 IoT生態(tài)系統(tǒng)的組件。此外,該項(xiàng)目使用 LED矩陣顯示濕度土壤狀態(tài)。接下來,我們看看具體怎么搭建。
檢測傳感器數(shù)據(jù)
第一步,我們必須讀取傳感器數(shù)據(jù)。該 IoT項(xiàng)目使用了 YL-38 + YL-69傳感器,這個是可以插入要檢查的土壤中的模擬傳感器。那么如何將傳感器連接到 Arduino,如下所示:
代碼很簡單。我們從A1引腳讀取數(shù)據(jù),然后計(jì)算濕度:
此外,還需將 Arduino MKR1000連接到互聯(lián)網(wǎng),以便它可以發(fā)送數(shù)據(jù):
connectToWifi包含:
這樣,如以上代碼所述,我們可以管理顯示濕度的 LED矩陣。接下來就聚焦于物聯(lián)網(wǎng)云平臺上。
連接到IoT云平臺
在將數(shù)據(jù)發(fā)送到云端之前,我們必須配置 Carriots平臺才能管理數(shù)據(jù)。 Carriots使用了分層結(jié)構(gòu)來對設(shè)備進(jìn)行分組和管理。因此,在使用設(shè)備之前,必須創(chuàng)建此結(jié)構(gòu)。用戶一旦登錄,先點(diǎn)擊“Hierarchy”,再點(diǎn)擊“ Project”,填寫所需的數(shù)據(jù),如下圖:
下一步創(chuàng)建服務(wù),填寫所需的數(shù)據(jù):
以上的步驟只需做一次。最后一步是配置設(shè)備。它表示我們用來發(fā)送數(shù)據(jù)的物理設(shè)備。該設(shè)備屬于在最后一步創(chuàng)建的組,組屬于服務(wù),服務(wù)屬于項(xiàng)目。配置步驟非常簡單,如下圖所示:
至此,配置步驟已完成。我們需將 Arduino設(shè)備連接到 Carriots并開始發(fā)送數(shù)據(jù)。上圖中,Id.developer這個參數(shù)很重要,它代表了將來自 Arduino設(shè)備的數(shù)據(jù)綁定到 Carriots設(shè)備的唯一標(biāo)識符。另一個重要參數(shù)是 API密鑰。你可以在設(shè)置>API密鑰菜單中找到它。為了發(fā)送數(shù)據(jù),我們將這個函數(shù)添加到上面的代碼中:
注意該函數(shù)發(fā)送一個包含從傳感器讀取的數(shù)據(jù)的 JSON有效載荷。必須在 loop方法中調(diào)用此函數(shù)。運(yùn)行這個程序,我們可以發(fā)現(xiàn)設(shè)備向 Carriots發(fā)送數(shù)據(jù),如下所示:
監(jiān)控物聯(lián)網(wǎng)傳感器數(shù)據(jù)
接下來是監(jiān)控?cái)?shù)據(jù)。通常在物聯(lián)網(wǎng)系統(tǒng)中,我們不僅希望從傳感器獲取數(shù)據(jù),而且當(dāng)這些值超出特定值時,我們希望監(jiān)視這些信息以采取完善措施。本項(xiàng)目中,當(dāng)土壤太過干燥時,我們要告知用戶。雖然 Carriots擁有內(nèi)置的電子郵件系統(tǒng),但我們更傾向于與 Carriots集成的另一個有用的平臺,即 IFFT。該平臺提供了多種集成服務(wù)。
為了提醒用戶,我們需要兩個組件:
1.監(jiān)控?cái)?shù)據(jù)系統(tǒng);
2.警報(bào)系統(tǒng)。
作為監(jiān)控?cái)?shù)據(jù)系統(tǒng),本 IoT系統(tǒng)項(xiàng)目使用 Carriots監(jiān)聽器。監(jiān)聽是分析輸入值及應(yīng)用特定規(guī)則的一個過程。當(dāng)規(guī)則被驗(yàn)證時,它就會調(diào)用一個腳本。對于 Carriots的有趣方面是,我們可以使用 Groovy作為腳本語言來調(diào)用外部服務(wù)。
警報(bào)系統(tǒng)建立在 IFFT上。在完成 Carriots的任務(wù)之前,配置 IFFT非常有必要。如上所述,當(dāng)濕度達(dá)到閾值時,我們想要發(fā)送一條短消息提醒用戶。為了實(shí)現(xiàn)這個功能,需要在 IFFT中配置一個短消息服務(wù)。在此之前,我們需要一個免費(fèi)的帳戶。那么首先我們創(chuàng)建一個新的 Applet:
選擇“Maker webhooks”來啟用 IoT Maker。接下來配置 maker服務(wù),并填入觸發(fā)發(fā)送消息進(jìn)程的事件名稱:
最后,啟動發(fā)送消息服務(wù),配置所有必需的參數(shù),如目標(biāo)號碼和消息體:
現(xiàn)在,我們來看一下 Carriots平臺的監(jiān)聽器。首先創(chuàng)建一個新的監(jiān)聽器,調(diào)用與之前剛創(chuàng)建的 Applet相關(guān)的 URL。當(dāng)監(jiān)聽器調(diào)用 URL時,IFFT發(fā)送一條短消息。配置監(jiān)聽器流程如下圖所示:
最后一步是配置表達(dá)式。我們可以使用 Groovy寫這個案例。
綜上,我們可以驗(yàn)證當(dāng)土壤水分低于閾值水平時,手機(jī)上是否會收到一條短信。
總結(jié)
通過本文,相信大家已經(jīng)學(xué)會了如何使用傳感器、Arduino和 IoT 云平臺構(gòu)建 IoT系統(tǒng)。也正如本文所述,我們可以集成現(xiàn)有的平臺和服務(wù)來構(gòu)建一款 IoT系統(tǒng)。