3.7 基于51单片机+MC20的路径显示【使用STC15W内核】
需要准备的硬件
- MC20开发板 1个
https://item.taobao.com/item.htm?id=562661881042 - GSM/GPRS天线 1根
https://item.taobao.com/item.htm?id=531979567261 - IPEX接口转SMA接口转接线 1根
https://item.taobao.com/item.htm?id=531979903836 - GPS有源天线 1根
https://item.taobao.com/item.htm?id=26241892024 - 中国移动或者联通的SIM卡一张,micro sim尺寸的
需要自备,如果只是测试GPRS可以购买物联网卡,该卡不能测试电话和短信功能
https://item.taobao.com/item.htm?id=562257211778 - DC9V1A电源一个
https://item.taobao.com/item.htm?id=41915338664
或者两节串联的18650电池
https://item.taobao.com/item.htm?id=530904849115 - USB-TTL模块 1个
https://item.taobao.com/item.htm?id=39481188174 - 杜邦线若干
https://item.taobao.com/item.htm?id=562848773709 - STC15W或者IAP15W最小系统板
https://item.taobao.com/item.htm?id=539809674723
使用代码源码位置:

功能:
使用STC15板子发送GPS定位的经纬度到中国移动的Onenet服务器,然后用网页端看地图路径
其中STC15的串口3用于和MC20模块指令交互,串口1用于下载和观看调试信息。
这个例程不用STC89来编写主要因为和服务器交互需要存储服务器返回的数据的数组比较大,
而普通的STC89C52RC只有512B的RAM空间,不能满足要求,另外STC15单片机有4组串口,用于调试
观看最终代码运行等情况时候比较方便。
测试流程:
- 打开中国移动的OneNet网站,注册账号并登陆,这里省略,相信大家都能搞定。
https://open.iot.10086.cn/ - 创建项目流程,请参考官方教程:
https://open.iot.10086.cn/doc/art243.html#66
但是最后一步要注意,我们需要选择
设备接入方式-->公有协议
设备接入协议-->HTTP
其它的都可以随意写,不影响测试 - 获取APIKEY

设备ID是在设备管理里面自己新建的,名称什么的都可以随便写,记录下这个ID

- 修改代码中的APIKEY和设备ID为自己的
code char device_id[] = "3225187"; //修改为自己的设备ID
code char API_KEY[] = "R9xO5NZm6oVI4YBHvCPKEqtwYtMA"; //修改为自己的API_KEY
- 代码编译正常通过
- 接线方式
STC15W MC20
3.3V ---> V_IO
GND ---> GND
GSM_TX ---> P0.0
GSM_RX <--- P0.1

7. 下载程序到单片机后打开串口调试助手,等待接收数据,这时只看到AT,没有看到回复,说明MC20模块没通讯上,或者没开机启动

8. 如果MC20模块已经启动,NET指示灯开始闪烁,就进入了交互指令阶段

上面的CPIN指令可以查询是否插入识别SIM卡,如果卡在这里,往下不执行,说明没识别你用的SIM卡,检查下是否为移动联通卡,或者是否卡插正确,
而CREG指令可以获取现在的SIM卡是否已经有服务信息了。
下面的读取NMEA协议的RMC数据,刚开始是没有数据填充的,需要GPS天线在室外,等待一会儿才能定位到
定外到后,我们可以看到PPS的指示灯开始闪烁,同时能看到GPS经纬度数据能解析出来了

然后我们会看到数据开始发送post给Onenet服务器

得到Onenet服务器的回复succ

9. 到这里就可以在Onenet后台看到发送上去的数据流了

我们能到名字为location的数据流,也可以展开看定位地图

这里因为刚开始定位卫星较少时候定位不准确,定位会有波动,当卫星数增加,GPS定位模式成3D定位时候,数据就会准确起来。
然后就可以自己出去走一圈看下路径记录了。
当我们出去不用电脑看调试信息时候,可以看STC15板子上的L指示灯,每上传一组定位数据,L的指示灯闪烁一下,所以当你看到L指示灯在切换状态,那说明至少已经发送数据了。
10. 当然你也可以自己研究下Onenet后台的应用,可以添加地图信息成为某个网页,网页可以直接公布给别人直接看定位,不过目前Onenet的应用只支持显示单个点。
另外也可以在Onenet官网最下面的二维码下载手机app,用手机观看定位效果。
以前app也可以看路径的,现在官方软件更新目前这个功能不让用,期待某一天更新版本重新能手机看路径。
上传一张显示路径的测试效果图

3.7 基于51单片机+MC20的路径显示【使用STC15W内核】的更多相关文章
- ET 与RETI 基于51单片机中断跳出指令“RETI”浅议
最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...
- 基于51单片机IIC通信的PCF8591学习笔记
引言 PCF8591 是单电源,低功耗8 位CMOS 数据采集器件,具有4 个模拟输入.一个输出和一个串行I2C 总线接口.3 个地址引脚A0.A1 和A2 用于编程硬件地址,允许将最多8 个器件连接 ...
- 基于51单片机个LCD1602的万年历程序
小白 第一次跟新博客 基于51单片机和LCD1602的万年历程序 可实现走时和调时功能 有简单的1602菜单制作 欢迎大家交流 LCD1602和51单片机的连接方法 RS = P3^5; //数据/命 ...
- 基于51单片机的CAN通讯协议C语言程序
//-----------------------函数声明,变量定义-------------------------------------------------------- #includ ...
- 2.6 基于ARDUINO UNO+MC20的路径显示功能
需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...
- 基于51单片机+DAC0832的信号发生器
最近帮别人设计一个毕业设计,做一个多种信号发生器(四种波形:方波.三角波.锯齿波.梯形波),现在贴上来给大家参考,如果有错误的地方,望指出~ 下面先贴上仿真的电路图(仿真的软件是Protuse,上传一 ...
- 基于51单片机IIC通信的AT24C02学习笔记
引言 最近在学习几种串行通信协议,感觉收获很多,这篇文章是学习IIC总线协议的第一篇文章,以后还会再写一篇关于PCF8591 IIC通信的ADDA转换芯片的文章. 关于IIC总线 IIC 即Inter ...
- 如何编写51单片机超声波测距SR04_lcd1602显示程序
超声波测距在我们日常生活中很常见,比如说车在倒退的时候,为了防止车撞到障碍物,会在车尾加上一个超声波测距模块.在智能车比赛中,也有超声波测距模块等等.可见超声波非常的重要,接下来,我们上代码研究一下如 ...
- ESP8266 AT指令开发(基于STC89C52单片机): 测试下诱人的程序(51单片机,8266,MQTT远程通信控制)
前言 实现的功能,APP通过SmartConfig给Wi-Fi模块配网并绑定设备,然后通过MQTT远程控制开发板的继电器, 简而言之: 51单片机+ESP8266用AT指令实现实现MQTT,(连接的本 ...
随机推荐
- Java实现XSS防御
XSS概述 跨站脚本攻击(Cross Site Scripting),缩写为XSS.恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行, ...
- BZOJ 1798 AHOI2009 Seq 维护序列 线段树
题目大意:维护一个序列,提供三种操作: 1.将区间中每个点的权值乘上一个数 2.将区间中每个点的权值加上一个数 3.求一段区间的和对p取模的值 2631的超^n级弱化版.写2631之前能够拿这个练练手 ...
- 自定义注解日志功能与shrio框架冲突的问题
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- 【Python + ATX基于uiaotumator2】之Android—APP自动化简易例子
上代码: import uiautomator2 as u2 from time import sleep d = u2.connect_usb('608ad0fe') #打开小卖 # d(text= ...
- Hibernate通过many-to-one元素的一对一映射
在hibernate中我们可以通过两种方式来执行一对一映射: 通过many-to-one元素标签 通过one-to-one元素标签 在这里,我们将通过多对一的many-to-one元素进行一对一的映射 ...
- Struts2开发者模式
在Struts2开发中,这应该是第一个学习配置的值.为了启用 Struts 2 的开发模式,可以通过自动配置显著增加Struts2的开发速度和属性文件加载,以及额外的日志和调试功能. 注:自动重新加载 ...
- 猜数字游戏-python
题目: 用python写一个猜数字的游戏,游戏规则如下: 1.由一个人随机写一个整数1-99(如:21) 2.一群小伙伴轮流猜数字,如第一个人猜一个数(如:48),则缩小范围至(1-48) 3.如第二 ...
- [Unity3D]Unity3D游戏开发之伤害数值显示
大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.众所周知,在RPG游戏策划中最为重要的一个环节是数值策划.数值策划是一个关于游戏平衡方面的概念 ...
- SQL.Cookbook 读书笔记2 查询结果排序
第二章 查询结果排序 2.1 按查询字段排序 order by sal asc; desc;-- 3表示sal 2.2 按子串查询 );--按job的最后两个字符排序 2.3 对字符数字混合排序 cr ...
- Django应用部署:nginx+uwsgi方式
环境准备 nginx+uwsgi方式部署顾名思义,需要nginx和uwsgi两个软件包. nginx不用说,是必备的,关于nginx的安装本文不再赘述,详情可以自行搜索或者参考我以前的文章: Debi ...