银尔达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文章
383浏览量
24615 -
定位器
+关注
关注
2文章
191浏览量
20021
发布评论请先 登录
解码工业通讯的“黑科技”:阀门定位器的Profinet变身之谜
震惊!耐达讯自动化PROFIBUS转光纤技术竟能让阀门定位器“起死回生”
永铭 3.8V锂离子超级电容:破解集装箱定位器低温续航难题的最佳选择
雷卯电子二轮车定位器电池静电浪涌防护方案
GPS定位器供电DCDC降压恒压芯片H6217L 低功耗 峰值电流大60V 80V 90V100V
雷卯电子二轮车定位器电池静电浪涌防护方案
DCDC降压恒压芯片SL9486A 宽输入5V-100V降压4.2V、5VGPS定位器电源专用
PUYA普冉NOR Flash助力定位器性能提升
揭秘车载雷达定位器气密性检测仪的工作原理
数字电磁阀门定位器的使用优势与传统的模拟板不同
爱普生SG5032VAN(X1G004261)差分晶振在GPS定位器中的应用
定位器气密性检测仪的具体操作流程
P75.Z200S/K系列大行程、高精度压电物镜定位器
拆解车上GPS定位器

常供电定位器示例
评论