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