衡阳派盒市场营销有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>氦水質監測儀開源分享

氦水質監測儀開源分享

2022-12-15 | zip | 5.89 MB | 次下載 | 2積分

資料介紹

描述

我們會做什么?

一種用于測量飲用水質量的 LoRaWAN 設備,可在大范圍內部署。

一些設計注意事項:

  • 電池壽命一年。
  • 防風雨耐用。
  • 每小時測量基本水質指標。

問題

水質測量成本高昂,獲取、存儲和處理數據的后勤工作很復雜。您要測量的地方通常是偏僻的。硬件選項包括某種蜂窩設備,但這是一個相對較高的初始成本加上設備生命周期內的經常性成本。

那么解決方案是什么?

Helium正在美國和加拿大推出 LoRaWAN 網絡它將通過使用他們所謂的熱點來提供大范圍的覆蓋區域(檢查您所在區域的覆蓋范圍)。用 LoRa 的說法,這些是 LoRaWAN 網關或集中器。他們正在為我們的傳感器數據提供傳輸。假設您有覆蓋范圍,那么建立這樣一個廣域網的大量艱苦工作已經為您完成。如果您沒有覆蓋范圍,您可以設置自己的熱點。運行它是有動機的,因為您為通過的每個信息包賺取一定數量的錢。

至于水質測量,我們將使用的傳感器也已經簡化了。

但是什么是 LoRaWAN?

LoRa是物理層,提供長距離通信,占用 OSI 層1。LoRaWAN是一種通信協議(OSI 層 2 和 3)。它使用 LoRa 層提供兩種無線通信方式。為什么沒有無線網絡?因為 WiFi 最多只能走幾百米(最多),而 LoRa 可以走幾公里(幾百公里)。

好的,聽起來很棒。現在怎么辦?

是時候在這里發表免責聲明了。我擁有μFire LLC。我們制造水傳感器并提供 InfluxDB 托管。毫不奇怪,這些就是本文將使用的設備和服務。制作這些小設備是我工作的一部分。

讓我們做出一些設計選擇。

我們需要一個微控制器Heltec Automation制作了一系列與 LoRaWAN 兼容的基于 ESP32 的開發板。我喜歡Wireless Stick Lite ,所以我們將在這個項目中使用它。

它有:

  • 板載鋰電池充電/液位讀取硬件
  • WiFi、BLE 和 LoRaWAN 接口
  • 低功耗設計
  • 用于為傳感器供電的可控電源引腳
  • 兼容 Arduino

我們需要一些水傳感器。該項目將使用:

把事情放在一起

μFire 傳感器均使用Qwiic / STEEMA QT I2C 連接器所以這一步非常簡單。Heltec 板上,將藍色線連接到引腳 32,黃色連接到 33,黑色連接到接地引腳,紅色連接到 Vext 引腳。

在我們繼續之前,快速解釋一下引腳以及它們是如何選擇的。黑色接地引腳沒有什么特別之處,Heltec 板上有一些可供使用。紅線是電源,藍色和黃色引腳是 SDC 和 SCL。在 ESP32 上,您可以為 I2C 總線選擇任意兩個引腳,所以我選擇了 32 和 33,因為它們沒有用于其他任何用途。紅線連接到 VExt 引腳。

什么是 Vext 引腳?它是控制器可以打開和關閉的電源引腳。這對于電池設備來說非常有用,因為您可以將其關閉,并且連接的傳感器根本不會消耗任何電力。然后,當您想要一些讀數時,您將其重新打開。

無論如何,現在只需將 Heltec 板連接到 EC 或 ISE 板,然后以相同的方式連接其他兩個板。最后要連接的是溫度傳感器它可以連接到任何板,但對于這個項目,它將連接到 EC 板。它只是一個帶鍵的推入式連接器。

?

?
?
?
poYBAGOX-PKASpoEACBNERq4xEA802.jpg
?
1 / 2 ? Qwiic
?

我們現在剩下一堆傳感器,它們以菊花鏈的形式連接到 Heltec 板上,放在桌面上。我們希望它能夠坐在外面,靠近水,所以這是行不通的。讓我們把它放在一個盒子里。

做一個外殼

對于這個項目,我將使用Bud Industries塑料盒。我們需要在盒子的側面鉆一些孔來安裝傳感器。為此,我們需要一個 9 mm fortsner 鉆頭。為什么會有這樣一個奇怪的特定命名的鉆頭?因為它在您鉆探外殼中使用的軟、低熔點塑料時起作用。如果你用鏟子鉆頭,你會弄得一團糟。一個木頭鉆頭會到處亂跳,即使你認為自己鉆了一個導向孔很聰明。

我用來獲得良好且可重復的結果的方法是在 Inkscape 中制作大綱。快速計算一下,在我們的例子中,我們將為 EC 鉆一個孔,為 pH 鉆一個孔,為 ORP 鉆一個孔,為溫度傳感器鉆一個孔。我要安裝所有這些東西的一側是 119 毫米長,所以將其除以 4,孔之間的距離約為 30 毫米。

做一些 Inkscaping,你可能會得到這樣的結果:

pYYBAGOX-PqAV-BVAAAueV2wCnU517.png
一種制作均勻間隔孔的簡單方法。
?

打印出來并將它貼在你的盒子上。在中間戳一個小洞,用記號筆做記號,然后鉆出來。小心,慢慢地,并施加最小的壓力,否則你會熔化或碎裂塑料。如果您在鉆孔時感到非常無聊并且不要弄得一團糟,您就會知道自己做對了。

?

poYBAGOX-QOAXf47AAEf2XBHOsQ835.jpg
?

?

希望事情進展順利,您最終會得到一個帶有計劃孔的外殼,而不是一些昂貴的塑料塊。

?

poYBAGOX-QeARpRbAAGZULtz3kg524.jpg
?

?

使用隨附的墊圈、六角螺母和墊圈安裝傳感器。從外殼移出時,墊圈應在內部接觸外殼,然后是墊圈,然后是外部的六角螺母。這將確保墊圈緊緊地壓在外殼上,防止水進入。

溫度傳感器不同。我們將使用PG7 電纜密封套確保你得到一些包括密封墊圈的東西。

將連接電池的 Heltec 板扔進去。您可以使用雙面膠帶、魔術貼或一些安裝螺釘固定它們。保持它與 USB 電纜連接,以便以后對其進行編程

?

pYYBAGOX-QmASO5BAAClPv_DKrE684.jpg
?

?

InfluxDB 和 Chronograf

InfluxDB 是一個時間序列數據庫。它易于使用,是傳感器測量存儲的理想選擇。它還非常方便地附帶了一個名為 Chronograf 的集成圖形組件。使用這兩者,您可以記錄傳感器信息,然后以任何您想要的方式顯示它。對于這個項目,我們將使用 μFire Net 來為我們處理這一切。

如果您愿意,可以自行設置。這個項目使用 InfluxDB 版本 2,它與版本 1 有很大不同。如果你走這條路,你還需要一個 MQTT 服務器。

無論如何,μFire Net將為您設置該項目所需的一切。您不需要對最初提供的設置進行任何更改,但您需要一些信息

  • 地址:所有這些都存在的網站地址。
  • 組織:當您最初登錄時,您將設置此項。不要使用空格,因為它會導致其他軟件出現問題。
  • 存儲桶:登錄后,轉到側面菜單并選擇加載數據/存儲桶。單擊右上角的創建存儲桶并記住您給它的名稱。對于這個項目,我調用了我的wq
  • Token :制作bucket后,需要制作token。從菜單中,單擊加載數據/令牌,然后單擊生成。您在這里有幾個選項,對于最安全的令牌,創建一個僅對您創建的存儲桶具有讀/寫訪問權限的令牌。

氦氣設置

接下來要設置的是氦氣方面。您需要創建一個Helium 控制臺帳戶。

單擊左側的集成鏈接,然后在添加自定義集成部分中選擇 MQTT。

pYYBAGOX-QuAdJOiAAAuR3Jdia4085.png
這是在氦控制臺內。
?

向下滾動一點,您會看到標題為Step 2的部分

poYBAGOX-RCASxF5AAA8fNzc2fI200.png
?

這是您需要輸入 MQTT 服務器信息的地方。對我來說,我使用的 μFire Net 帳戶是 awesome.ufire.net。我的端點線如下所示:

mqtts://awesome:password@awesome.ufire.net:8883

對于主題部分,放入helium

這一步所做的是告訴 Helium 每次從我們的設備接收到消息時發送一條 MQTT 消息。在下一步中,我們將構建一個小型 Python 腳本,該腳本將訂閱相同的 MQTT 服務器和主題,解析信息,并將其插入到我們的 InfluxDB 中。

現在轉到設備頁面并單擊添加設備。

pYYBAGOX-R6ADqVwAABCiQiLy40087.png
?

選擇任何名稱。Dev EUI、App EUI 和 App Key 是自動生成的,是您稍后需要幾個步驟才能輸入 Arduino 草圖的信息位。

接下來是創建一個標簽,因此轉到標簽頁面并單擊添加標簽,給它起任何您想要的名稱,然后在第 2 步中,選擇您創建的 MQTT 集成的名稱。然后單擊創建標簽和管理。

pYYBAGOX-SCARMpVAAAv7kwJ6og579.png
?

在打開的下一個屏幕上,單擊右上角的將此標簽添加到設備。在列表中檢查您的設備,然后檢查集成。這會將集成連接到設備。

MQTT 網橋

信息流是這樣的:

1. 我們的設備將發送傳感器測量值

2. Helium Hotspot 將接收它們并將它們發送到他們的服務器。

3. 在服務器上,它會查看配置了哪些集成。在我們的例子中,它會在我們的服務器上發布一條帶有大量信息的 MQTT 消息。它被編碼了,我們還不能用它做任何事情。

4. 一個 python 腳本也將訂閱到我們的 MQTT 服務器,監聽這些消息。它將對其進行解碼,然后將其插入到我們的數據庫中。

您需要安裝一些軟件包才能運行此腳本。

pip3 install influxdb-client
pip3 install msgpack
pip3 install paho-mqtt

influxdb-client是官方的 InfluxDB Python 客戶端庫。

msgpack有點像 JSON,但是是二進制的。他們有一個很好的網站,比我能更好地解釋它。我選擇使用 MsgPack 而不僅僅是二進制包對傳感器數據進行編碼,因為它允許您將數據與源解耦。如果您只是發送二進制打包有效負載(想想 [4 byte float]-[4 byte long]-[4 byte uint32]),那么您需要知道雙方,這些字節代表什么。使用 MsgPack,我們可以發送一條 JSON 格式的消息,如下所示:

{"batt":3.7,"ec_uS":500}

然后我們可以在我們的 MQTT 腳本中對其進行解碼并得到相同的東西,而不僅僅是一堆隨機字節。它不僅僅是二進制信息,但我認為權衡是值得的。

paho-mqtt是我正在使用的 MQTT 庫。

將此要點復制到您的計算機上(或任何您想運行它的地方)。

您需要編輯幾行。

ufire_server到你的 InfluxDB 服務器,我的線路看起來像awesome.ufire.net

mqtt_port到您的 MQTT 端口我的是8883。

mqtt_username到您的 MQTT 用戶名

mqtt_password您的 MQTT 密碼

influx_bucket到 InfluxDB 存儲桶,您應該從幾步后記起

influx_token從幾步后到你的 InfluxDB 令牌

從上面的influx_organization到您的 InfluxDB 組織名稱

進行這些更改后,運行它:

python3 helium-influx-bridge.py

您可能有興趣在后臺運行它,請使用:

nohup python3 helium-influx-bridge.py &

該腳本是為基于 Linux 的系統編寫的。如果你想在 Windows 上運行它,你需要修改SSL 證書路徑。它還假設 MQTT 服務器與 InfluxDB 服務器相同,只是端口不同。

請記住,這需要始終運行,否則我們無法獲得傳感器測量結果。你可能想把它變成某處機器上的服務。

進入代碼

該項目將基于 Arduino,因此如果您不喜歡使用我選擇的微控制器,您可以將其切換到其他任何東西(如 TTGO LoRa32 或 Heltec CubeCell),只需少量代碼更改。

首先,您需要在 Arduino IDE 中設置 Heltec 板。遵循Heltec 的指示氦氣也有說明

接下來,獲取 Heltec 的 LoRaWAN 庫, 按照他們的說明進行操作您需要進行更改,因此請訪問 Arduino 庫目錄中的 ESP32_LoRaWAN 文件夾。打開ESP32_LoRaWAN.cpp并更改以下行:

這個:

#define LORAWAN_DEFAULT_DATARATE                    DR_5

對此:

#define LORAWAN_DEFAULT_DATARATE                    DR_3

和這個:

channelsMaskTemp[0] = 0x00FF;
channelsMaskTemp[1] = 0x0000;
channelsMaskTemp[2] = 0x0000;
channelsMaskTemp[3] = 0x0000;
channelsMaskTemp[4] = 0x0000;
channelsMaskTemp[5] = 0x0000;

對此:

channelsMaskTemp[0] = 0xFF00;
channelsMaskTemp[1] = 0x0000;
channelsMaskTemp[2] = 0x0000;
channelsMaskTemp[3] = 0x0000;
channelsMaskTemp[4] = 0x0000;
channelsMaskTemp[5] = 0x0000;

這些更改會切換設備用于發送數據的頻率和數據速率。

轉到此Gist并將其復制/粘貼到 Arduino IDE 中的新項目中。

首先,您需要進行一些更改。

返回 Helium 的設備頁面,找到您在幾步前創建的設備。點擊它,你會看到這個。

poYBAGOX-SKAOrv0AAA7x2YoEeQ949.png
?

如果單擊小對角箭頭,它將展開一長串數字。

pYYBAGOX-SWAAvbwAAAhzGakGsw861.png
?

確保您看到顯示msb ,然后單擊復制圖標。將其復制到 Arduino 草圖中作為DevEui[]的值。

對AppEui[]AppKey[]執行相同的操作

poYBAGOX-TeADDCYAAAyvdFhCtQ546.png
?

現在在“工具”菜單中選擇一些東西。確保為 Board 選擇“Wireless Stick Lite”,為 LoRaWAN Region 選擇“REGION_US915”。

pYYBAGOX-UOAG9XbAAF2r-7bGFY893.png
?

上傳草圖并運行它。打開您的串行終端,您會看到一些關于訪問網站并獲取許可證密鑰的信息。按照說明將輸出粘貼到license[4]中。重新上傳,您將看到設備加入 LoRaWAN 網絡的一系列嘗試。在事情取得進展之前,通常需要進行幾次嘗試。

設備連接后,您應該會在設備頁面下的 Helium 控制臺中看到一些活動。

pYYBAGOX-UaATSKsAAAdPVOzcto304.png
?

您應該會看到 MQTT 腳本的輸出。

pYYBAGOX-UiAGQRFAAC2MBHp3tg434.png
?

現在我們可以設置 InfluxDB

InfluxDB 儀表板

現在有一些 InfluxDB 和 Chronograf 基礎知識可以讓您制作自己的儀表板。

Chronograf 由儀表板組織。儀表板是可視化的集合,稱為單元格,您可以在網格中組織這些單元格。可視化可以是折線圖、儀表、熱圖或其他一些。您可以自定義一些選項,然后將它們添加到儀表板。在儀表板中,您可以調整大小和移動它。

因此,首先,通過單擊左側的儀表板圖標并單擊右上角的創建儀表板來創建一個新儀表板。接下來,單擊添加單元格。

這是你經常點擊的地方。看看這張照片:

?

FROM 列表顯示所有存儲桶(數據庫),然后您會看到一系列過濾器以獲取您想要的數據。

  • 第一個過濾器選擇我們感興趣的記錄集。在我們的 MQTT 橋中,我們稱之為wq
  • 單擊wq后,您可以看到wq的所有測量值,但請注意我是如何將第二個過濾器更改為eui的您可以為幾個不同的設備使用相同的wq記錄。在 LoRaWAN 術語中,EUI 是設備的唯一標識符,因此我們在 MQTT 步驟中添加了一個eui字段來做到這一點。我只有一個設備,所以我只有一個選擇,但如果你有多個,你可以選擇你想要測量的設備。
  • 在下一個過濾器中,您可以選擇我們的設備進行的所有單獨測量。
  • 單擊提交,您將獲得一個圖表。

從這里,您可以單擊自定義按鈕并查看單元格外觀的選項。當您滿意時,單擊綠色對勾,它將被添加到我們創建的儀表板中。

poYBAGOX-UyAXesNAABxx53ptEk951.png
?

您現在可以單擊并拖放,直到獲得您喜歡的東西。

pYYBAGOX-VCAagXUAADJZ9NTVRk650.png
?

您可以做一些簡單的事情,您可以將儀表板拆分為:

  • 歷史:帶有過去幾小時、幾天或幾周的圖表
  • 即時:在儀表中顯示最近的測量值
  • 車隊狀態:您還可以通過跟蹤傳感器的電池電量、RSSI 和 SNR 來監控傳感器的健康狀況。

在這一點上,我們完成了!

可選:添加顯示

我們已經到了我們的堆棧可以正常工作的地步,并且我們有一個最小的可行產品雖然有一些簡單的補充。讓我們添加一個屏幕,這樣我們就可以查看我們的盒子并查看測量結果。

由于我們要使用電池供電,因此電子紙顯示器是最佳選擇。它們不使用任何電流,除非您正在積極更新顯示器并且在陽光下易于閱讀。

對于這個項目,我選擇了這款Waveshare 2.9" E-Paper顯示器。

請記住,這個項目使用的是 Heltec Wireless Stick Lite。它有一個板載 LoRa 調制解調器,通過芯片的 SPI 接口進行通信。我們將使用相同的 SPI 引腳來連接我們的顯示器。我上面鏈接的電路板帶有您需要的所有電線。

pYYBAGOX-WKAeZtOAAGwDlK-y64750.png
?

連接:

  • 顯示 VCC 到 Heltec 3.3v
  • 顯示 GND 到 Heltec GND
  • 顯示 DIN 到 Heltec 27
  • 顯示 CLK 到 Heltec 5
  • 顯示 CS 到 Heltec 18
  • 顯示 DC 到 Heltec 10
  • 顯示 RST 到 9
  • 向 Heltec 12 顯示 BUSY

引腳編號使用引腳分配圖中的灰色輪廓編號。

連接后,創建一個新的 Arduino IDE 項目。在此處復制主文件,并添加另一個名為 paper.h 的新選項卡,然后Gist復制paper.h文件

打開 paper.h 并單擊最頂部此行旁邊的注釋中的鏈接以安裝 GxEPD2 庫。

#include   // click to install: http://librarymanager/All#GxEPD2

如果你看一下代碼,它幾乎完全一樣。大部分工作都是在 paper.h 中完成的。上傳草圖,您應該有一個在每個時間間隔更新的顯示。

可選:添加太陽能充電

我們設備的另一個簡單補充是添加一個小型太陽能電池板來為電池充電。速賣通上找到了一個太陽能電池板唇形充電電路

連接很容易。太陽能電池板線連接 SOLAR - 和 +,BATT IN - 和 + 連接到電池,SYS OUT - 和 + 連接到 Heltec 板底部的電池連接器。您可能需要更換小的 2 針連接器才能連接所有東西。Heltec 板使用 SH2.5 連接器連接電池,大多數太陽能電池板充電電路使用 PH2。

可選:添加空氣溫度和濕度

您可能對空氣溫度和濕度感興趣。添加這些測量值很容易。給自己一個SH20傳感器并將其連接到一個開放的 Qwiic 連接器。

有很多例子來展示如何使用這個傳感器。您也可以輸入VPD 和露點。

看看這些例子,你需要一些明顯的東西,比如#include 和類初始化行。您需要在有效負載中添加一行。你的可能看起來像這樣:

payload["temp_C"] = sht20.temperature();
payload["hum_RH"] = sht20.humidity();

您還需要修改 ArduinoJson 變量。訪問他們的網站并使用他們的助手為您完成所有工作。

額外:更多用途

正如您可能已經猜到的那樣,此設置不僅僅用于監測您的飲用水。

其他用途可能是:

  • 水培法魚菜共生法:測量 EC、pH 和溫度至關重要。也許你不會關心 ORP。
  • 游泳池水療中心:在這里監測 pH 和 ORP 會很好。ORP 可用于幫助管理您的氯使用。EC在這里可能用處不大。
  • 施肥:接近水培,但更多的是大型農場環境。這可能會使 LoRaWAN 的使用更加有益,允許在大范圍內進行監控。

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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  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元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

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

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  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十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
百家乐官网八卦投注法| 百家乐官网经典路单| 澳门顶级赌场手机在线链接| 百家乐庄闲排| 百家乐程序开户发| 百家乐揽子打法| 百家乐官网代理| 百家乐官网打立了| 网络百家乐官网赌博赢钱| 隆林| 丹阳市| 百家乐官网太阳城球讯网| 百家乐官网有几种玩法| 美姑县| 太阳城百家乐官网网上| 百家乐官网下载游戏| 百家乐官网规则博彩正网| 缅甸百家乐官网论坛| 百家乐官网破解版下载| 乐宝百家乐官网游戏| 海口市| 百家乐官网游戏机子| 万盛区| 玩百家乐官网最好方法| 百家乐官网是不是有技巧| 娄底市| 百家乐官网真人投注网站| 网上百家乐官网有人赢过嘛 | 大发888游戏平台888| 青鹏棋牌游戏下载| 大发888真钱棋牌| 利博亚洲| 大佬百家乐官网现金网| 新朝代百家乐官网开户网站| 百家乐官网香港六合彩| 乐享百家乐官网的玩法技巧和规则| 百家乐赌具哪里最好| 百家乐的玩法技巧和规则 | 金榜娱乐城| 百家乐官网平台注册送现金| 罗马百家乐官网的玩法技巧和规则 |