資料介紹
描述
本文是迪肯大學(xué) IT 學(xué)院為主題 SIT210 - 嵌入式系統(tǒng)開發(fā)提交的作業(yè)組合的一部分。
關(guān)于該項目
以下項目適用于智能狗水碗,當(dāng)水碗變干時,它會根據(jù)電容式土壤濕度傳感器的讀數(shù)自動補充水。每當(dāng)重新裝滿水碗時,都會通過 IFTTT 通過電子郵件提醒用戶。
這個項目的靈感
我擁有兩只名叫吉米和利奧的騎士國王查爾斯獵犬。有時,當(dāng)我作為救濟教師下班回家時,他們的水碗是干的,而在澳大利亞經(jīng)常發(fā)生的非常炎熱的日子里,當(dāng)這種情況發(fā)生時,我會感到內(nèi)疚。話雖如此,即使在不熱的日子里,這兩個男孩也有用他們小狗的眼睛讓我感到內(nèi)疚的習(xí)慣。
這個怎么運作
粒子氬和粒子光子通過粒子云進行通信。Particle Argon 測量水分并根據(jù)其讀數(shù)以及該狀態(tài)是否發(fā)生變化來發(fā)布“干燥”或“充滿”事件。此事件由 Particle Photon 訂閱,如果干燥,它將打開,通過連接到軟管的電磁閥重新填充碗。當(dāng)碗重新裝滿時,將發(fā)布一個事件,該事件將導(dǎo)致 IFTTT 向狗主人發(fā)送電子郵件。
水分水平通過api.ThingSpeak的 webhook 可視化,它會生成折線圖和水位計。
如何設(shè)置
第 1 步:修改寵物飲水機
首先,我們修改了寵物飲水機以容納電容式土壤濕度傳感器,方法是使用無繩電鉆在背面鉆一個 12 毫米的孔,然后用鋼鋸切掉剩余部分。然后,我們用圓銼磨平了傳感器所在的凹口。修改的圖片如下所示。
之前計劃通過鉆一個孔來容納防水濕度傳感器的接線和一個更大的孔作為軟管的入口來修改大型水容器,然后在軟管和傳感器的電線進入后用密封劑密封這些孔,但在用 Selley's All Clear 密封后,瓶子在一夜之間淹沒了碗,所以這個想法被廢棄了。
第 2 步:設(shè)置繼電器和電磁閥
要設(shè)置繼電器,首先將您的 Particle Photon 插入 Particle Relay Shield for Photon 的接頭。接下來將接線連接到您將使用的繼電器的 COM 和 NO 觸點端子(注意:NC 觸點端子應(yīng)該為空) 。在下面的例子中,我們選擇在代碼中使用引腳 D6 作為我們的 RELAY_PIN,該代碼對應(yīng)于繼電器屏蔽上的 5 V 繼電器 RELAY 4。

接下來將絕緣的 1/4" 母鏟形接觸端子壓接到每根電線。這些將連接到 12V 電磁閥上的兩個公連接器。然后通過加熱將 2 段軟管連接到 2 個母 1/2" 軟管連接器用沸水沖洗軟管,將其滑到每個適配器上,并用 O 形圈夾固定軟管。這個設(shè)置可以在下面看到。

應(yīng)該注意的是,螺線管是 12 V,但繼電器只有 5 V。因此其中一根電線被切成兩半,并添加了一個母 DC 筒形插孔適配器,以提供為電磁閥供電所需的電壓。對于大多數(shù)電磁閥來說,哪根電線的極性無關(guān)緊要。

在將連接到水龍頭的軟管末端,連接一個 12 毫米軟管接頭,如下所示。

由于南澳大利亞的天氣非常潮濕,因此使用室內(nèi)水龍頭適配器將狗水碗設(shè)置在室內(nèi)。
第 3 步:設(shè)置電容式土壤濕度傳感器
將粒子設(shè)備連接到紅色和綠色 LED 以及電容式土壤濕度傳感器,如下面的面包板的 Fritzing 圖中所示。

下面的接線圖將匹配下面 Github 鏈接上提供的代碼。
第 4 步:編碼
設(shè)置繼電器和傳感器的接線后,將提供的 C++ 代碼復(fù)制并保存到 Particle Web IDE 上的新應(yīng)用程序文件中,驗證并將其閃存到您的 Particle 設(shè)備。

在創(chuàng)建的項目中,從傳感器發(fā)布的代碼被寫入粒子氬,訂閱和控制繼電器的代碼被寫入粒子光子。
現(xiàn)在需要校準(zhǔn)電容式土壤濕度傳感器讀數(shù)。為此,將傳感器放置在水碗中,并在水碗半滿和水碗滿時讀取空氣中的讀數(shù)。在將 Particle Argon 插入筆記本電腦時,通過串行監(jiān)視器查看讀數(shù)。這些讀數(shù)是從循環(huán)中的以下代碼行打印的:
// Take the reading
int moistureValue = analogRead(SENSOR_PIN);
// Print to serial so you can keep track, particularly when determining
// moisture values from sensor when dry and when water bowl is full.
Serial.print("Moisture Level: ");
Serial.println(moistureValue);
Serial.print(Time.hourFormat12());
Serial.print(":");
Serial.print(Time.minute());
Serial.print(":");
Serial.print(Time.second());
要查看這些讀數(shù),請打開 Arduino IDE(作為 Particle 和 Arduino use.ino 文件)并選擇工具 -> 端口 -> /dev/cu.usbmodem..... 如下圖所示。

然后選擇 Tools -> Serial Monitor 查看讀數(shù)。

從這些讀數(shù)中,我確定水分讀數(shù)在充滿時為 2190,在干燥時為 3220。然后,我使用以下代碼行將這些值分別映射到 100 % 和 0 %,以便于閱讀碗的裝滿程度。
// Map these values to a percentage of how full. In this case when water bowl // was full moisture reading was 2190 and when dry it was 3220.
int moisturePercentage = map(moistureValue, 2190, 3220, 100, 0);
獲得這些讀數(shù)后,可以嘗試進行試運行。兩個 Particle 設(shè)備都已經(jīng)在運行,因此將螺線管連接到水龍頭并相應(yīng)地調(diào)節(jié)水流,然后測試螺線管是否打開并且當(dāng)濕度傳感器干燥并且螺線管關(guān)閉時紅色 LED 是否打開,綠色 LED 是否打開當(dāng)濕度傳感器暴露在水中時,紅色 LED 熄滅。
第 5 步:設(shè)置 IFTTT
在進行測試運行時,通過檢查粒子控制臺并選擇事件日志或我的設(shè)備來檢查粒子設(shè)備正在發(fā)布的事件。

我們可以從上面的事件日志中看到粒子 Argon 已啟動兩次都已發(fā)布“完整”。
連接到繼電器的 Particle Photon 的“開啟”事件是我們將設(shè)置為通過 IFTTT 向用戶發(fā)送電子郵件的事件。
如果您尚未在此處設(shè)置 IFTTT 帳戶。
設(shè)置好帳戶后,單擊右上角的“創(chuàng)建”創(chuàng)建一個新的小程序,如下所示。

在下一頁上,單擊“如果這樣”按鈕。

在下一頁上搜索粒子并單擊粒子圖標(biāo)。

在下一頁上選擇“新事件發(fā)布”。如果您還沒有,請按照提示連接您的 Particle 帳戶。

在“發(fā)布的新事件”頁面上,輸入如下所示的詳細(xì)信息,然后單擊“創(chuàng)建觸發(fā)器”。

這將帶您返回 If This Then That 頁面,您將在其中單擊“The Then That”按鈕。

在下一頁上搜索 gMail 并單擊 gMail 圖標(biāo)。

在下一頁上選擇“給自己發(fā)送電子郵件”。如果您還沒有,請按照提示連接您的 gMail 帳戶。

在“給自己發(fā)送電子郵件”頁面上,輸入下面顯示的詳細(xì)信息,然后單擊“創(chuàng)建操作”。

單擊“創(chuàng)建操作”后,您將進入以下頁面。單擊“完成”按鈕。

第 6 步:設(shè)置 Webhook
我們現(xiàn)在將創(chuàng)建一個 webhook,以便在 ThingSpeak 上繪制水分百分比值。為此,我們首先將以下代碼行插入smartdogwaterbowlpublish.ino應(yīng)用程序:
// ThingSpeak
const char * eventName = "thingSpeakMoisturePercentageReading_";
// ThingSpeak Channel information
unsigned long myChannelNumber =XXXXXXX;
const char * myWriteAPIKey = "XXXXXXXXXXXXXXXX";
Particle.publish(eventName, "{"Moisture Percentage": "" + String(moisture) + "", "key": "" + myWriteAPIKey + "" }", PRIVATE, NO_ACK);
delay(PUBLISH_INTERVAL); // Moisture level read every minute
對于我的 Channel Number 和 myWriteAPIKey,您將能夠在 ThingSpeak 頁面的以下屏幕上找到要輸入的字符,黃色圓圈所在的位置。

代碼行:
Particle.publish(eventName, "{"Moisture Percentage": "" + String(moisture) + "", "key": "" + myWriteAPIKey + "" }", PRIVATE, NO_ACK);
將解析為分配給事件名稱“thingSpeakMoisturePercentageReading_”的 JSON 塊:
{
"Moisture Percentage":"97"
"key":"XXXXXXXXXXXXXXXX"
}
接下來在 Particle Photon Cloud 界面中,通過輸入以下數(shù)據(jù)來構(gòu)建“WebHook”類型的新“Integration”:

單擊“高級設(shè)置”并輸入以下內(nèi)容作為 JSON 塊,將每個參數(shù)附加為字段編號以顯示在 ThingSpeak 頻道上:
{
"event": "thingSpeakMoisturePercentageReading_",
"url": "https://api.thingspeak.com/update",
"requestType": "POST",
"api_key": "XXXXXXXXXXXXXXXX",
"field1": "{{{Moisture Percentage}}}"
}
單擊“保存”并啟動集成。
如果您還沒有,請創(chuàng)建一個ThingSpeak帳戶來接收和處理數(shù)據(jù)。現(xiàn)在創(chuàng)建一個新的“Channel”,給它一個名字和定義的字段來接收與上面的 JSON 塊匹配的數(shù)據(jù),如下所示:

將“元數(shù)據(jù)”設(shè)置為“JSON”并保存頻道。現(xiàn)在可以將數(shù)據(jù)可視化為圖形和儀表。

在左側(cè),我們在“15 分鐘”時間尺度上創(chuàng)建了一個設(shè)置為“樣條曲線”的折線圖,顯示了最后 480 個結(jié)果(過去 8 小時的結(jié)果)。將“Y 軸最小值”設(shè)置為“0”,將“Y 軸最大值”設(shè)置為略大于 100,例如 110。這表明狗從水碗中喝水的時間急劇下降。
在右側(cè),我們創(chuàng)建了一個儀表小部件,它顯示了碗的當(dāng)前水分百分比水平。該儀表的設(shè)置如下所示。

?
?
?
- 物聯(lián)網(wǎng)狗碗和狗糧秤開源分享
- 三個傳感器協(xié)同工作的智能狗碗
- Doggo水碗加注監(jiān)視器/指示器 第1部分
- Doggo水碗補充監(jiān)視器/指示器 第2部分
- 通過多模態(tài)特征融合來設(shè)計三維點云分類模型 3次下載
- 如何結(jié)合粒子群尋優(yōu)與遺傳重采樣實現(xiàn)RBPF算法 2次下載
- 如何使用禁忌退火粒子群算法解決火力分配的問題 7次下載
- 如何使用核模糊聚類進行動態(tài)多子群協(xié)作骨干粒子群優(yōu)化 21次下載
- 如何使用室內(nèi)環(huán)境約束的行人航向粒子濾波算法進行修正方向誤差 9次下載
- 云計算資源的動態(tài)隨機擾動如何進行粒子群優(yōu)化策略 1次下載
- 如何使用粒子Mean Shift遷移進行紅外人體目標(biāo)跟蹤算法概述 2次下載
- 使用云計算任務(wù)調(diào)度的遺傳粒子群優(yōu)化算法的詳細(xì)資料概述 9次下載
- 粒子校正優(yōu)化的智能小區(qū)需求響應(yīng)調(diào)度 5次下載
- 基于改進粒子群算法的云計算任務(wù)調(diào)度算法 0次下載
- 磁性納米粒子的制備及其細(xì)胞分離方面的應(yīng)用
- RIGOL高能粒子物理實驗數(shù)據(jù)采集系統(tǒng)的應(yīng)用案例 101次閱讀
- 熱解粒子探測器干嘛用的 519次閱讀
- PLC可以與哪些設(shè)備進行通信 1500次閱讀
- 關(guān)于電子元器件空間輻射單粒子效應(yīng)的考核 2345次閱讀
- STM32中的獨立看門狗和窗口看門狗 1417次閱讀
- STM32中的獨立看門狗和窗口看門狗 2196次閱讀
- 塵埃粒子計數(shù)器使用說明 8464次閱讀
- 一文看懂云電子狗與普通電子狗有什么區(qū)別 2.7w次閱讀
- 電子狗哪個牌子好?電子狗排行榜十大牌子 7.8w次閱讀
- 電子狗是什么_電子狗和導(dǎo)航儀的區(qū)別 3w次閱讀
- 詳細(xì)剖析漢云通信——人工智能語音交互系統(tǒng) 6623次閱讀
- 通過改進算法對光伏組件內(nèi)部參數(shù)進行準(zhǔn)確辨識,并對外部輸出特性進行預(yù)測 8474次閱讀
- 通過云計算來挖掘人工智能服務(wù)的優(yōu)勢分析 5276次閱讀
- STM32看門狗配置(獨立看門狗IWDG和窗口看門狗WWDG) 8468次閱讀
- stm32看門狗時間計算 獨立看門狗和窗口看門狗的特性是什么 8789次閱讀
下載排行
本周
- 1DD3118電路圖紙資料
- 0.08 MB | 1次下載 | 免費
- 2AD庫封裝庫安裝教程
- 0.49 MB | 1次下載 | 免費
- 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
- 1.12 MB | 1次下載 | 免費
- 4網(wǎng)絡(luò)安全從業(yè)者入門指南
- 2.91 MB | 1次下載 | 免費
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下載 | 免費
- 6海川SM5701規(guī)格書
- 1.48 MB | 次下載 | 免費
- 7H20PR5電磁爐IGBT功率管規(guī)格書
- 1.68 MB | 次下載 | 1 積分
- 8IP防護等級說明
- 0.08 MB | 次下載 | 免費
本月
- 1貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
- 0.50 MB | 103次下載 | 1 積分
- 2涂鴉各WiFi模塊原理圖加PCB封裝
- 11.75 MB | 89次下載 | 1 積分
- 3錦銳科技CA51F2 SDK開發(fā)包
- 24.06 MB | 43次下載 | 1 積分
- 4錦銳CA51F005 SDK開發(fā)包
- 19.47 MB | 19次下載 | 1 積分
- 5PCB的EMC設(shè)計指南
- 2.47 MB | 16次下載 | 1 積分
- 6HC05藍牙原理圖加PCB
- 15.76 MB | 13次下載 | 1 積分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下載 | 免費
- 8蘋果iphone 11電路原理圖
- 4.98 MB | 6次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81588次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論