阿里云+微信小程序+GPS定位
导言:阿里云物联网板块是一个功能非常强大的板块,而且通俗易懂,非常容易上手,比华为的要稍微容易上手一些。本次,小编通过阿里云物联网平台,将SIM800M32的GPS经纬度坐标发送到阿里云平台,并通过规则引擎转发数据至微信小程序,然后在地图上显示位置。
关键词:阿里云IOT 规则引擎 SIM800M32 微信小程序
一:移植阿里云iot-embed 嵌入式C
本次使用的平台是MTK的2503平台,模块使用的是上海芯讯通的SIM800M32模块,该模块支持GPS功能。将阿里云的iot-embed SDK移植到该平台。移植的教程可以参考阿里的官方文档。作为个人的开发者,可以找淘宝卖家或者直接联系芯讯通客服让他们提供相关的模块以及已经实现MQTT功能的软件固件。
阿里云的官方文档网址为:https://help.aliyun.com/document_detail/42648.html?spm=a2c4g.11174283.6.568.3a8b1668589RaX
SIM800M32的AT命令流程为:
1、注网流程:
AT+CGREG?
+CGREG: 0,1
OK
AT+COPS?
+COPS: 0,0,"CHINA MOBILE"
OK
AT+SAPBR=3,1,"Contype","GPRS"
OK
AT+SAPBR=3,1,"APN","CMNET"
OK
AT+SAPBR=1,1
OK
AT+SAPBR=2,1
+SAPBR: 1,1,"10.80.195.168"
OK
2、生成gps数据:
AT+CLBS=4,1
+CLBS: 0,106.639799,29.488946,550,XX/XX/XX,XX:XX:XX
OK
3、通过mqtt发送gps数据:
AT+IMQTTAUTH="xxx","yyy","zzz"
OK
+IMQTTAUTH:OK
AT+IMQTTCONN
OK
AT+IMQTTSUB="/XXXX/XXXXX/user/gps",0
+IMQTTSUB: 1
OK
+IMQTTSUB: 1,0
AT+IMQTTPUB="XXXX/XXXXX/user/gps",0
+IMQTTPUB: 0
OK
通过以上步骤,gps数据已经成功发送到阿里云服务器上了。
二:在阿里云物联网平台创建产品和设备,并进行规则引擎的配置
1、这里因为是嵌入式C设备和微信小程序两个设备进行通信,所以需要创建两个产品和设备。
嵌入式设备是2G通信设备所以通信协议需要设置为蜂窝通信
微信小程序还是用原来的产品和设备名吧,这个我之前在《微信小程序一分钟上云》中演示过。
2、创建规则引擎:
通过创建规则去创建从topic到topic的数据流转。
这里我设置了两个自定义的主题,所以SELECT这里我设置为longitude as l, latitude as t。
如上图所示,我们的规则引擎就创建成功了。
三:编写微信小程序
1、这次微信小程序需要用到百度地图组件,所以我开通了百度的SDK权限。方法如下:
在百度地图最下方找到地图开放平台,并在开发文档中找到微信小程序JavaScript API。根据开发文档进行设置,这里我们使用的逆地址解析功能。
微信小程序相关代码如下:
代码一:连接阿里云
bindSubmit: function(e) { // 引入包 var iot = require('../../dist/alibabacloud-iot-device-sdk.min.js'); // 定义云端创建的设备三元组信息,并使用协议声明,使用 "protocol": 'alis://' const sdk_device = { "productKey": this.data.key, "deviceName": this.data.name, "deviceSecret": this.data.secret, "protocol": 'wxs://', } wx.setStorageSync('longitude', longitude); wx.setStorageSync('latitude', latitude); // 连接云平台 let device = iot.device(sdk_device); // 当连接成功进入回调 device.on('connect', () => { console.log('连接成功....'); device.subscribe('/<productKey>/<deviceName>/user/currenttemp'); wx.redirectTo({ url: '../alimqtt/alimqtt', }) }); device.on('message', (topic, payload) => { console.log('topic:', topic); if (payload) { console.log('payload', payload); var jsonString = payload.toString(); console.log('payload.toString()', jsonString); var jsObject = JSON.parse(jsonString); console.log('payload.toString()', jsObject.l, jsObject.t); longitude = jsObject.l; latitude = jsObject.t; wx.setStorageSync('longitude', longitude); wx.setStorageSync('latitude', latitude); } });
代码二:在百度地图上定位
var that = this; // 新建百度地图对象 var BMap = new bmap.BMapWX({ ak: 'ekLPZDaZsGonChTnpUXkUDx56kfCjDgV' }); var fail = function(data) { console.log(data) }; var success = function(data) { wxMarkerData = data.wxMarkerData; wxMarkerData[0].latitude = wx.getStorageSync('latitude'); wxMarkerData[0].longitude = wx.getStorageSync('longitude'); that.setData({ markers: wxMarkerData }); that.setData({ latitude: wxMarkerData[0].latitude }); that.setData({ longitude: wxMarkerData[0].longitude }); } // 发起regeocoding检索请求 BMap.regeocoding({ fail: fail, success: success, iconPath: '../../img/marker_red.png', iconTapPath: '../../img/marker_red.png' }); },
四:最后的显示效果如下:
这是自己实实在在做出来的,就希望和感兴趣的一起交流学习,不喜勿喷,如果有感兴趣的可以关注微信公众号——物联网人家,获取完整的代码,谢谢

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖
近日,亚太CDN产业联盟主办的2019亚太内容分发大会在上海召开。本次大会以"5G分发"为主题,集结了CDN领域近千名行业领袖、专家参与。在会上,阿里云斩获“CDN领袖奖”、“技术突破奖”两项大奖。 阿里云CDN于2014年正式商业化,在行业率先推出“按需购买、按量付费、一键配置”的云CDN模式,打破传统CDN不透明的市场格局,引领了行业变革。之后,阿里云CDN通过几轮近乎疯狂的降价,腰斩国内CDN价格,释放科技普惠,降低大视频行业准入门槛,一路见证了直播、短视频的井喷式发展。其发展最为迅猛的阶段,增速曾达到传统CDN厂商的20倍。十年期间,阿里云CDN业务实现超1200倍的增长。 目前,阿里云CDN在全球部署2800+节点,具备130Tb带宽储备,服务于全球超30万客户,每天为超过百万的域名加速,承接数十亿次的刷新。 依托阿里巴巴丰富
- 下一篇
阿里云物联网平台计费问题处理
概述 随着物联网平台第一个预付费周期截止时间到来,很多用户都收到了:连接时长资源包和消息通信资源包到期的通知,这两个资源包的作用:物联网平台设备和云端连接和消息通信对应的资源包。下面主要介绍收到这个通知的影响及处理策略。 影响 如果不继续购买资源包,系统会默认切换到按量付费,如果账户有余额,不影响正常使用。没有余额请尽快充值,避免影响设备正常使用。 策略 1、资源包续费地址:链接 2、计费方式官方解释:链接 3、欠费说明 账单出账时间通常在当前计费周期结束后4小时内。 欠费时间24小时内,服务可保留使用。欠费时间超过24小时,服务将自动停止。为免服务停止影响您的业务,建议您在欠费24小时内续费。 若欠费时间超过24小时,您再次充值后即可继续使用服务,已连接的设备也将恢复通信。 4、资源包使用查看,查看地址 5、资源包自动续费管理 6、如果不再使用,直接到物联网平台管理控制台删除对应的全部设备和产品即可。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器