本部分内容将以MQTT协议接入的设备为例,介绍设备通过定义物模型“WIFI定位”系统功能点实现设备定位和经纬度数据推送的操作过程。
用户首次使用WIFI定位服务时,需要登录开发者中心,选择增值服务 > WIFI定位,开通WIFI定位服务。
若您直接在产品开发阶段添加了系统功能点“WIFI定位”,但没有开通WIFI定位服务,将无法正常调用位置定位提供的开放API或者进行经纬度数据推送。
选择设备接入 > 产品管理 > 产品详情,为产品添加系统功能点“WIFI定位”。
该功能点为struct结构体数据类型,结构体的成员(Member)如下:
字段 | 说明 |
---|---|
imsi | 移动用户识别码 |
serverip | 设备接入基站时对应的网关ip |
macs | 可以接收到的热点mac信息 |
mmac | 已连热点mac信息 |
smac | 手机mac码 |
idfa | IOS手机的idfa |
此处采用MQTT.fx模拟设备接入物联网平台。请前往mqtt.fx官网进行下载,本文档使用的是MQTT.fx Version 1.7.1客户端软件。
您也可以使用平台提供的设备调试进行上下行数据调试。
您已经通过设备接入服务在产品下添加了相应的MQTT设备。
打开MQTT.fx客户端,进入客户端配置页面。
设置Profile Name、接入地址与端口、Client ID、User Name与Password,其中参数设置方式如下:
本例为测试环境ip端口,请修改为线上环境对应的ip端口
1、加密:183.230.102.116:8883
2、不加密:218.201.45.7:1883
如果采用加密方式,需要设置SSL/TLS,选择CA certificate file,导入证书
配置完成后,在配置文件下拉列表中选择配置MQTT相应项目,点击conncet,切换到开发者中心,设备在页面处于在线状态。
为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统topic获取属性上报结果消息,属性上报回复topic为:
$sys/{pid}/{device-name}/thing/property/post/reply
本例中topic为:$sys/0miYdTzp2i/device1/thing/property/post/reply
“WIFI定位”系统功能点为“属性”类型,属性上报的topic为:
$sys/{pid}/{device-name}/thing/property/post
本例中topic为:$sys/0miYdTzp2i/device1/thing/property/post
上报数据成功后,订阅的属性上报会返回success。
OneJSON请求数据格式如下:
{
"id": "1",
"version": "1.0",
"params": {
"$OneNET_LBS_WIFI": {
"value": {
"macs": "FC:D7:33:55:92:6A,-77|B8:F8:83:E6:24:DF,-60",
"serverip": "10.2.166.4",
"imsi": "352315052834187",
"mmac": "FC:D7:33:55:92:6A,-80",
"smac": "E0:DB:55:E4:C7:49",
"idfa": "583D2BB0-B19C-4A9A-A600-2A1EB2FB7E39"
}
}
}
}
设备上报数据后,可在设备接入 > 设备管理 > 设备详情中查看该功能点数据上报记录。
平台支持通过HTTP推送、消息队列MQ推送服务向企业服务器推送设备经纬度数据。
您需要在HTTP数据推送和消息队列MQ中创建相应的实例才可以添加推送规则。
此处以HTTP数据推送为例。
1)创建项目
使用规则引擎对数据定义推送规则时,需要先创建项目,并将设备添加到项目中(设备已绑定到项目可跳过此步骤)。
2)添加推送规则
3)接收推送消息
配置推送规则后,当设备上报WiFi信息时,平台将会向企业服务器根据自定义规则推送消息源数据。
1)设备上报基站信息后,您可以在开发者中心WIFI定位控制台页面查询设备的位置。
2)或者通过平台提供的开放API进行位置查询。