資料介紹
描述
監(jiān)測液體和氣體轉(zhuǎn)移很困難。
大多數(shù)用于處理傳輸?shù)默F(xiàn)代系統(tǒng)包括許多管道部分,每個(gè)管道都可以通過截止閥隔離或連接到系統(tǒng)的其他部分。
管理這些眾多的連接點(diǎn)是一項(xiàng)挑戰(zhàn),并且經(jīng)常需要技術(shù)人員手動(dòng)訪問閥門以執(zhí)行關(guān)閉。為了避免這些手動(dòng)過程,設(shè)施管理人員希望能夠遠(yuǎn)程打開和關(guān)閉閥門,并能夠監(jiān)控整個(gè)系統(tǒng)中液體或氣體的流速。
這就是為什么我們在Blues Wireless建立了一個(gè)基于蜂窩的項(xiàng)目來遠(yuǎn)程監(jiān)控液體通過管道的流速,以及一個(gè)網(wǎng)絡(luò)應(yīng)用程序,設(shè)施經(jīng)理可以使用它來根據(jù)需要打開和關(guān)閉閥門。
在本文中,您將看到它是如何工作的。我們將從查看如何連接必要的硬件開始,然后查看設(shè)備的固件和項(xiàng)目的 Web 應(yīng)用程序如何工作。
讓我們開始吧。
組裝硬件
此構(gòu)建所需的主要硬件是:
- 一個(gè)電磁閥(可以打開和關(guān)閉)。
- 流量計(jì)(用于測量流量)。
- 以及一種發(fā)送和接收數(shù)據(jù)的方式(這樣您就可以控制您的閥門并遠(yuǎn)程獲取流量計(jì)的讀數(shù))。
注意:如果您的項(xiàng)目只需要測量流量(不需要電磁閥),請在 GitHub 上查看我們的流量監(jiān)視器項(xiàng)目。
對于電磁閥,我們使用了DIGITEN 電磁閥;對于流量計(jì),我們使用了GREDIA 水流量傳感器;為了遠(yuǎn)程監(jiān)視和控制系統(tǒng),我們使用了Blues Starter Kit中可用的各種組件。
Blues 入門套件包括一個(gè)蜂窩 Notecard ,這是一個(gè)蜂窩和支持 GPS/GNSS 的設(shè)備到云數(shù)據(jù)泵,預(yù)裝了 500 MB 的數(shù)據(jù)和 10 年的蜂窩服務(wù)。
![poYBAGPXIRCADC4nAACgxtIkaMI556.png](https://file.elecfans.com/web2/M00/8B/73/poYBAGPXIRCADC4nAACgxtIkaMI556.png)
Notecard 本身是一個(gè)微型 30x35mm 系統(tǒng)模塊,帶有 M.2 連接器,允許我們通過蜂窩連接發(fā)送和接收必要的數(shù)據(jù)。
為了使 Notecard 易于集成到現(xiàn)有原型或項(xiàng)目中,Blues 入門套件還包括一個(gè)稱為Notecarrier-F的主機(jī)板,其中包括一個(gè)用于 Notecard 的連接器,以及一組用于任何與 Feather 兼容的 MCU 的接頭.
![pYYBAGPXWDCAeAqJAAGCwln6cDQ900.png](https://file.elecfans.com/web2/M00/8C/0A/pYYBAGPXWDCAeAqJAAGCwln6cDQ900.png)
Blues Starter Kit 的最后一部分是Blues Wireless Swan ,這是我們將用來運(yùn)行該項(xiàng)目固件的 MCU。Swan 是一款采用 STM32L4 的開發(fā)板,具有 2MB 閃存和 640KB RAM。它支持 C/C++、Arduino 和 CircuitPython,并且與 Feather 兼容,因此可以很好地插入 Notecarrier-F。
要組裝 Blues Starter Kit 的硬件,您可以完成Notecard 的快速入門教程,之后您將擁有一個(gè)看起來像這樣的設(shè)置。
![pYYBAGPXWDOAK_L1AAJQfGZRvrk267.jpg](https://file.elecfans.com/web2/M00/8C/0A/pYYBAGPXWDOAK_L1AAJQfGZRvrk267.jpg)
使用 Blues 入門套件,您可以將數(shù)據(jù)發(fā)送到(和從)云后端,我們將使用該功能來控制我們的電磁閥,并監(jiān)控流量計(jì)的讀數(shù)。
入門套件準(zhǔn)備就緒后,我們接下來使用下圖所示的接線圖將電磁閥和流量計(jì)連接到 Notecarrier-F。您不必完全按照我們所做的那樣進(jìn)行設(shè)置,但如果您這樣做,請務(wù)必查看我們正在使用的設(shè)備的完整列表。
![pYYBAGPXWD6AO21iAAESrnFYaqw466.png](https://file.elecfans.com/web2/M00/8C/0A/pYYBAGPXWD6AO21iAAESrnFYaqw466.png)
無論您最終使用的硬件是什么,您都必須滿足以下要求才能使該項(xiàng)目的固件正常工作。
-
電磁閥的信號線必須連接到Notecarrier的
F_D6
引腳。固件使用此引腳打開和關(guān)閉螺線管。 -
流量計(jì)的信號線必須連接到Notecarrier的
F_D10
引腳。固件使用此引腳從流量計(jì)讀取流量。 -
Notecarrier 的
F_D13
引腳必須連接到 Notecarrier 的ATTN
引腳。每當(dāng) Notecard 收到打開或關(guān)閉電磁閥的命令時(shí),固件都會(huì)使用它來響應(yīng)中斷。
當(dāng)一切都放在一起時(shí),您的構(gòu)建應(yīng)該看起來像這樣。
![poYBAGPXWESAepDIAAMuhuTaJ88277.jpg](https://file.elecfans.com/web2/M00/8B/86/poYBAGPXWESAepDIAAMuhuTaJ88277.jpg)
如果您選擇使用外殼(例如我們在這些圖片中使用的來自 Sixfab的外殼),您的項(xiàng)目可以放入一個(gè)易于安裝在大多數(shù)設(shè)施中的盒子中。
![pYYBAGPXWEeADDxaAAMHg99B2C0624.jpg](https://file.elecfans.com/web2/M00/8C/0A/pYYBAGPXWEeADDxaAAMHg99B2C0624.jpg)
這樣一來,您現(xiàn)在就擁有了通過 Swan 控制電磁閥和監(jiān)控流量的所有連接方式。但要這樣做,您必須首先設(shè)置一個(gè)用于發(fā)送和接收數(shù)據(jù)的云后端。
云設(shè)置
Notecard 的一大優(yōu)點(diǎn)是它知道如何開箱即用地將數(shù)據(jù)發(fā)送到云后端 Notehub。Notehub是一種托管服務(wù),旨在連接到 Notecard 設(shè)備并同步數(shù)據(jù)。
如果您正在跟進(jìn)并想自己構(gòu)建這個(gè)項(xiàng)目,則需要在 notehub.io 上設(shè)置一個(gè)免費(fèi)帳戶,然后創(chuàng)建一個(gè)新項(xiàng)目。
![poYBAGPXWEqAY3oCAABXyXK5lpA501.png](https://file.elecfans.com/web2/M00/8B/86/poYBAGPXWEqAY3oCAABXyXK5lpA501.png)
創(chuàng)建項(xiàng)目后,請確保復(fù)制新項(xiàng)目的 ProductUID(請參見下面的屏幕截圖),因?yàn)槟枰摌?biāo)識(shí)符才能將 Notecard 連接到新的 Notehub 項(xiàng)目。
![poYBAGPXWEyART4CAAA6i3LYn7w901.png](https://file.elecfans.com/web2/M00/8B/86/poYBAGPXWEyART4CAAA6i3LYn7w901.png)
您將在整篇文章中了解有關(guān) Notehub 的更多信息,但現(xiàn)在您已經(jīng)設(shè)置了后端,接下來讓我們看看使閥門監(jiān)視器項(xiàng)目正常工作的代碼。
編寫固件
該項(xiàng)目的固件負(fù)責(zé)與 Notecard、電磁閥和流量計(jì)進(jìn)行通信。
GitHub 上提供了實(shí)現(xiàn)這一目標(biāo)所需的完整源代碼,但我們將在此處展示最重要的部分。我們使用Platform.io構(gòu)建應(yīng)用程序,使用以 Swan 為目標(biāo)的 Arduino 應(yīng)用程序。(這里是讓所有這些在您的設(shè)備上運(yùn)行的說明,其中包括添加您之前從 Notehub 復(fù)制的 ProductUID。)
管理閥門
固件必須做的最重要的事情是管理電磁閥的狀態(tài)。我們的電磁閥默認(rèn)是關(guān)閉的,固件必須在收到 Notecard 的命令時(shí)提供電源來打開閥門。
為此,固件首先使用其 card.attn 請求武裝 Notecard 以接收中斷。
// Configure ATTN to watch for changes to data.qi.
req = notecard.newRequest("card.attn");
const char *filesToWatch[] = {"data.qi"};
int numFilesToWatch = sizeof(filesToWatch) / sizeof(const char *);
J *filesArray = JCreateStringArray(filesToWatch, numFilesToWatch);
JAddItemToObject(req, "files", filesArray);
JAddStringToObject(req, "mode", "files");
notecard.sendRequest(req);
注意:關(guān)于 Notecard 的一件很酷的事情是它的 API 都是基于 JSON 的——所以要使用 Notecard,您可以發(fā)送簡單的 JSON 對象,并且(如果需要)接收返回的 JSON 對象作為響應(yīng)。
配備 Notecard 后,它會(huì)在收到我們稱之為Note的任何時(shí)候收到中斷。Note 是包含開發(fā)人員提供的正文的 JSON 對象,是 Notecard 與其 Notehub 后端之間的主要通信方式。
要發(fā)送筆記,您可以使用Notehub API 的 note.add 請求,該請求將數(shù)據(jù)發(fā)送到您的 Notehub 后端,后者又立即將該數(shù)據(jù)轉(zhuǎn)發(fā)到您的 Notecard 設(shè)備。
并且因?yàn)?Notecard 在收到某些 Notes 時(shí)準(zhǔn)備好中斷,固件可以響應(yīng)傳入的 Notes 并打開或關(guān)閉電磁閥。具體來說,固件會(huì)查找具有以下 JSON 結(jié)構(gòu)的注釋。
"body": {
"state": "open" // or "close"
}
固件具有響應(yīng)該中斷并根據(jù)需要打開或關(guān)閉電磁閥的功能。
// Toggle the valve's state. If open, close, If closed, open.
void valveToggle()
{
if (state.valveOpen) {
digitalWrite(VALVE_OPEN_PIN, LOW);
}
else {
digitalWrite(VALVE_OPEN_PIN, HIGH);
}
state.valveOpen = !state.valveOpen;
}
從流量計(jì)讀取數(shù)據(jù)
固件的下一個(gè)任務(wù)是監(jiān)控流量計(jì)的流量,并定期將該值報(bào)告給云端后端。
每當(dāng)有 2.25 mL 的流體通過時(shí),流量計(jì)的信號線就會(huì)發(fā)出脈沖。因此,作為第一步,我們配置一個(gè)中斷處理程序,每當(dāng)我們在信號線上看到從低到高的轉(zhuǎn)換(“下降”)時(shí)都會(huì)觸發(fā)該中斷處理程序。
attachInterrupt(digitalPinToInterrupt(FLOW_RATE_METER_PIN), flowMeterISR,
FALLING);
在該中斷處理程序中,我們增加一個(gè)計(jì)數(shù)器來跟蹤發(fā)生了多少脈沖。
void flowMeterISR()
{
++state.flowMeterPulseCount;
}
最后,我們通過跟蹤自上次測量以來發(fā)生的脈沖數(shù)(默認(rèn)為每 500 毫秒)來計(jì)算以 mL/min 為單位的速率。
// Calculate the flow rate in mL/min.
uint32_t calculateFlowRate(uint32_t currentMs)
{
return 60000 * (state.flowMeterPulseCount * 2.25) /
(currentMs - state.lastFlowRateCalcMs);
}
一旦固件有了流量值,它的最終任務(wù)就是將該數(shù)據(jù)發(fā)送到云端后端。為此,固件使用 Notecard 的 note.add 請求來格式化和發(fā)送流量和閥門狀態(tài)(打開或關(guān)閉)。
J *req = notecard.newRequest("note.add");
if (req != NULL) {
JAddStringToObject(req, "file", file);
JAddBoolToObject(req, "sync", true);
J *body = JCreateObject();
if (body != NULL) {
JAddNumberToObject(body, "flow_rate", flowRate);
if (state.valveOpen) {
JAddStringToObject(body, "valve_state", "open");
}
else {
JAddStringToObject(body, "valve_state", "closed");
}
JAddItemToObject(req, "body", body);
}
notecard.sendRequest(req);
}
此時(shí),如果您將固件閃存到您的設(shè)備,并開始讓水流過您的系統(tǒng),您將開始在 Notehub 項(xiàng)目的事件選項(xiàng)卡中看到流速讀數(shù)。
起初,您的所有讀數(shù)的流速都將為零,因?yàn)殡姶砰y開始關(guān)閉并且不允許任何液體通過。
![pYYBAGPXWFSADAELAAB-qb_3x_Q097.png](https://file.elecfans.com/web2/M00/8C/0B/pYYBAGPXWFSADAELAAB-qb_3x_Q097.png)
但是,如果您使用 Notehub API發(fā)送 data.qi 注釋以打開閥門,您將開始看到以毫升/分鐘為單位的速率。
![poYBAGPXWFaARPn9AAAmhvJvFiQ472.png](https://file.elecfans.com/web2/M00/8B/86/poYBAGPXWFaARPn9AAAmhvJvFiQ472.png)
此時(shí),您現(xiàn)在擁有能夠打開和關(guān)閉電磁閥以及從流量計(jì)進(jìn)行測量的固件。
這一切都有效!但是必須去 Notehub 查看你的數(shù)據(jù),并且必須使用 Notehub API 發(fā)送命令來打開和關(guān)閉閥門,這有點(diǎn)麻煩。因此,為了簡化這些過程,我們還為該項(xiàng)目構(gòu)建了一個(gè) Web 應(yīng)用程序。
使用儀表板
該項(xiàng)目的 Web 應(yīng)用程序通過為設(shè)施管理員提供一個(gè)單一位置來查看和管理其系統(tǒng)中的所有設(shè)備,將所有內(nèi)容整合在一起。
除了能夠打開和關(guān)閉閥門以及查看流量外,我們還允許設(shè)施管理員配置流量閾值,并在其設(shè)備的流量落入意外范圍時(shí)觸發(fā)警報(bào)。
![pYYBAGPXWFmADvjFAAF4xFkKlAQ912.png](https://file.elecfans.com/web2/M00/8C/0B/pYYBAGPXWFmADvjFAAF4xFkKlAQ912.png)
注意:在我們的例子中,我們在網(wǎng)絡(luò)應(yīng)用程序中顯示警報(bào),但您也可以使用 Notehub 在警報(bào)發(fā)生時(shí)發(fā)送 SMS 消息。有關(guān)詳細(xì)信息,請參閱我們的Twilio SMS 指南。
與此項(xiàng)目的所有內(nèi)容一樣,閥門監(jiān)控 Web 應(yīng)用程序是開源的,可在 GitHub 上獲取,因此您可以隨意逐字使用它,或?qū)ζ溥M(jìn)行自定義以滿足您的需求。
Web 應(yīng)用程序會(huì)在您使用系統(tǒng)時(shí)實(shí)時(shí)更新,因此這是測試硬件和固件是否按預(yù)期工作的好方法,因?yàn)槟梢栽跍y試硬件時(shí)看到流量顯示在 Web 應(yīng)用程序中。
最后的想法
總體而言,該項(xiàng)目為任何執(zhí)行液體或氣體傳輸?shù)脑O(shè)施增加了自動(dòng)化和智能化。您可以利用物聯(lián)網(wǎng)的力量來自動(dòng)化閥門控制和流量監(jiān)控,而不是依賴技術(shù)人員執(zhí)行手動(dòng)操作。
該項(xiàng)目的固件和 Web 應(yīng)用程序是開源的,因此請隨時(shí)在 GitHub 上查看它們并根據(jù)需要進(jìn)行調(diào)整。
還有一件事——這個(gè)項(xiàng)目是我們在 Blues 構(gòu)建的一系列加速器的一部分,所以如果您感興趣,請查看完整列表,如果您有任何問題,請訪問我們的論壇。
- 開源硬件-警燈
- 儲(chǔ)備油箱監(jiān)控和傳輸開源硬件
- AirBits開源硬件
- 閃爍的LED開源硬件
- 農(nóng)作物監(jiān)控系統(tǒng)開源硬件
- 智能積木開源硬件
- 音箱開源硬件分享
- HBus開源硬件
- 打開WiFi查找器開源硬件
- 監(jiān)控門鈴開源硬件
- 門鈴開源硬件
- Arduino手表開源硬件
- 機(jī)械臂開源硬件
- 主流的開源硬件有哪些詳細(xì)資料說明
- PLC在閥門遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用
- 網(wǎng)絡(luò)監(jiān)控工具有哪些 網(wǎng)絡(luò)監(jiān)控用幾芯網(wǎng)線 1173次閱讀
- 用小安派開源硬件制作一個(gè)桌面天氣站 1007次閱讀
- 尋找開源硬件成功的觸發(fā)器 755次閱讀
- 通過利用微控制器技術(shù)和CAN技術(shù)實(shí)現(xiàn)閥門遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì) 1440次閱讀
- 手動(dòng)球閥的工作原理_手動(dòng)球閥的開啟關(guān)閉過程 1.1w次閱讀
- 防爆電磁閥的工作原理_防爆電磁閥的作用 6739次閱讀
- 轉(zhuǎn)子流量計(jì)怎么使用 9771次閱讀
- 源創(chuàng)通信BPI-M1+ 開源硬件開發(fā)板介紹 2811次閱讀
- 閥門定位器 “現(xiàn)場”預(yù)防性維護(hù)檢查 1540次閱讀
- 幾種遠(yuǎn)程監(jiān)控通信方式的介紹_幾種遠(yuǎn)程監(jiān)控方式的比較 6096次閱讀
- 閥門遠(yuǎn)程控制系統(tǒng)的工作原理 1.2w次閱讀
- 閥門遠(yuǎn)程控制系統(tǒng)的工作原理及設(shè)計(jì) 1.2w次閱讀
- 三大主流開源硬件對比:Arduino vs BeagleBone vs Raspberry Pi 6657次閱讀
- 開源硬件究竟有多“Open”?看完這個(gè)你就清楚了 7124次閱讀
- 基于Qt的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)方案 7848次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論