【案例教程】【TinkerNode NB-IoT物聯網開發板】戶外水質監測項目

2021-01-14 DF創客社區

【點擊上方「藍字」關注DF,一起成為技術顏控!】


Hello,大家好。通過之前項目的學習,相信大家已經大致了解了阿里雲平臺的使用方法以及TinkerNode的基本功能。這次將製作一個遠程採集水質參數的裝置,它可以用來採集湖水的溫度、pH、TDS值以及設備電量,並使用TinkerNode開發板的NB-IoT功能,將數據上傳至阿里雲平臺。



項目的主要目的:


①熟悉阿里雲IoT平臺的使用方法;

②通過戶外水質監測項目,進一步了解TinkerNode,了解板載NB-IoT模組功能;
③了解NB-IoT的使用場景,調試並搭建一個戶外水質監測的原型。


項目視頻


為了方便大家進行學習,我們為大家提供了視頻版本的項目教程,會在近期更新。


元器件清單


本次項目用到的元器件清單如下:

TinkerNode NB-IoT開發板 x1

TinkerNode Gravity IO擴展板 x1

Gravity:I2C ADS1116 16位ADC模塊 x1

DC - DC 直流升壓模塊 x1

Gravity:模擬量隔離模塊x1

Gravity:模擬PH計 x1

Gravity:模擬TDS傳感器 x1

Gravity:DS18B20數字防水溫度傳感器套件 x1

3.7V鋰電池 x1

3.7V鋰電池電量計 x1

太陽能板5V 1A x1

USB轉接模塊 x1

Ps:所使用到的USB轉接模塊是X寶上購買的,如下圖所示,由於DF沒有這款產品,大家可以自行購買。



1、項目相關功能介紹


低功耗

由於本次項目所製作的設備是在戶外使用,且設備工作環境不易拉電,為了使設備在戶外的工作時間更久,就需要設備儘可能的減少電量的消耗。而TinkerNode物聯網開發板板載的NB-IoT模組可以藉助 PSM(Power Saving Mode,節電模式)和 eDRX(Extended Discontinuous Reception,超長非連續接收)實現更長待機。接下來讓我們來了解一下NB-IoT的低功耗功能。


如上圖所示,可以看到NB-IoT設備在進入PSM低功耗狀態時會涉及三種狀態,分別是Connected State連接狀態、Idle State空閒待機狀態和PSM State 低功耗狀態。當設備嘗試從Connected State進入PSM State時,會激活兩個定時器,T3324和T3412。其中,定時器T3324決定了Idle State的時間,T3412決定了兩次Connected State之間的時間。也就是說,當定時器T3324超時後,設備將進入PSM State;當定時器T3412超時後,設備將退出PSM State,進入下一個Connected State,如此循環。


太陽能

為了使設備可以在戶外工作的時間更久,除了需要藉助PSM來降低設備的功耗外,還需要使用TinkerNode集成的太陽能電源管理模塊,外接5V的太陽能板,在陽光充足時,給外接的3.7V鋰電池充電。


Data Logger

TinkerNode將多餘的Falsh空間轉化為一個8MB大小的U盤,可以進行數據的離線存儲。在本次項目中,為了避免網絡連接不穩定導致數據丟失的情況,我們就可以在數據上傳到雲端時,將數據同時備份在TinkerNode的板載U盤中。


2、阿里雲平臺配置
新建項目

和之前的教程相同,我們首先需要在阿里雲平臺中新建一個項目,然後為項目創建產品和設備,配置產品自定義功能(物模型)。
在物聯網平臺的頁面左側,選擇IoT Studio -> 項目管理,點擊新建項目,新建一個空白項目,項目名稱為「水質監測」,如下圖所示。

創建完成後,我們會進入「水質監測」項目的管理頁面,如下圖所示。


新建產品

在項目管理頁面左側的功能欄點擊產品,在彈出的產品頁面中選擇新建產品,如下圖所示。

產品的名稱填寫「KnowFlow」,所屬品類選擇「自定義品類」,其他選項默認,如下圖所示。

完成後點擊保存,此時已經在項目下創建了一個名為「KnowFlow」的新產品。


功能定義

接下來,我們需要為產品添加功能,也叫作定義產品的「物模型」,物模型創建的過程就是通過協議描述產品的功能,定義產品有幾組傳感器數據,有什麼控制功能,數據的類型是什麼。
點擊「KnowFlow」產品後的查看,進入產品的管理頁面,如下圖所示。

選擇功能定義 -> 自定義功能 -> 添加自定義功能 ,如下圖所示。

本次項目中,需要採集溫度、pH以及TDS三種水質參數,另外還需要採集電池電量的百分比,所以我們需要創建四個自定義功能(物模型),相關設定參數按照下表填寫:

序號

功能名稱

標識

數據類型

取值範圍

步長 

單位 

溫度 

Temp 

float

-40~55 

0.1 

攝氏度 

2

pH值 

PH 

float

0~14 

0.1 

無 

TDS值 

Tds 

int32

0~1000 

百萬分率/ppm 

電池電量 

Precentage 

int32

0~100 

百分比/% 

創建完成後,產品的功能定義界面效果如下圖所示。


新增設備

完成了產品的功能定義之後,接下來我們為產品建立一個設備,這樣我們就可以將由TinkerNode搭建的水質監測設備連接到阿里雲平臺了。
在項目管理頁面左側的功能欄點擊設備,在彈出的設備頁面中選擇新增設備,如下圖所示。

在彈出的窗口中,產品選擇「KnowFlow」,添加方式選擇自動生成,設備數量填寫1,點擊提交,創建完成後如下圖所示。



3. 硬體相關配置硬體連接


按照上圖進行硬體連接。Ps:如果該圖看不清楚,可以到文章最下方「閱讀原文」查看。


pH計校準

本次項目中使用到了Gravity:模擬pH計,按照產品wiki,我們需要進行校準操作。

pH使用注意事項:

請使用外接開關電源,使電壓儘量接近+5.00V,電壓越準,精度越高!

電極在每次連續使用前均需要使用標準緩衝溶液進行校正,為取得更正確的結果,環境溫度最好在25℃左右,已知PH值要可靠,而且其PH值愈接近被測值愈好。如您測量的樣品為酸性,請使用pH4.00的緩衝溶液對電極進行校正,如果您測量的樣品為鹼性,請使用pH9.18緩衝溶液對電極進行校正。分段進行校準,只是為了獲得更好的精度。

pH電極每測一種pH不同的溶液,都需要使用清水清洗,建議使用去離子水清洗。

為保證測量精度,建議使用校準液對pH計定期校準,以防止出現較大誤差。一般半年校準一次,如果測量的溶液中含有較多雜質,建議增加校準次數!

pH計的校準步驟:

(1)將各個設備按照圖示方式連接,即:pH電極連接到pH meter電路板的BNC接口,然後用模擬連接線,將pH meter電路板連接到Arduino主控器的模擬口2。對Arduino主控器供電後,可以看到pH meter電路板的藍色指示燈變亮。

(2)對Arduino主控器燒寫校準樣例代碼。

代碼詳情參考點擊」閱讀原文「

(3)將pH電極插入到pH值為7.00的標準溶液中,或者直接短接BNC接口的兩個輸入,打開Arduino IDE的串口監視器,可以看到當前列印出的pH值,誤差不會超過0.3。記錄下此時列印的值,然後與7.00相比,記錄此時的差值,在後續的步驟中,需要把差值修改到程序中的Offset處(差值 = 標準值(7.0) - 列印值)。比如,列印出的pH值為6.88,則差值為0.12,則在樣例程序中把#define Offset 0.00改成#define Offset 0.12。

(4)將pH電極插入pH值為4.00的校準液中,等待一分鐘後,調整增益電位器,使列印出的pH值儘量穩定在4.00左右。此時,酸性段校準已經完成,您可以測試酸性溶液的pH值。

注意:測量其他溶液時,必須清洗電極。

(5)依靠pH電極自身的線性特性,經過以上的校準,可以直接測量鹼性溶液的pH值,但如果您想獲得更好的精度,建議重新校準。鹼性段校準採用pH值為9.18的標準液,同樣是調節增益電位器,使之穩定在9.18左右。經過校準,此時您可以測量鹼性溶液的pH值了。


代碼調試

下載附件中的庫文件,安裝至Aruidno IDE中。點擊查看如何安裝庫文件?

下載附件NB_Project2.ino,打開項目代碼,根據阿里雲的配置和pH計的校準參數,修改代碼中對應的參數。

①阿里雲相關配置
需要將阿里雲中的配置信息,在代碼中做對應的修改。

在設備頁面查看設備證書信息,填寫在代碼中對應位置。




//配置證書信息
String ProductKey = "Your_Product_Key";
String ClientId = "12345";
String DeviceName = "Your_Device_Name";
String DeviceSecret = "Your_Device_Secret";

在產品頁面查看功能標識符,填寫在代碼中對應位置。


//配置產品標識符
String TempIdentifier = "Your_Temp_Identifier";
String PHIdentifier = "Your_ph_Identifier";
String TDSIdentifier = "Your_TDS_Identifier";
String GaugeIdentifier = "Your_batGauge_Identifier";

在設備管理頁面,查看物模型topic信息,填寫在代碼中對應位置。




//需要發布和訂閱的TOPIC
const char * subTopic = "Your_sub_Topic";//****set
const char * pubTopic = "Your_pub_Topic";//******post


②ph計校準數據配置

將剛剛校準時記錄的offset參數,填寫至下列代碼中。比如,列印出的pH值為6.88,則差值為0.12,則在樣例程序中把#define Offset 0.00改成#define Offset 0.12。

#define Offset 0.00            //deviation compensate

該行代碼位置如下圖所示。


③低功耗喚醒時間配置
項目使用了低功耗的功能,可以通過調整代碼中的參數,修改設備的喚醒時間。

//#define TIME_TO_SLEEP_SECOND  10         /* Time ESP32 will go to sleep (in seconds) */
#define TIME_TO_SLEEP_MINUTE  5         /* Time ESP32 will go to sleep (in mimutes) */

低功耗喚醒間隔設置有兩種模式,分別是分鐘設置和秒設置。樣例中使用的是分鐘模式,默認設定時間為5分鐘。為了方便測試,大家可以任意修改。

該代碼位置如下圖所示。


全部配置完成後,將代碼上傳至TinkerNode物聯網開發板中,就可以在阿里雲平臺上查看相應的數據信息了。



硬體購買請戳👆


大家有什麼想法,歡迎下方留言

歡迎大家點擊閱讀原文,到社區論壇查看更多有趣內容!

相關焦點

  • 華為物聯網平臺:深入了解NB-IOT生態系統圖和框架技術
    NB-IoT基於蜂窩的窄帶物聯網(Narrow Band Internet of Things, NB-IoT)成為萬物網際網路的一個重要分支。NB-IoT構建於蜂窩網絡,只消耗大約180KHz的帶寬,可直接部署於GSM網絡、UMTS網絡或LTE網絡,以降低部署成本、實現平滑升級。
  • 汽車GPS定位器的NB-IOT技術知多少?
    從最初的2G通訊網絡到現在布滿各個角落的4G通訊網絡,讓人與人之間的聯繫越來越方便了,而就在當下,物聯網的通訊網絡讓物與物之間的距離也變得更近了,不同於人與人之間的個人通信業務,在物與物之間的數據傳輸過程中,不同行業的應用產品在終端的數據採集
  • 中移動大規模集採NB-IoT 物聯網將進入爆發期
    原標題:中移動大規模集採NB-IoT 物聯網將進入爆發期   6月2日中國移動採購與招標網發布公告,啟動 NB-IoT晶片XY1100採購項目。
  • 2016無錫物聯網十大應用案例發布
    在會上,還公布了2016無錫物聯網十大應用案例評選發布活動。  高科「智慧環保系統」:示範構建全方位、全天候、智能化環保監測網  環境監測監控信息化和環境管理智能化是生態文明建設的緊迫課題。無錫環境監控物聯網應用示範工程,作為國家環保部、發改委、工信部的示範和專項資金支持項目,在標準、技術、平臺和應用等頂層架構層面創新探索。
  • 中國移動進軍物聯網的一把利劍——麒麟座開發板測評
    物聯網無疑早已成為當今的一大主流領域,各大廠商都要在其中分一杯羹。
  • 上海市物聯網聯合開放實驗室發布NB-IoT行業應用規範指引
    摘要 【上海市物聯網聯合開放實驗室發布NB-IoT行業應用規範指引】為推進上海市物聯網產業加速發展,在上海市經信委的支持下,上海市物聯網聯合開放實驗室組織來自各個企業的專家,根據行業應用需求測試設定,聯合起草了《NB-IoT行業應用規範指引》(下稱《
  • 窄帶物聯網標準正式凍結,看NB-IoT數據傳輸測試
    窄帶物聯網標準正式凍結,國內運營商重點布局以及設備製造商的強力推動……自此,物聯網規模化商用邁入了快車道。 然而,與傳統的智慧型手機類似,基於NB-IoT技術的物聯網設備在設計和生產過程中同樣會遇到諸多挑戰,有些是類似的,而有些卻不同。
  • 智能製造百萬年薪 需精通物聯網UI(AR/VR/MR)3D軟體、3D列印
    2019 年,持續 20 年的屬於網際網路的時代結束了,IoT 物聯網的新時代開啟了。網際網路連接的終端人均 10 臺,物聯網連接的終端傳感器數量人均 135 個(Body 可穿戴、Car 汽車、Home 智能家居)連接迸發的容量是 100 X 100 倍網際網路。網際網路僅是「IoT 萬物互聯」時代的初級階段,目前正向高級階段進化。
  • 物聯網管理平臺4個核心構成板塊
    中景元物聯從事物聯網平臺服務多年,可以在物聯網方面給予您專業的建議和解答。   1、設備管理   設備管理:設備管理顧名思義就是定義設備相關信息,如設備類型、設備屬性等。   2、用戶管理   組織管理:在物聯網平臺中,所有的設備,用戶,數據都是基於組織的管理的。   用戶管理:用戶是基於一個組織下的人員構成,每個組織下面都有管理員角色,管理員可以為其服務的組織添加不同的用戶,並分配每個用戶不同的權限。註:一個用戶也可以屬於多個不同的組織,並且扮演不同的組織。
  • NB-IoT窄帶物聯網智能水錶工作原理 新天科技公告
    新天科技(300259)8月4日早間公告,公司8月3日聯合中國電信、華為公司在鄭州召開了「物聯無限、豫響全球-中國·水行業NB-IoT生態大會」,公司研發的NB-IoT窄帶物聯網智能水錶正式發布。公司稱,NB-IoT窄帶物聯網智能表是公司推出的新一代物聯網技術的智能表,採用目前世界上最先進的窄帶蜂窩通信技術。
  • 濟南港華工商客戶NB-IoT物聯網燃氣表在泉城率先投入使用
    2020年10月22日,隨著泉城第一塊工商客戶NB-IoT物聯網燃氣表的正式安裝使用,濟南港華成為泉城首家實現NB-IoT物聯網燃氣表技術的燃氣企業,此次實現燃氣數據遠傳及智能服務,為泉城燃氣事業的快速發展和邁入泉城「智慧燃氣」時代掀開嶄新一頁。這也是濟南港華打造「智慧燃氣」,精準便民服務的最新舉措。
  • 物聯網平臺有哪幾種類型
    物聯網系統由四個主要部分組成:硬體、軟體、用戶界面和網絡。   物聯網平臺將四個部分連接成一個內聚性、可管理和可解釋的系統。該平臺有助於使數據攝取、通信、設備管理和應用程式操作流暢、統一。   不僅如此,物聯網平臺還為您提供了一個構建框架,使您不必從頭開始創建物聯網系統。
  • 招標:28條河道水質監測服務項目
    北極星環保網訊:寧波中冠工程管理諮詢有限公司受寧波市江東區城市管理局委託,對江東區前塘河等28條河道水質監測服務項目進行國內招標,現邀請合格的投標人提交密封投標。1.招標項目的內容:2.投標人資格要求:投標人參加本次政府採購活動除應當符合《中華人民共和國政府採購法》第二十二條的規定外,還必須具備:1)投標人具有省級
  • 騰訊IOT安卓開發初探
    騰訊雲IOT開發平臺的項目結構如下所示:分為兩層——項目 和 產品。用在使用其平臺的時候,既需要創建project,也需要創建product。我們可以將項目理解為智能家居整個系統,因此在項目中有很多產品,比如說智能空調,智能報警器等等產品。新建項目新建項目,項目名稱隨意就行,創建好項目後,進入項目,然後創建產品。
  • 麒麟座迷你開發板
    聯網功能作為物聯網方面的開發板,麒麟座迷你開發板通過板載WIFI模塊進行聯網,模塊型號為ESP8266_01,通過串口與單片機通信,接入簡單方便,資料齊全。當然,用戶想用其他的方式聯網,也可以通過擴展IO進行擴展。
  • 基於NB-IoT的智能電錶的原理及設計
    發明背景 物聯網是指利用局部網絡或網際網路等通信技術把傳感器、控制器、機器、人員和物等通過新的方式聯在一起,形成人與物、物與物相聯,實現信息化、遠程管理控制和智能化的網絡。 發明內容 本發明提供了一種基於NB-IoT的智能電錶,通過設置狀態監測單元和時鐘單元實時檢測電錶狀態,設置物聯通信單元響應主站進行狀態信息的傳輸;解決了現有電錶故障發生時才上報故障導致主站接收故障情況有延時且數據不完整導致接收的故障信息不準確的問題,達到了電錶實時進行狀態監測且通過物聯網通信單元進行傳輸,避免故障導致的數據傳輸不準確、有延時的缺點,便於國家電網正確分析用電數據,便於後期管理的效果
  • 「飲用水非國控水質指標監測項目」專家評審會順利召開
    加強檢測監測水平 保障飲用水安全——「飲用水非國控水質指標監測項目」評審會召開我們常說,一個城市飲用水水質的優劣,決定了城市綜合管理水平的高低。近年來,上海不斷提升原水水質,加強水質監測檢測,《生活飲用水水質標準》(GB 5749—2006)、《生活飲用水水質標準》(DB31/T 1091—2018)等標準中都對飲用水指標做了嚴格規定。
  • 基於NB-IOT的智能煙感應用方案
    煙感報警器是運用光電感煙或離子感煙技術,通過監測煙霧的濃度來實現火災防範,內部採用離子式煙霧傳感器,離子式煙霧傳感器是一種技術先進,工作穩定可靠的傳感器可在早期探測到火災後直接發出警報,提醒現場人員迅速報警並及時疏散逃生。煙感報警器經歷了傳統有線、獨立型煙感報警器逐步演進到最新無線智能型聯網型煙感報警器。
  • 環旭電子發布高兼容性IoT 網關產品,為物聯網提供多元應用
    等技術,利用大數據思維,整合行業應用,開發了基於 Intel、TI 和 NXP 平臺的 IoT 網關 (IoT Gateway) 產品和邊緣運算 (Edge Computing) 產品,該產品可支持寬溫工業物聯網