银尔达IOT平台入门实例

 银尔达IOT物联网开发平台:iot.yinerda.com

更多资料访问:https://yinerda.yuque.com/yt1fh6/iot

功能支持4G设备的连接,管理;支持设备数据点定义,解析,处理,储存,统计;支持微信小程序/APP管理对接;通过电话、短信、微信、邮件等报警信息通知;支持服务与服务器对接;支持服务器边缘计算数据;支持私有化部署,log替换,特殊功能定制。


银尔达IOT平台是银尔达自主研发的物联网平台。包括设备连接,设备管理,WEB管理,小程序/APP管理。

能够快速做设备连接,原型评估,功能测试,批量设备管理。

同时对客户需求安全性,私有化良好的支持,可以给客户服务器上单独部署系统,可以实现单台服务器5000台设备容量,也可以部署集群,扩展设备连接量。

一、简介

本文档记录企业用户如何在IOT平台如何创建产品,获取设备连接参数,设备如何配置参数,管理设备,调试设备;终端用户如何管理在APP或者WEB上管理设备。

IOT的使用方法一样,唯一区别的就是对于不同产品的不同功能和任务的区别。

本教材涉及到2个平台,一个是IOT平台(iot.yinerda.com),一个是DTU平台(dtu.yinerda.com)。

IOT平台是创建产品,定义数据,定义逻辑,观察数据的的业务平台。

DTU平台是配置4G设备参数,让4G设备连接IOT平台的工具。

二、注册账号

https://iot.yinerda.com 注册账号,支持手机注册要和邮箱注册。如果手机手不到验证码,就建议邮箱注册。

手机收不到验证码的情况一般是拦截或者携号转网的可能收不到。

注册的时候密码必须是3种字符必须包含数字,字母和特殊符号保证账号安全。

三、账号登录

WEB注册的账户,系统默认就会注册企业角色和终端角色用户。账号登录如果是设计产品选择“企业用户”登录,如果是用产品的选择“终端用户”登录。

如果是小程序上注册的用户,只能使用“终端用户”登录。

四、编辑应用

系统进入的时候默认只有一个"公版应用",匹配的是公版小程序,可以用来测试和小规模使用,对自有品牌要求不高的情况。如果要创建自己的小程序,需要创建私有应用这个需要费用。

进入应用后,就可以编辑产品分类,创建产品,授权设备了。

五、创建产品分类

产品分类必须创建,并且创建二级分类,然后才能创建产品。创建产品分类是为了方便管理多个产品使用。

如果是私有应用,还会在小程序显示产品类型列表,方便宣传自己的产品。

六、创建产品

创建产品的时候,需要定义数据点,编排UI细节可以参考集成教程的相关章节。

这你使用模板的创建方式,模板是银尔达提前创建的数据点和UI,直接使用,可以用来演示看现象。后续根据自己需求修改添加数据点,编辑UI等。这里以“虚拟测试器”为模板创建产品。这个“虚拟测试器”演示数据点,UI等功能,不与任何实际硬件资源相关,任何设备都可以测试。

创建好的产品,进入详情,可以设置产品图标,数据点,UI排序,这你我们不去修改任何配置,接着向下操作。

七、授权设备

在设备管理,设备列表里面授权设备,设备编码使用设备IMEI作为编码,方便管理。新账户默认有1台1年的授权名额,用于测试,可以直接添加。

在设备列表里面就会显示未激活。这时候IOT的工作已经结束了,需要在DTU平台配置硬件,然后让设备连接IOT平台。

八、DTU配置参数使用方法

进入DTU配置平台https://dtu.yinerda.com 创建分组,添加设备,配置参数

基本资料参考教程https://yinerda.yuque.com/yt1fh6/4gdtu/textbcabgx9evwvd

九、开始配置DTU参数

9.1、添加设备

使用I微信扫码模块上的二维码,获取IMEI,MEI添加设备,添加后会有个产品型号,这个产品信号在后面的分组里面会用到。就是创建分组需要选择的分组型号。

9.2、创建分组

9.3、分组分配设备

勾选分配设备后就可以点击返回,进入分组列表,然后进入“参数配置”进行配置参数

9.4、配置基本参数

9.5、配置串口参数

如果涉及到串口通讯和数据采集的,需要按需求配置。不同的硬件资源不一样。

9.6、配置网络通道连接参数

网络通道选择MQTT协议,按连接信息的提示配置。注意后面的设备ID如果是用的模块的IMEI,使用${IMEI}去替换。这里就就体现出来使用IMEI的方便性。后面所有一个产品的设备都加到这个分组里面就可以了。

DTU的MQTT服务器连接参数在IOT平台,设备管理,设备列表,详情,连接信息查看。

9.7、配置网络通道注册包

网络通道参数的注册包里面需要包含IMEI,ICCID是必须的,方便你获取SIM卡信息,管理SIM卡。

注册包也是一个设备重连平台的标记,可以通过注册包去观察重连。

注册包格式是{"cmd":"dreg","did":"0","IMEI":"${IMEI}","iccid":"${ICCID}","pver":"test","fver":"DTU_1.1.20","times":"${TIMEM}"}

其中cmd字段是固定的,did是0是固定的,其他的pver是硬件版本,fver是固件版本可以根据自己需求去写。

9.8、配置任务

任务就是一段运行在DTU内部的代码。实现IOT平台命令的解析,赋值,数据上报。里面可以实现串口数据的读取解析,然后按IOT平台的数据规则上报就能显示。同时按IOT平台的数据格式解析就能设置参数,控制设备。

IOT通讯协议参考:https://yinerda.yuque.com/yt1fh6/iot/qwmrgk2simzto6ai

这个可以自己写,也可以提需求找我们工程师写。

把下面的任务代码,拷贝到DTU的任务里面用来测试,拷贝的时候点击复制代码即可。

function
	local tname="TEST"
	log.info(tname,"start")
	local nid=1
	local uid=1
	PronetStopProRecCh(1)
	UartStopProRecCh(1)
	--IOT系统保留字段
	local pver,fver,rssi,pele="TEST","DTU.1.1.21",50,50
	--自定义字段
	local sw1=0
	local in1=0
	local vin=0
	local mode=0
	local temp=0
	
	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

	--解析服务器
	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.sw1 then 
					   in1=p.sw1
					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) --发给服务器应答数据	
					lasttime = os.time()
				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是百分比表示				
					--业务字段
					b.param.sw1=sw1   --这些是模出来的的数据,实际场景需要根据硬件API去获取
					b.param.in1 =in1  --这些是模出来的的数据,实际场景需要根据硬件API去获取
					vin =vin+1
					b.param.vin =vin --这些是模出来的的数据,实际场景需要根据硬件API去获取
					b.param.mode =mode
					temp=temp+1
					b.param.temp = temp --这些是模出来的的数据,实际场景需要根据硬件API去获取
					local s = json.encode(b)
					log.info(tname,"sgetbck data",s)
					PronetSetSendCh(nid,s) --发给服务器应答数据
					lasttime = os.time()
					
				elseif obj.cmd =="dgetbck" then --服务器应答设备获取参数的命令,可以处理也可以不出来,应答表示服务器收到了,没应答你可以重发
					
				elseif obj.cmd =="dupbck" then --服务器应答设备上报参数的命令
				
				end 
			end 
		end
		
		--主动上报数据,一般是检查状态变化后或者周期上报,IOT 要求5分钟内必须上报数据要不然会提示离线
		if os.time() -lasttime > 180 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=50 --注意pele是百分比表示,自己可以用vin去转换				
			--业务字段
			b.param.sw1=sw1   --这些是模出来的的数据,实际场景需要根据硬件API去获取
			b.param.in1 =in1  --这些是模出来的的数据,实际场景需要根据硬件API去获取
			vin =vin+1
			b.param.vin =vin --这些是模出来的的数据,实际场景需要根据硬件API去获取
			b.param.mode =mode
			temp=temp+1
			b.param.temp = temp --这些是模出来的的数据,实际场景需要根据硬件API去获取
			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

当操作上面的步骤后,就完成了DTU的配置,点击保存参数。

9.9、更新参数

完成上面的参数配置后,点击保存,然后从新给设备上电,设备会自动更新参数。重启设备后,等30秒左右,刷新页面,或者点击查找,检查参数是否更新。如果更新了到IOT平台观察设备是否在线。

9.10、设备上线激活

观察设备是否IOT在线,如果SIM卡,网络正常,IOT平台就会显示设备在线。设备的到期时间就按按设第一次上线开始计算。

9.11、设备测试

当设备上线后,就可以在平台和小程序上面操作控制设备了。使用微信扫码设备二维码就可以绑定设备。企业用户注册的只会默认注册了终端用户角色,用注册的号码和密码登录即可。

十、高级的产品设计方法

高级的产品设计,其实就是产品数据点定义,UI定义,然后使用任务解析数据实现逻辑。这些就参考简单任务和高级任务的教程。只有创建产品选择的模板和拷贝的任务有区别。其他步骤一样。

银尔达IOT平台可以方便的实现各种控制,数据显示等简单场景,可以定制UI,定制任务大大缩短产品研发周期。复杂场景一般需要定制服务器,定制业务系统也可以。

需求有很多,无非就是围绕串口采集和控制,继电器控制,输入检查,模拟量检查,然后实现一定需求的业务逻辑。可以根据自己的需求和工程师沟通评估是否能实现,快速评估。

可电话联系:杨洋 13560789567。

IOT平台可实现的常见项目和功能:

功能

说明

工作量

简单资源控制

单继电器远程控制,远程断电,断油,工程收款控制

很容易

30分钟完成

输入报警器,设备状态检测

很容易

30分钟完成

4-20ma,1-10V ,1-5V 模拟量传感器的数据采集检测

很容易

30分钟完成

串口采集和控制

modbus协议的传感器数据采集,比如电表,水表,气压,水位传感器等数据采集

简单

0.5天完成

modbus协议传感器的数据采集和远程控制

复杂

1~2天完成

项目类型

使用RS485对接温控器,实现温度参数的设置和参数的读取

复杂

1个星期完成

使用RS485对接变频器控制正反转,检查电压,电流,故障

复杂

1~2个星期完成

智慧机房监控,RS485采集电压,功率电流,实现继电器的远程控制启停,实现环境温度湿度的监控,风机电机的监控

复杂

1~2个星期完成

智慧农业大棚控制,RS485串口屏幕显示,继电器控制,输入检查,传感器的检查,定时灌溉

困难

一个月完成

智慧家电,比如咖啡机,串口屏控制显示进度,一键冲泡,后台形成记录,远程锁机

困难

一个月完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值