可以不用熟悉繁瑣的環境搭建嗎?
可以不用關注繁瑣的編譯選項嗎?
可以不用關心繁瑣的C語言陷阱嗎?
可以不寫代碼或者用寥寥幾行代碼,就完成對外設的控制,和服務器的通信嗎?
答案是:完全可以!
使用合宙的物聯網解決方案,一步到位,合宙技術人員完成開發、調試和維護工作,不需要客戶投入任何技術資源,最快1天完成開發!
來看一下,我是如何使用Air-D780L1-Y+合宙業務云平臺,做一個溫濕度傳感器數據采集項目的。
一、DTU整機Air-D780L1-Y介紹
本次項目的主角是一款合宙DTU整機產品Air-D780L1-Y,
Air-D780L1-Y的功耗低,品質穩定,購買樣品也方便,資料全開放。
如下圖所示:
?
Air-D780L1-Y的產品說明書可以參考:Air-D780L1-Y 產品說明書 。
今天我就用手把手的教程,教會你怎樣使用Air-D780L1-Y, 開發各種應用項目。
二、業務邏輯介紹
這里,先要告訴你一些前提條件,雖然聽著像是廢話, 但是如果你不知道的話,可能后面會比較懵逼,所以還是希望你能夠認真看完這一節。
這個項目的產品定義是:Air-D780L1-Y每隔5秒鐘,將溫濕度傳感器的數據上傳到合宙業務云平臺。
要想達到這個目的, 有必要先介紹一下這個項目的系統框架圖:
?
基本的操作和業務邏輯如下:
DTU整機為Air-D780L1-Y;
通過Luatools燒錄LuatOS-iRTU固件到Air-D780L1-Y中;
Air-D780L1-Y需要插入SIM卡;
Air-D780L1-Y通過RS485接口連接溫濕度傳感器;
WEB參數配置平臺中,綁定并且分組設備,然后配置運行參數;
Air-D780L1-Y開機后,連接WEB參數配置平臺,下載運行參數到整機中,然后自動重啟;
Air-D780L1-Y讀取溫濕度傳感器數據,并且定時上傳數據到合宙業務云平臺,可以在小程序中查看數據;
小程序也可以下發控制指令給Air-D780L1-Y;
在大概了解了業務邏輯之后,接下來我將帶你進入正式的動手實操階段!
三、準備硬件環境
3.1 硬件清單列表
準備一臺Air-D780L1-Y整機
?
準備一張可以上網的SIM卡,也可以使用自己的手機卡,插入到Air-D780L1-Y整機中;
準備一條USB數據線,必須要有數據傳輸功能,將外部的絕緣皮撥開之后,里面至少要有紅色、白色、綠色、黑色或者紅色、白色、藍色、黑色四根導線,用來燒錄LuatOS-iRTU固件到Air-D780L1-Y中;
準備一字和十字螺絲刀,用來拆裝Air-D780L1-Y和溫濕度傳感器;
準備一臺烙鐵和焊錫條,用于將USB數據線焊接到Air-D780L1-Y電路板上;
準備一臺溫濕度傳感器,用來采集溫濕度數據;
準備六根導線或者兩面都是公頭的杜邦線,用來給溫濕度傳感器供電以及連接Air-D780L1-Y和溫濕度傳感器;
準備一臺可以輸出10到30V的直流穩壓電源,用來給Air-D780L1-Y和溫濕度傳感器供電;
四、組裝硬件環境
使用螺絲刀將Air-D780L1-Y整機背面的四個螺絲拆下來,打開外殼;
插入可以上網的SIM卡;
找到Air780E模組下方的VB、DM、DP、GND四個焊點,將USB數據線焊接到這四個焊點上;
如下圖所示:
?
使用兩根導線將溫濕度傳感器和Air-D780L1-Y通過RS485接口相連,注意是A連接A,B連接B;如下圖所示:
使用四根導線分別引出溫濕度傳感器和Air-D780L1-Y的供電+和-,溫濕度傳感器的供電電壓范圍是10到30V,Air-D780L1-Y的供電電壓范圍是5到36V,所以將直流穩壓電源的電壓調節為10到30V即可,我這里調節的是12V,然后同時給溫濕度傳感器和Air-D780L1-Y供電,如下圖所示:
如果你完全按照以上步驟組裝,到這里就應該一切妥當了,可以再次對照上面這張圖片,看看是否組裝正確。
?
五、準備軟件環境
5.1 Luatools工具使用
要想燒錄代碼,先要下載合宙的強大的調試工具:Luatools;
使用方法:合宙Luatools實戰寶典:功能介紹+使用技巧全攻略-CSDN博客
如果你已經安裝使用過Luatools,可以直接跳過本小節;
Luatools下載地址為:https://doc.openluat.com/wiki/52?wiki_page_id=5071 ,如下圖所示:
Luatools 工具主要有如下幾個功能:
(1) 自動從合宙服務器獲取最新的合宙LuatOS-iRTU固件和標準模組固件;
(2) 燒錄固件和腳本;
(3) 查看和保存模組的USB口或者串口運行日志;
(4) 簡單的串口調試;
Luatools 下載之后,無需安裝,解壓到你的硬盤,點擊 Luatools_v2.exe 運行,出現如下界面,就代表 Luatools 安裝成功了(注意:運行Luatools后,會自動更新最新資源和版本文件,這時,你可以喝口水,耐心等待它更新完成):
?
5.2 LuatOS-iRTU固件
LuatOS-iRTU固件,是合宙采用LuatOS架構自主研發的DTU嵌入式軟件系統,已經被眾多DTU廠商采用,經過百萬級裝機設備的驗證,穩定可靠,廣泛應用于物聯網領域的各行各業;可以通過以下任何一種方式獲取這個固件:
訪問:https://gitee.com/openLuat/luatos-irtu/releases ,下載最新發布的文件名后綴是EC618.soc 的即可,例如下圖中紅框選中的文件.
2. 打開Luatools,點擊 菜單 1 LuatOS -> 1.2 資源目錄 ->1.2.1 Core固件目錄;
找到LuatOS_iRTU_Air780E目錄,從里面找最新版本的soc文件即可;
5.3 DTU管理系統
DTU管理系統,可以在線綁定你的DTU設備,對設備進行分組,對每個組內的所有設備配置運行參數(例如,連接什么服務器,多久上傳一次數據,上傳什么格式的數據);
如果你已經使用過DTU管理系統,可以跳過本小節;
訪問 dtu.openluat.com ,如果你已經有 dtu.openluat.com 或者 iot.openluat.com 的賬號,
可以直接使用這兩個賬號中的任何一個賬號登錄,
如果沒有賬號,點擊下圖中的 立即注冊 按鈕注冊一個賬號;
5.3.1、 在DTU管理系統中創建分組
此時,你已經擁有了一個DTU管理系統的賬號,登錄 dtu.openluat.com 之后,第一個界面大概是下面這個樣子:
點擊左邊菜單,設備管理->分組管理,打開如下界面:
看到這里,你可能會有疑問:這里的分組是做什么用的呢?
其實你可以把分組理解為項目,假設你的DTU管理系統賬號下有100個設備,這100個設備中:50個設備是智慧農業灌溉項目,50個設備是氣象站項目;
這時你就需要創建兩個分組,分別對各自的50個設備進行管理。
在這個演示項目中,我使用的是Air-D780L1-Y整機采集溫濕度數據,然后上傳到合宙業務云平臺,所以我按照下圖提示,點擊右上方的 添加分組 按鈕,新建一個 Air-D780L1-Y_合宙業務云平臺_溫濕度數據采集 的分組:
5.3.2 在DTU管理系統中綁定設備并且分組
創建好 Air-D780L1-Y_合宙業務云平臺_溫濕度數據采集 的分組之后,接下來要做的是把你的設備IMEI添加到這個分組中;
5.3.3 查詢設備IMEI是否在你的賬號下
在添加IMEI到分組之前,首先要保證這個IMEI在你的賬號下;
怎么查詢IMEI是否在你自己的賬號下呢?
點擊左邊菜單,設備管理->設備列表,打開如下界面:
在這個界面中,輸入你的設備的IMEI,然后點擊搜索按鈕進行查詢;
如果你不知道你的Air-D780L1-Y的IMEI,參考以下兩種方法:
1、Air-D780L1-Y外殼上如果有IMEI號,直接使用;
2、如果已經拆掉外殼,直接使用板子上Air780E模組標簽上的IMEI號;
如果設備IMEI不在你的賬號下,直接調過本小節剩余內容;
如果設備IMEI在你的賬號下,參考下圖,將設備劃分到你期望的分組中,從5.3.1 章節繼續閱讀;
5.3.4 自助綁定并且分組設備IMEI到你的賬號下
我演示使用的Air-D780L1-Y的IMEI是864710071339591,在我的設備列表下,沒搜索到這個設備;
5.3.5 下載自助綁定和分組的專屬固件
不要灰心,接下來教你一種自助綁定并且分組設備到你賬號下的方法,點擊 設備管理->IMEI與DTU賬號綁定,按照下圖操作:
點擊 固件生成 按鈕之后,耐心等待一會兒,后臺在自動生成固件,大概20秒以內,就可以生成好并且下載成功,我這里下載下來是一個壓縮包
解壓之后,里面有以下文件
我們本次演示使用的是Air-D780L1-Y整機,所以要選擇后綴是EC618.soc的那個文件,也就是iRTU_1.0.5_LuatOS-SoC_V1108_EC618.soc
(此處注意:你操作時只需要認準EC618.soc的后綴就行,和我這里的文件名不一定完全一致);
六、使用Luatools將專屬固件燒錄到Air-D780L1-Y中
準備好iRTU_1.0.5_LuatOS-SoC_V1108_EC618.soc固件后,
接下來請再次打開合宙強大的調試工具Luatools,使用Luatools將這個固件燒錄到Air-D780L1-Y中,
此時再來看下之前已經組裝好的硬件環境,將已經焊接到Air-D780L1-Y上的USB數據線,插入到電腦的USB口中,直流穩壓電源上電(注意此處設置的是12V輸出)。
如果電腦的設備管理器中新增3個端口,表示Air-D780L1-Y已經正常開機,并且USB數據線通信正常
接下來我們就要使用Luatools將固件燒錄到Air-D780L1-Y中,
燒錄之前Air-D780L1-Y需要先進入boot模式,先給直流穩壓電源斷電,
然后一直按下Air-D780L1-Y板子上的BOOT按鍵,再給直流穩壓電源上電,
此時電腦的設備管理器中如果新增了1個端口,而不是之前的3個端口,
則表示已經進入了boot模式。
(注意:boot模式會持續20秒左右,如果20秒內沒有發起燒錄固件的工作,會自動退出boot模式;此時如果還要燒錄固件,重新操作進入boot模式)
打開Luatools后,按照下圖配置并且選擇要燒錄的固件文件:
在最后一步點擊 下載 按鈕時,要確保Air-D780L1-Y仍然處于boot模式,如果開始下載,下載界面如下圖所示:
下載成功后的界面如下圖所示:
七、Air-D780L1-Y自動重啟并且自動完成設備的綁定和分組
下載成功后,Air-D780L1-Y會自動重啟運行,部分運行日志和解析見下圖所示:
此時我們再回到DTU管理系統,看看864710071339591的imei是否已經自動綁定并且自動分組
真香,果然已經成功了,恭喜你!
看完本小節,有老鐵可能會問,為什么綁定設備這么麻煩呢?在這里請允許我解釋幾個問題:
1、為什么不讓用戶隨便輸入一個IMEI就能方便地綁定到自己的賬號下呢?
這樣風險很高,萬一你把別人設備的IMEI綁定到你自己的賬號下,豈不是亂套了?
2、如果我有批量的設備需要綁定,怎么處理呢?
無論你有多少臺設備,都有兩種綁定方法:
(1) 參考本小節,采用燒錄定制固件的方式自助綁定;這種方法適用于設備數量較少的場景;
(2) 找到合宙人員,告知你需要綁定的設備IMEI,合宙人員會核實這些IMEI是否屬于你,如果核實通過,合宙人員在后臺幫你綁定到你的賬號下;這種方法適用于所有場景,尤其是設備數量很多的場景;
八、給設備燒錄通用的LuatOS-iRTU固件
參考5.3.4 章節下的 使用Luatools將專屬固件燒錄到Air-D780L1-Y中 小結,
將 5.2 LuatOS-iRTU固件 章節中準備的通用LuatOS-iRTU固件
(我這里的固件名是iRTU_1.0.6_LuatOS-SoC_V1110_EC618.soc,你燒錄時,使用最新版本的固件就行),燒錄到Air-D780L1-Y中。
燒錄成功后,Air-D780L1-Y自動運行,Luatools的日志界面如下
出現這個提示,說明你的設備在DTU管理系統中沒有配置任何運行參數,不會連接你期望的業務云平臺,也沒有和具體項目有關的任何業務邏輯;
這一切都要靠在DTU管理系統中對分組進行配置參數實現。
九、配置運行參數
在DTU管理系統中,點擊下圖中的參數配置
參數配置的總體頁面如下
接下來將根據本項目的具體業務邏輯,來配置參數
9.1 基本參數
9.2 串口參數
9.3 網絡通道參數
9.4 預置信息
GPIO,GPS的參數是默認配置,不用修改
9.5 數據流
發送數據流模板代碼
function--數據流固定格式 if not _G.s_report_interval then _G.s_report_interval = 5 end if not _G.s_485_read_interval then _G.s_485_read_interval = 0 end _G.s_485_read_interval = _G.s_485_read_interval+5 if _G.s_485_read_interval?_G.s_report_interval then return nil end --將串口接收的數據賦值給str local str= ... local addr = str:sub(1, 1)--地址位 local fun = str:sub(2, 2)--功能碼 local byte = str:sub(3, 3)--有效字節數 local humi =str:sub(4,5)--濕度值 local temp = str:sub(6,7)--溫度值 local idx, crc = pack.unpack(str:sub(-2, -1), "H") local tmp = str:sub(1, -3) --crc校驗原理前面所有位合起來校驗后的值等于上報的數據的最后校驗位 if crc == crypto.crc16("MODBUS", tmp) then log.info("crc校驗成功") -- _無用,addr地址碼,fun功能碼,byte返回有效字節數,humi濕度,temp溫度 -- pack.unpack 將lua字符串分解為不同的數值 -- "??>b3h2"表示在tmp字符串中,從tmp第一個字節開始,取三個字節,取兩個短整數 local _,addr,fun,byte,humi,temp = pack.unpack(tmp, ">b3h2") --如果功能碼為0x03,則為讀取溫濕度值 if fun == 0x03 then --給表中添加一個叫做humi的元素,并將上文中的humi變量的值賦給該元素 humi = humi/10 --pack.unpack后已經將該數轉換成了十進制的整數,需要將其除以10才是真實的濕度百分比數 --給表中添加一個叫做temp的元素,并將上文中的temp變量的值賦給該元素 temp =temp/10 --pack.unpack后已經將該數轉換成了十進制的整數,需要將其除以10才是真實的溫度值 log.info("溫濕度",humi,temp) end local la,ln = create.getRealLocation() if la==nil or la=="" then la = "31.131710" end if ln==nil or ln=="" then ln = "121.548860" end log.info("la,ln",la,ln,tonumber(la),tonumber(ln)) if not fake_la then fake_la = 31.131710 end if not fake_ln then fake_ln = 121.548860 end local payload = { location = {lat=tonumber(la),lng=tonumber(ln)}, --location = {lat=fake_la,lng=fake_ln}, temperature = temp, humidity = humi, pm2_5 = 16, pm10 = 18, interval = "INTERVAL_".._G.s_report_interval.."S", switch_state1 = "ON", switch_state3 = "ON", brightness1 = 10, brightness2 = 20, work_mode = "WARM" } _G.s_485_read_interval = 0 fake_la = fake_la+0.0002 fake_ln = fake_ln+0.0002 --將該表轉換成json格式的字符串并發送給服務器 return json.encode(payload) else --如果crc校驗失敗則將"crc error"發送給服務器 log.info("crc校驗失敗") return nil end end--數據流固定格式
接收數據流模板代碼
function local str=... log.info("recv",str) if str:sub(1,22)=='{"interval":"INTERVAL_' then local interval = str:match("(%d+)") log.info("interval",interval) _G.s_report_interval = tonumber(interval) end if str:sub(1,17)=='{"method":"reset"' then sys.restart("server control") end return str,1 -- 返回值 end
9.6 預警
默認配置,不用修改
9.7 任務
任務1代碼
function gpio.setup(22,1)--打開485轉TTL電平芯片的供電 end
9.8 重要提醒
所有參數配置結束之后,記得點擊右下角的確認按鈕,否則不會生效!!!
所有參數配置結束之后,記得點擊右下角的確認按鈕,否則不會生效!!!
所有參數配置結束之后,記得點擊右下角的確認按鈕,否則不會生效!!!
9.9 在合宙業務云平臺配置項目和設備參數
因合宙業務云平臺目前不對外開放,只能由合宙技術人員使用,所以此處省略很多內容:
需要使用合宙業務云平臺的用戶,可以再仔細看下本文檔中心的1.2和1.5章節。
十、重啟設備,下載最新參數,驗證運行邏輯
此時你可以直流電源斷電再上電重啟下Air-D780L1-Y;
或者通過Luatools的重啟按鈕重啟下設備
設備重啟后,會自動連接DTU管理系統,下載最新參數,然后安排參數的配置邏輯進行;
Luatools中的運行日志如下
此時你可以通過?:??????????????????????????????????????????????????合宙DTU整機產品線文檔中心
?可以體驗小程序
動態演示效果見以下動畫:
?
更多詳細資料詳見:??????????????????????????????????????????????????合宙DTU整機產品線文檔中心
審核編輯 黃宇
?
-
物聯網
+關注
關注
2909文章
44557瀏覽量
372757 -
數據采集
+關注
關注
38文章
6053瀏覽量
113620 -
溫濕度傳感器
+關注
關注
5文章
579瀏覽量
35706 -
DTU
+關注
關注
3文章
436瀏覽量
25222 -
云平臺
+關注
關注
1文章
1302瀏覽量
38942
發布評論請先 登錄
相關推薦
評論