?銀爾達IOT物聯網開發平臺:iot.yinerda.com
更多資料訪問:https://yinerda.yuque.com/yt1fh6/iot
功能支持4G設備的連接,管理;支持設備數據點定義,解析,處理,儲存,統計;支持微信小程序/APP管理對接;通過電話、短信、微信、郵件等報警信息通知;支持服務與服務器對接;支持服務器邊緣計算數據;支持私有化部署,log替換,特殊功能定制。
注意:任務可以自己寫,也可以提需求找工程師實現,如果涉及到多個傳感器等復雜應用,建議我們工程師給你實現,快速,穩定,靠譜。
一、功能介紹
本教程任務實現銀爾達GPS模塊的GPS定位數據上報,支持的產品型號:
| 型號 | 功能 |
| G2100W | GPS北斗定位,1路RS232,1路RS485,帶外殼 |
| G2111Y | GPS北斗定位,1路高電平輸入,1路NPN輸出,1路RS485,帶外殼 |
| G2100C | GPS北斗定位,1路TTL串口,外置天線,核心板 |
| G2100C-P | GPS北斗定位,1路TTL串口,板載天線,核心板 |
| G2100Y-P | GPS北斗定位,1路RS485串口,板載天線,核心板 |
| GNSS1-P | GPS北斗定位,1路高電平輸入,1路NPN輸出,帶外殼 |
| G2200 | GPS北斗定位,電池供電,充電,帶外殼 |
注意輸入輸出的還可以自己內部實現聯動,比如輸入觸發后,控制繼電器輸出等,這部分邏輯可以自己實現,比較簡單,也可以找工程師實現。
注意擁有串口的設備,還可以擴展各種傳感器,比如讀取溫濕度,液位,電表,功率等數據上傳監控,并且可以和繼電器,輸入等實現聯動控制,這部分特殊邏輯比較復雜,如果有需要可以提需求讓工程師給你對接傳感器功能。
二、顯示的UI效果
2.1、小程序界面
小程序布局默認UI,狀態界面。

?

編輯

?

編輯
2.2、WEB界面
設備數據里面能看到當前數據點的值

?

編輯
三、任務代碼
產品創建,DTU參數配置參考《平臺入門實例(必看)》教程,里面講解了完整的產品創建,數據點定義,設備授權,設備配置,參數更新等流程。然后在把本教程創建產品的時候使用模板“ 常供電定位器 ”創建,已經設置了數據點和UI,然后把下面的任務拷貝到DTU的分組任務里面,上電更新參數即可,不需要在額外操作。
function local tname="GPS" log.info(tname,"start") local nid=1 local uid=1 PronetStopProRecCh(1) UartStopProRecCh(1) --IOT系統保留字段 local pver,fver,rssi,pele="GPS","DTU.1.1.21",50,50 --自定義字段 local vin=0 local uptime =60 local lasttime =os.time() local needdup =1 local sdid =1 --查詢table 數組里面是否有某個變量 function CheckNameInTable(t,value) for i, v in ipairs(t) do if v == value then return true end end return false end --通過CSQ獲取信號強度的函數 function TaskGetRssi() local csq = mobile.csq() local r =0 if csq > 29 then r = 100 elseif csq > 25 then r = 90 elseif csq > 22 then r = 80 elseif csq > 20 then r = 70 elseif csq > 18 then r = 60 elseif csq > 16 then r = 50 elseif csq > 14 then r = 40 else r = 0 end return r end uptime = fskv.get("uptime") or 60 --解析服務器 while true do --接收服務器下發的數據 local netr = PronetGetRecChAndDel(nid) if netr then log.info(tname,"netr data",netr) --解析IOT模型數據服務器下發的是JSON local obj,r =json.decode(netr) if r and obj and obj.cmd and obj.did then --判斷關鍵字段是否缺失,然后根據自己定義的數據點去解析字段做邏輯 if obj.cmd =="sset" then --服務器設置參數 local p = obj.param --把param的值取出來存起來后面做邏輯,也可以一再這里做邏輯,最好不要做延遲動作的邏輯,否則和阻塞系統 if p.uptime then uptime = p.uptime fskv.set("uptime",uptime) --保存周期上報時間 end --應答服務器 local b={} b.cmd="ssetbck" b.did=obj.did --注意這個did需要和服務器下發的did一樣,表示應答對應的命令 b.rst=0 b.times =os.time().."000" --轉換成ms local s = json.encode(b) log.info(tname,"ssetbck data",s) PronetSetSendCh(nid,s) --發給服務器應答數據 elseif obj.cmd =="sget" then--服務器讀取一個或者多參數 local p=obj.param.datapoint local b={} --b是組裝應答的結構體 b.cmd ="sgetbck" b.did =obj.did b.rst =0 b.times =os.time().."000" --轉換成ms b.param={} -- param.xxx xxx就是服務器獲取的字段,當然如果流量足夠,可以直接返回設備全部的狀態給服務器 if CheckNameInTable(p,"imei") then b.param.imei=mobile.imei() end if CheckNameInTable(p,"iccid") then b.param.iccid=mobile.iccid() end if CheckNameInTable(p,"imsi") then b.param.imsi=mobile.imsi() end if CheckNameInTable(p,"pver") then b.param.pver=pver end if CheckNameInTable(p,"fver") then b.param.fver=fver end b.param.rssi=TaskGetRssi() --注意rssi是百分比表示 b.param.pele=100 --注意pele是百分比表示 --業務字段 local lng,lngt,lat,latt =GetGps() b.param.gps={lngt,latt} --浮點數據 local s = json.encode(b) log.info(tname,"sgetbck data",s) PronetSetSendCh(nid,s) --發給服務器應答數據 elseif obj.cmd =="dgetbck" then --服務器應答設備獲取參數的命令,可以處理也可以不出來,應答表示服務器收到了,沒應答你可以重發 elseif obj.cmd =="dupbck" then --服務器應答設備上報參數的命令 end end end --主動上報數據,一般是檢查狀態變化后或者周期上報,IOT 要求5分鐘內必須上報數據要不然會提示離線 if os.time() -lasttime > uptime then --沒任何數據交互180秒上報一次 lasttime = os.time() needdup =1 log.info(tname,"heart up") end if needdup ==1 then local b={} --b是組裝應答的結構體 b.cmd ="dup" b.did =sdid.."" b.times =os.time().."000" --轉換成ms b.param={} b.param.rssi=TaskGetRssi() --注意rssi是百分比表示 b.param.pele=60 --注意pele是百分比表示 local lng,lngt,lat,latt =GetGps() b.param.gps={lngt,latt} --浮點數據 local s = json.encode(b) log.info(tname,"dup data",s) PronetSetSendCh(nid,s) --發給上報發給服務器 needdup =0 sdid =sdid+1 --每次發送后did要與上一次不一樣 lasttime = os.time() end sys.wait(100) end end

?審核編輯 黃宇
-
供電
+關注
關注
1文章
392瀏覽量
24701 -
定位器
+關注
關注
2文章
191瀏覽量
20171
發布評論請先 登錄
SL3160HB GPS 定位器專用芯片:150V 寬壓 + 1.8A 輸出,車載 / 戶外定位穩定供電核心
解碼工業通訊的“黑科技”:閥門定位器的Profinet變身之謎
震驚!耐達訊自動化PROFIBUS轉光纖技術竟能讓閥門定位器“起死回生”
永銘 3.8V鋰離子超級電容:破解集裝箱定位器低溫續航難題的最佳選擇
電動車GPS定位器電源芯片SL9486A 高性能100V/3A電流降壓IC
雷卯電子二輪車定位器電池靜電浪涌防護方案
GPS定位器供電DCDC降壓恒壓芯片H6217L 低功耗 峰值電流大60V 80V 90V100V
雷卯電子二輪車定位器電池靜電浪涌防護方案
DCDC降壓恒壓芯片SL9486A 寬輸入5V-100V降壓4.2V、5VGPS定位器電源專用
PUYA普冉NOR Flash助力定位器性能提升
揭秘車載雷達定位器氣密性檢測儀的工作原理
數字電磁閥門定位器的使用優勢與傳統的模擬板不同
常供電定位器示例
評論