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