電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>通過粒子云進行通信的智能狗水碗

通過粒子云進行通信的智能狗水碗

2022-12-01 | zip | 0.12 MB | 次下載 | 免費

資料介紹

描述

本文是迪肯大學(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。

poYBAGNsXVuAdOI1AANR8HxWfS4108.jpg
光子粒子繼電器屏蔽,光子插入并接線連接到繼電器 4 的 COM 和 NO 接觸端子
?

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

12 V 電磁閥通過 O 形圈和 1/2
12 V 電磁閥通過 O 形圈和 1/2" 軟管連接固定到軟管的長度上,并通過接觸端子連接。
?

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

pYYBAGOIIuCAAIr9AAMMZs4Wckw977.jpg
連接到其中一根電線的母 DC 筒形插孔適配器
?

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

pYYBAGOIIueAck7sAAnciSqNOps013.jpg
連接到軟管的 12 毫米軟管接頭將連接到水龍頭接頭上。
?

由于南澳大利亞的天氣非常潮濕,因此使用室內(nèi)水龍頭適配器將狗水碗設(shè)置在室內(nèi)。

第 3 步:設(shè)置電容式土壤濕度傳感器

將粒子設(shè)備連接到紅色和綠色 LED 以及電容式土壤濕度傳感器,如下面的面包板的 Fritzing 圖中所示。

pYYBAGOIIuyAXxYDAAHxnpSkvt0999.jpg
連接到電容式土壤濕度傳感器的粒子設(shè)備設(shè)置的fritzing面包板圖
?

下面的接線圖將匹配下面 Github 鏈接上提供的代碼。

第 4 步:編碼

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

poYBAGOIIu6ADFfCAAHQM_X24eQ083.png
發(fā)布傳感器數(shù)據(jù)的代碼。驗證和閃爍按鈕的位置在左上角突出顯示。
?

在創(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..... 如下圖所示。

poYBAGOIIvGASwVcAAEBcs3jOqg904.png
在 Arduino IDE 中選擇連接到 Particle 設(shè)備的端口以查看串行監(jiān)視器。
?

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

pYYBAGOIIvmAeshuAADd7AmwTZk714.png
選擇工具 -> 串行監(jiān)視器以查看讀數(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ā)布的事件。

poYBAGOIIvuAH5YNAAHndbKP7JI455.png
我的設(shè)備和事件在粒子控制臺上的位置。
?

我們可以從上面的事件日志中看到粒子 Argon 已啟動兩次都已發(fā)布“完整”。

連接到繼電器的 Particle Photon 的“開啟”事件是我們將設(shè)置為通過 IFTTT 向用戶發(fā)送電子郵件的事件。

如果您尚未在此處設(shè)置 IFTTT 帳戶。

設(shè)置好帳戶后,單擊右上角的“創(chuàng)建”創(chuàng)建一個新的小程序,如下所示。

poYBAGOIIv6AR_tWAAFkNIrh3ic434.png
創(chuàng)建在右上角
?

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

pYYBAGOIIwGAQeewAAB-r-x3L9U234.png
點擊“如果這樣”按鈕
?

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

pYYBAGOIIwaAIxFSAABk24Osx7g297.png
在選擇服務(wù)頁面上搜索粒子,然后單擊粒子圖標(biāo)。
?

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

poYBAGOIIwqASdc9AAJbc4fLax4554.png
選擇屏幕左側(cè)的“新事件發(fā)布”。
?

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

poYBAGOIIw6AI2f2AAFrYgtI2v8952.png
如圖所示輸入詳細(xì)信息,然后選擇“創(chuàng)建觸發(fā)器”。
?

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

pYYBAGOIIxCADQ1BAACUxjpCN38822.png
點擊“然后那個”按鈕
?

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

pYYBAGOIIxWAEbrpAABm724vI9c808.png
在選擇服務(wù)頁面上搜索 gMail,然后單擊 gMail 圖標(biāo)。
?

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

pYYBAGOIIxiAShncAADz_QEEGB0546.png
選擇屏幕右側(cè)的“給自己發(fā)送電子郵件”。
?

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

pYYBAGOIIxuAGlSRAAEnhXbcsGc206.png
如圖所示輸入詳細(xì)信息,然后選擇“創(chuàng)建操作”。
?

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

poYBAGOIIx6AU-BVAAD0tM30qS8149.png
在“查看并完成”頁面上,單擊“完成”按鈕。
?

第 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 頁面的以下屏幕上找到要輸入的字符,黃色圓圈所在的位置。

pYYBAGOIIyOALSaqAALkZ2NKmMQ825.png
將通道 ID 和寫入 API 密鑰記錄到您的代碼中
?

代碼行:

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”:

pYYBAGOIIyiAUCTiAAD2c92S4vs230.png
基本 WebHook 集成設(shè)置
?

單擊“高級設(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ù),如下所示:

pYYBAGOIIyyAHSUhAANm7hLWuVg032.png
ThingSpeak 上的頻道設(shè)置
?

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

poYBAGOINhyACqKTAAI7LP-SWsI785.png
ThingSpeak 上的可視化
?

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

在右側(cè),我們創(chuàng)建了一個儀表小部件,它顯示了碗的當(dāng)前水分百分比水平。該儀表的設(shè)置如下所示。

pYYBAGOINiGANddLAACmKzKagDQ627.png
儀表小部件的設(shè)置
?

?

?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費