stm32 m5311上传gps数据上onenet云平台实现地图定位

本文记录了使用M5311模块和STM32F103开发板进行NB-IoT项目的实践过程,包括onenet平台配置、设备注册、数据上传以及基于网页的地图应用创建等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

新手,第一次写博客,如有不足请大家见谅并指出。下面开始正文。

本文是帮一个朋友做一个NB_Iot的小东西这个过程的学习记录吧。

NB模块是M5311,然后还有一个stm32f103的最小系统开发板,后面开始了漫漫学习NB模块上云的道路。M5311我搜到的例程都是用onenet平台,自然而然地我也选择了onnet平台。

如何创建onenet产品和设备参考(我也是):基于STM32设计的NB-IOT电量采集系统(超级详细)--1.Onenet平台配置及M5311配置_Knight-20的博客-CSDN博客_m5311 stm32驱动整个教程的目录:一.Onenet平台配置及M5311配置(本章)二.STM32连接HLW8032采集电参数三.整体测试M5311核心板官网资料下载:http://dwz.date/aT8cHLW8032计量模块资料下载:链接:https://pan.baidu.com/s/1gN1PVEEKmINgDYsWVlPCTQ提取码:i59p关于HLW8032模块的操作可以参看这篇文章:https://blog.csdn.net/qishi3250/article/detai..https://blog.csdn.net/qishi3250/article/details/106522162?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164839477816782246489317%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164839477816782246489317&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-3-106522162.142^v5^pc_search_insert_es_download,143^v6^control&utm_term=stm32+m5311&spm=1018.2226.3001.4187创建完了设备后,可以先用串口模块连接M5311,尝试连接并手动上传一组坐标试试,(波特率要选择115200,5V供电,发送新行)具体流程及指令如下:

1.AT,测试模块是否正常

2.AT+SM=LOCK 关闭睡眠模式

3.AT+MIPLCREATE=49,130031F10003F2002304001100000000000010123138332E3233302E34302E33393A35363833000131F300087100000000,0,49,0 创建onenet实例吧

4.AT+MIPLADDOBJ=0,3336,1,"1",0,0 最重要的一步,创建一个location OBJ。

5.AT+MIPLDISCOVERRSP=0,3336,1,9,"5513;5514",指定OBJ的资源列表

6.AT+MIPLOPEN=0,300,30,向平台发起注册请求

7.AT+MIPLNOTIFY=0,0,3336,0,5513,1,9,"27.727559",1,1      //纬度,
AT+MIPLNOTIFY=0,0,3336,0,5514,1,10,"107.041806",0,0     //经度 遵义天鹅湖人民公园

随便用百度地图坐标拾取器拾取的一个定位。在遵义天鹅湖人民公园。

上面的3336,5513,5514必须是这几个数字,是IPSO的协议要求的,见下:

3336代表Location Object;5513代表纬度,5514代表上传的数据为经度。

 经过上面的7步后,你的设备资源列表应该就有两条数据了,如下:

后面的工作就是怎么用stm32代替你手工发的指令了,这些不写了。写一下怎么创建网页应用吧,因为我自己卡了很久……

经过上面步骤后,你应该创建完设备并且上传了一条gps数据了,然后后就可以创建网页应用了,现在onenet改版了(感觉这些云平台都是经常升级):

 新建项目:

 选择空白模板,输入项目名称项目描述并确认

任务创建成功如下,点击编辑按钮:

 

 

把基础地图拖入画布中并布局地图控件,点击地图控件-数据:

 接下来配置数据源:

第一次未上传数据添加数据源是不行的,(但是经过上面的7步后你是上传了一次数据的)可以直接添加数据源了。(按照onenet的规则应该是上传了gps数据后才能添加数据源 )

 数据类型选择onenet,后面就是填写你创建的设备的信息:

 下面是我创建好了的数据源:

最最重要的一步来了,就是配置这个数据过滤器,我搞了好久,直接见下图:要这样配置地图上才会显示你上传的坐标。

代码在这:

// 最终数据应该是一个数组

var result = [];

var dataPoint = null;

//循环处理选中的数据源的数据点

for (var i = data.length-1; i < data.length; i++) {

    // 从数据点中取出需要的数据,通过配置键值对使得数据格式符合要求

    dataPoint = {

        dev1: {

            lon: data[i].value.lon,

            lat: data[i].value.lat,

        },

    };

    // 将这个数据点添加进结果中

    result.push(dataPoint);

}

return result;

 别忘了点击保存。保存后地图上就会显示你的定位啦:

后面就上传数据,这个小红点就会跟着你动啦。

然后应该没啥了,剩下就写stm32发这些指令的程序让M5311上云并传数据就ok了。

 

 

 

### OneNET平台中的可视化地图功能及其实现方式 OneNET物联网平台提供了丰富的功能模块来支持设备接入、数据分析以及应用开发。其中,可视化地图作为一项重要的展示工具,在实际项目中有广泛的应用场景。以下是关于OneNET平台中可视化地图的相关功能及其可能的实现方式: #### 1. 地图控件绑定数据源 在OneNET平台上,可以通过API接口获取设备上传数据,并将其与地图控件进行绑定[^2]。这种绑定通常涉及以下几个方面: - **地理位置信息**:设备上报的位置坐标(经度和纬度),可以用于标注设备的具体位置。 - **实时状态更新**:通过周期性调用API接口,动态刷新地图上显示的内容。 #### 2. 数据可视化形式 为了更好地呈现地理空间上的分布情况,OneNET平台允许开发者采用多种形式展现数据,例如: - **标记点(Marker)** 使用图标表示单个设备或传感器节点的位置[^1]。这些标志可以根据不同的属性设置样式,比如颜色、大小等。 - **热力图(Heatmap)** 当存在大量密集型数据时,利用热力图能够直观反映某一区域内活动强度的变化趋势。 - **轨迹回放** 对于移动物体(如车辆、无人机),记录其历史路径并提供播放功能以便观察整个行程过程。 #### 3. 开发者自定义扩展 除了上述基础的地图展示外,用户还可以基于OneNET开放的能力自行定制更复杂的需求。这包括但不限于引入第三方地图服务提供商(如高德地图、百度地图)、叠加额外的信息层或者执行高级分析算法处理原始采集到的结果后再渲染出来给最终使用者查看。 ```javascript // 示例代码片段:假设我们已经获得了某个设备最新的GPS定位信息 function updateMap(deviceId, latitude, longitude) { var marker = L.marker([latitude, longitude]).addTo(map); marker.bindPopup("Device ID: " + deviceId).openPopup(); } ``` 以上就是有关如何借助OneNET达成可视化的地图效果的一些探讨说明。
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值