LinkItONEDevGroup/LASS_WaterBoxV2: LASS IS YOURS

文章推薦指數: 80 %
投票人數:10人

水盒子是一台完全開源,可讓Maker視需求自行更換感測項目的水質感測設備。

水盒子採用臺灣聯發科設計製造的LinkIt7697開發版作為微控制器(MCU),以免費開源軟體ArduinoIDE ... Skiptocontent {{message}} LinkItONEDevGroup / LASS_WaterBoxV2 Public forkedfromkylecat/LASS_WaterBoxV2 Notifications Fork 2 Star 7 LASSISYOURS MITLicense 7 stars 2 forks Star Notifications Code Pullrequests 0 Actions Projects 0 Wiki Security Insights More Code Pullrequests Actions Projects Wiki Security Insights master Branches Tags Couldnotloadbranches Nothingtoshow {{refName}} default Couldnotloadtags Nothingtoshow {{refName}} default 1 branch 0 tags Code Thisbranchisuptodatewithmaster. Contribute Thisbranchisnotaheadoftheupstreammaster. Nonewcommitsyet.Enjoyyourday! Openpullrequest Latestcommit   Gitstats 16 commits Files Permalink Failedtoloadlatestcommitinformation. Type Name Latestcommitmessage Committime ArduinoLibrary/libraries     Docs/assets/images     UnitTest     Verification     firmware/LASSWaterBox_Linklt7697_v2.1     .gitattributes     .gitignore     LICENSE     README.md     Viewcode LASS_WaterBoxV2 LASSISYOURS 1.功能介紹 2.硬體說明 2.1使用材料(BOM) 2.2組裝順序 2.3充電方式 2.4用電分析 2.5建議防水方式 3.韌體說明 3.1LinkIt7697介紹 3.2LinkIt7697腳位使用情況 3.3GitHub 3.4單元功能測試 3.5整機運作功能 4.購買 5.資料上傳 5.1LASS上傳資料設定:《山河事件簿》 5.2ThingSpeak設定 6.擴充性 6.1可擴充模組 7.第一次就上手 7.1購買 7.2組裝 7.3充電/開機 8.上場域 8.1初步使用與暖身 8.2上場域前準備 8.3安裝 8.4維護 8.5後續分析(作者外出取材中) 9.入手前確認事項 README.md LASS_WaterBoxV2 LASSISYOURS 1.功能介紹 水盒子是一台完全開源,可讓Maker視需求自行更換感測項目的水質感測設備。

水盒子採用臺灣聯發科設計製造的LinkIt7697開發版作為微控制器(MCU),以免費開源軟體ArduinoIDE作為開發環境,同時將常用的Arduino模組集成設計在一塊PCB電路板上,這些功能可經由開源的Library作為驅動,目前的測試程式碼跟主要運作程式碼也是以MIT授權的方式開放所有人使用,程式碼相關內容請參考後續章節韌體說明。

目前水盒子可量測項目為水溫、**導電度(ElectricalConductivity,EC)及酸鹼度(pH)*等自然水質基本項目,資料可以.CSV格式(或其他格式)儲存於MircoSD卡內,經WiFi上傳至雲端(LASS或ThingSpeak)或以LoRa/BLE通訊方式傳輸到其他裝置上;由於自然水體內水質情況會隨著不同地點而有不同的干擾,即使為無工業污染的水體也會有生物膜附著在電極表面造成感測電極干擾,因此建議每周維護檢查電極偏差的情況,確保所量測水質資料具參考價值。

水盒子是為了擴增LASS環境感測器網路系統的感測領域而設計的開源專案,單一一台水盒子只能知道一池水的水質狀況,而經由公民科學參與大量布建則可揭露環境/污染變化的分布及趨勢;因此,希望使用者能上傳/分享水盒子的感測資料,一同為我們所生活這塊土地努力。

2.硬體說明 WaterBox主機外殼為120mm×120mm×65mm的ABS材質防水盒,主要功能如下: 2.1使用材料(BOM) 目前水盒子材料包內容包含內容如下表。

項目 數量 單位 說明 水盒子電路板 1 片 水盒子各模組的集成電路版 LinkIt7697開發版 1 片 水盒子的MCU CR1220電池(SONY) 1 個 水盒子RTC的電池 塑膠防水工控盒(G278C,12012060) 1 個 主機外殼 0.96寸OLED顯示螢幕128*64黑底白字 1 片 水盒子系統訊息顯示螢幕(SSH1106) 太陽能板3W110x162mm 1 片 充電用太陽能板 JST2.0單頭線+2p母座/30cm 1 條 太陽能板用電線 MicroUSB傳輸線1米 1 條 韌體上傳/測試用;主機電池充電用 MicroSD16GB超高速(Class10) 1 片 SD卡;儲存資料用 聚合物鋰電池-2000mAh3.7V 1 個 用於主機電源供電 3M黑色魔鬼氈25mm*40mm 1 片 用於固定電池 杜邦端子2.54mm母(半鍍金)3P杜邦母座 1 組 溫度sensor用轉接頭(DS18B20) M3六角細牙銅柱25mm十字圓頭螺絲M3x12mm五彩六角螺帽M3十字圓頭螺絲M3*8mm(五彩)HP-5扣式塞頭 1 組 主機固定用 2.2組裝順序 pH及EC的固定開孔比較難安裝,安裝時需多加留意。

https://www.dropbox.com/s/p1fkxj5bptwpakw/WaterBox_V2.1.avi?dl=0 2.3充電方式 A.使用太陽能板充電 B.使用電路板上USBcharge,以MicroUSB線(typeB)充電(建議使用1.0A以上) 2.4用電分析 目前水盒子運作時用電約為120mA,以套件包所含的聚合物鋰電池(2000mAh)來說,無外部供電情況下約可持續運作13個小時。

經實際測試,水盒子搭配3W太陽能板在戶外可連續運作約10天。

項目 使用電流(mA) MCU(LinkIt7697) 約120.2mA,峰值150.6mA OLED(SSH1106) 約16.16mA pH(DFRobotSEN0161) 約28.2mA EC(DFRobotDFR300) 約10.5mA Tempture(DS18B20) 還沒測 2.5建議防水方式 原本的ABS防水盒外殼附有防水膠,安裝時須留意膠條接合的地方避免產生孔隙。

(不用鎖緊),再以對角的安式將四周螺絲鎖緊,避免一次將單一螺絲鎖緊使盒蓋和盒體之間產生孔隙,造成水氣滲入。

針對防水盒開孔部分,建議以中性防水型的矽利康填補空隙,避免水氣由開孔處入滲。

3.韌體說明 3.1LinkIt7697介紹 Getstarted(Arduino) Documents 3.2LinkIt7697腳位使用情況 LinkIt7697腳位功能介紹 LinkIt7697各腳位初始狀態 下表列出了LinkIt7697每隻腳位的開機初始電位狀態(高電位為H、低電位為L)及相關說明。

Pin#:表示該腳位在開發板上的絲印編號。

GPIO#:表示該腳位在開發板腳位圖和datasheet裡所標示的****GPIO編號。

Resetting:表示按下LinkIt7697RST鍵時的腳位狀態。

Bootloaderdefault:開機完成後,在ArduinoAPP執行前的腳位狀態。

Pin# GPIO# Resetting Bootloaderdeafult LASSWaterBox(V2.1) 說明 P0 2 H H USB(UART_RX) Resetting過程中,該腳位會被CP2102N拉高。

開機完成後,bootloader將之設定為UART模式,因此也會處於高電位。

P1 3 L H USB(UART_TX) 開機完成後,bootloader將之設定為UART模式,因此處於高電位。

P2 0 L L* LoRamoduleDIO0 *將ArduinoBSP的bootloader版本更新至v0.8.1後的狀態。

P3 39 L L LoRamoduleReset P4 34 H L SPI_CSforSDCard Resetting過程中的高電位狀態為晶片本身的預設行為。

P5 33 H L modeSwitch Resetting過程中的高電位狀態為晶片本身的預設行為。

P6 37 L H powerswitchforpHECmodule 開機完成後,bootloader會先將之設定為UART模式(後再轉為GPIO模式),因此處於高電位。

P7 36 L L TemperaturePinwith4.7Kohmpull-up P8 27 H H I2C_SCK 開發板本身自帶I2C的pull-up電路。

P9 28 H H I2C_SDA 開發板本身自帶I2C的pull-up電路。

P10 32 L L SPI_CSforLoRamodule P11 29 L L SPI_MOSI P12 30 L L SPI_MISO P13 31 L L SPI_SCK P14 57 L L ModulePowerControl P15 58 L L NoUsed P16 59 L L NoUsed P17 60 L L NoUsed 參考來源: 3.3GitHub 資料都放在GitHub上,MIT授權 分為三個部分 單一功能測試:UnitTest 整機程式碼:firmware 模組驗證:Verification https://github.com/LinkItONEDevGroup/LASS_WaterBoxV2 使用方式:下載後需設定ArduinoIDE,確保有抓到GitHub內附的ArduinoLibrary。

3.4單元功能測試 ADS1115 Code:TestCode_pinState_2.0_ADS1115 注意項目: 因為所有模組的供電由P14的腳位控制,所以測試時需先將P14設定為高電位才能啟動模組 ADS1115包含4組16bitADC,因此各組ADC對應如下 A0:pH電壓(輸入端已經分壓,因此量測到的電壓為輸入電壓×0.5) A1:導電度電壓(輸入端已經分壓,因此量測到的電壓為輸入電壓×0.5) A2:旋鈕VR1(順時針轉增加,順時針轉到底為-1) A3:旋鈕VR2(順時針轉增加,順時針轉到底為-1) TestCode同時包含SW1(P5)及SW2(P6)狀態測試 測試畫面 DS3231RTC功能 Code:TestCode_ds3231_v2.0 注意項目: 測試碼改自RTCLib的範例 因為所有模組的供電由P14的腳位控制,所以測試時需先將P14設定為高電位才能啟動模組 測試畫面 SD卡寫入功能 Code:TestCode_SD_2.0_CardInfo 注意項目 因為所有模組的供電由P14的腳位控制,所以測試時需先將P14設定為高電位才能啟動模組 測試畫面 OLED顯示功能 Code:TestCode_SH1106_SystemInfo_v2.0 注意項目 因為所有模組的供電由P14的腳位控制,所以測試時需先將P14設定為高電位才能啟動模組 測試畫面 LoRa功能 Code 接收資料:TestCode_LoRaReceiver_2.0 發送資料:TestCode_LoRaSender_2.0 注意項目 因為所有模組的供電由P14的腳位控制,所以測試時需先將P14設定為高電位才能啟動模組 由於LinkIt7697對於外部中斷的function跟Arduino不同,應此需修改LoRa.cpp內的程式碼 ArduinoLibrary裡面的函式庫已完成修改 3.5整機運作功能 詳細的運作內容請參考程式碼內註解 4.購買 水盒子所需所有套件均可以在ICShop上購買到 https://www.icshop.com.tw/product_info.php/products_id/26350 加購與選項說明 5.資料上傳 預設上傳方式為ThingSpeak及LASS平台;LASS已有全台灣水質開放資料彙整平台『山河事件簿』 《山河事件簿》介紹: +LASS專案-山河事件簿 5.1LASS上傳資料設定:《山河事件簿》 傳輸方式: 基本上有三種腳色:水盒子/中研/山河事件簿 水盒子先透過restfulAPI上傳資料→中研的API轉發LASSMQTT→山河事件簿訂閱MQTTsever RESTfulAPI說明: https://pm25.lass-net.org/Upload/waterbox_tw.php?topic=[]&device_id=[]&key=[]&msg=[] 需要參數有 topic=>MQTT用的頻道預設:"WaterBox_TW" device_id=>設備編號使用習慣12碼MACaddressEX:"9C65F920C020" key=>用於識別作者/來源預設是"NoKey"使用HMAC msg=>MQTT所要發送的內容格式如下: |key_1=value|key_2=value|key_3=value|key_4=value|key_5=value| MQTT訊息各項目利用"="連接數值並且彼此利用"|"符號隔開 例如這樣=>|KEY=value| RESTful使用範例: topic=WaterBox_TW device_id=XXXXXXXXXXXX key=NoKey msg=MQTTmessage 傳送參數如下: https://pm25.lass-net.org/Upload/waterbox_tw.php?topic=WaterBox_TW&device_id=XXXXXXXXXXXX&key=NoKey&msg=MQTTmessage 成功的話就會在LASSMQTT平台LASS/Test/WaterBox_TW/XXXXXXXXXXXX頻道顯示MQTTmessage,訂閱LASS/Test/WaterBox_TW/#即可接收此專案各感測器資料 MQTT訊息項目(MQTTmessage)清單與參考數值如下: device=Linkit7697//感測器主控制板 device_id=9C65F920C020//感測器編號,建議用WiFiMac ver_app=1.1.0//軟體版本 app=WaterBox_TW//專案名稱 FAKE_GPS=1//是否使用FAKE_GPS gps_lat=25.1933//緯度 gps_lon=121.787//經度 date=2019-03-21//日期 time=06:53:55//時間 tick=714436.97 s_t0//水溫(-20.0150.0C) s_ph//酸鹼度(0.00-14.00) s_ec//導電度(0200000uS/cm) s_Tb//濁度(010000NTU) s_Lv//水位(0.00020.000M) s_DO//溶氧(DO0.0012.00mg/L) s_orp//氧化還原電位(ORP-2000~2000mV) 5.2ThingSpeak設定 ThingSpeak的申請和設定可以參考下列網址: https://makerpro.cc/2016/02/upload-sensor-data-from-ameba-to-thingspeak/ 6.擴充性 水盒子除了目前配置的酸鹼度(pH)、導電度(EC)、溫度之外等三樣感測sensor之外,電路板上有預留3組I2C接點,可擴充其他I2C介面的感測模組及0-5VAnalog輸出訊號的模組。

6.1可擴充模組 目前可擴充的水質相關模組清單如下,這些模組原廠均開放Arduinosamplecode供使用者測試。

Sensingitem Company protocols Hardwareinterface SampleCode Wheretobuyit pH AtlasScientific I2C EZO™pHCircuit Yes https://www.atlas-scientific.com/ph.html EC AtlasScientific I2C EZO™ConductivityCircuit Yes https://www.atlas-scientific.com/conductivity.html ORP AtlasScientific I2C EZO™ORPCircuit Yes https://www.atlas-scientific.com/orp.html Temperture AtlasScientific I2C EZO™RTDCircuit Yes https://www.atlas-scientific.com/temperature.html DO AtlasScientific I2C EZO™DissolvedOxygenCircuit Yes https://www.atlas-scientific.com/dissolved-oxygen.html Color AtlasScientific I2C 2.54mmDupontLine Yes https://www.atlas-scientific.com/product_pages/probes/ezo-rgb.html Pressure AtlasScientific I2C 2.54mmDupontLine Yes https://www.atlas-scientific.com/product_pages/pressure/ezo-prs.html flow AtlasScientific I2C EZO™EmbeddedFlowMeterTotalizer Yes https://www.atlas-scientific.com/flow-meters.html distance MaxBotix PWM 2.54mmDupontLine NO https://www.maxbotix.com/ Turbidity DFRobot Voltageanaloge 2.54mmDupontLine Yes https://www.dfrobot.com/product-1394.html?search=turbidity&description=true Ammonium Veriner Voltageanaloge Britishtelephonesocket Yes https://www.vernier.com/products/sensors/ion-selective-electrodes/labquest-ise/nh4-bta/ Calcium Veriner Voltageanaloge Britishtelephonesocket Yes https://www.vernier.com/products/sensors/ion-selective-electrodes/labquest-ise/ca-bta/ Nitrate Veriner Voltageanaloge Britishtelephonesocket Yes https://www.vernier.com/products/sensors/ion-selective-electrodes/labquest-ise/no3-bta/ Chloride Veriner Voltageanaloge Britishtelephonesocket Yes https://www.vernier.com/products/sensors/ion-selective-electrodes/labquest-ise/cl-bta/ Potassium Veriner Voltageanaloge Britishtelephonesocket Yes https://www.vernier.com/products/sensors/ion-selective-electrodes/labquest-ise/k-bta/ 7.第一次就上手 7.1購買 到ICShop買(見4.-購買) 7.2組裝 ICShop將會提供代客組裝服務(當然會需要收組裝費用) 須留意的細節 溫度、pH、EC模組連接的方向(正面看,由左至右依序為GND、VCC、訊號輸出) 充電時應先關閉電源,線都接好之後再供電(USBCharge要多留意) 組裝好之後的測試流程 裝好LinkIt7697、OLED、RTC電池、SD卡、溫度、pH、EC模組 連接電池、太陽能板的接頭,先把開關關閉 (最後再送電的觀念很重要) 各模組的單元測試都跑一遍,確認畫面/序列埠顯示正常 (見3.4-單元功能測試) 7.3充電/開機 如何充電: 用MicroUSB接好USBCharge後,再接上電源!! [注意順序]先接電源再插USB,有可能再還沒插好前就會短路!! LinkIt7697上的USB無法對電池充電,但可對所有模組供電;因此測試時建議關閉電路板左上方的電源開關。

開機畫面 OLED顯示畫面(基本上沒有缺字就可以了) ArduinoIDESerialport設定: Baudrate:9600 有些人的IDE中文顯示會是亂碼(這是IDE產生的差異,建議使用最新版的IDE) 開機後序列埠輸出內容如下圖1-圖5 8.上場域 8.1初步使用與暖身 建立準備用的確認清單(CheckList),建議包含下列項目(?表示查核後數值): 水盒子電源確認(??.?V/4.15V) 水盒子感測項目校正/確認: pH:4.0(??.?)/7.0(??.?)/10.0(??.?) EC:0.0(?.?)/1413(????) Temp:28.5(??.?) 出發前的準備 確認安裝日之前幾日天候狀況,下雨後溪水可能會在隔兩三天後暴漲 除了設備之外,雨鞋、安裝器材、安全防護設備也應一併確認 建議先到預定安裝的場域完成場勘,場勘內容包括: 拍攝安裝地點的上下游 確認安裝位置的日照情況 確認安裝位置是否為溪水上升範圍內 8.2上場域前準備 設備準備 水盒子 Sensor 固定用工具(矽利康/塑鋼土) 外部輔助項目 筆電(確認有電) 三用電表(確認有電) 螺絲起子 刷子(清除石頭上青苔) 工安裝備 8.3安裝 避免下雨天安裝 注意安全 應戴工地安全帽及穿著反光背心 8.4維護 維護流程 檢查設備狀態:檢查設備是否還在 檢查現場狀態:確認安裝地點上下游是否安全 檢查電源狀態:確認是否還有電 現場維護時須留意的地方 現場只做幾件事情: sensor清潔 電池電壓檢查/更換 SD卡更換 用標準液確認sensor偏移狀況 如現場氣候不佳,建議僅檢查外觀及是否有電即可 室內校正流程 清潔sensor上附著物質 偏移確認:放到標準液當中確認讀值並記錄校正前讀值 進行校正 校正後再次進行偏移確認,並記錄校正後讀值 8.5後續分析(作者外出取材中) 1.基本項目: *趨勢圖 *各測項的變化的細節及代表意義 2.其他:作者外出取材中(?) 9.入手前確認事項 Maker套件,著重DIY與客製化,請有正確的預期 About LASSISYOURS Resources Readme License MITLicense Stars 7 stars Watchers 2 watching Forks 2 forks Releases Noreleasespublished Packages0 Nopackagespublished Languages C++ 87.6% C 7.1% JupyterNotebook 4.1% Processing 0.4% Assembly 0.3% CMake 0.3% Other 0.2% Youcan’tperformthatactionatthistime. Yousignedinwithanothertaborwindow.Reloadtorefreshyoursession. Yousignedoutinanothertaborwindow.Reloadtorefreshyoursession.



請為這篇文章評分?