ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

EC20Demo(GPS)

2021-04-27 13:58:15  阅读:620  来源: 互联网

标签:短信 发送 指令 EC20 串口 EC20Demo GPS


http://wiki.waaax.top/index.php?title=EC20Demo#GPS.E5.AE.9A.E4.BD.8D.E3.80.90.E5.8F.AA.E6.9C.89.E8.B4.AD.E4.B9.B0.E5.B8.A6GPS.E7.9A.84.E7.89.88.E6.9C.AC.E6.89.8D.E6.9C.89.E8.BF.99.E4.B8.AA.E5.8A.9F.E8.83.BD.E3.80.91
https://www.bilibili.com/video/av840521645/

EC20开发板教程

目前做了有2个版本的EC20,可以选择自己熟悉的单片机去开发

EC20 ARDUINO MICRO内核版本EC20 STM32F103内核版本
全网通内核EC20/EC200TEC20/EC200T
功能电话/短信/GPS/网络通讯等电话/短信/GPS/网络通讯等
支持SIM卡移动/联通/电信 micro尺寸移动/联通/电信 micro尺寸
板载单片机ARDUINO MICRO内核STM32F103C8T6
单片机FLASH大小32KB【ATmega32U4】(4K用于bootloader)64KB
单片机RAM大小2.5 KB20KB
单片机下载程序方式板载USB接口板载USB串口电路/SWD接口
预留IO数量1734
例程使用开发环境ARDUINO IDEMDK

ARDUINO MICRO内核版本外观:

STM32F103内核版本外观:

视频教程传送门

硬件讲解和电脑直接调试

ARDUINO内核版本硬件讲解

STM32F103内核版本硬件讲解

AT调试篇--打电话、接听电话、发送接收英文短信,发送接收中文短信功能实现

AT调试篇--TCP通讯收发测试,服务器收发通讯

AT调试篇--GPS定位功能测试

STM32内核例程视频教程

1.打电话功能

2.发送英文短信

3.发送中文短信

4.短信控制LED开关

5.TCP通信

6.上传数据到中国移动onenet物联网服务器

7.GPS数据解析

8.路径显示功能代码

ARDUINO内核例程视频教程

1.打电话功能

2.发送英文短信

3.发送中文短信

4.短信控制LED开关

5.TCP通信

6.上传数据到中国移动onenet物联网服务器

7.GPS数据解析

8.路径显示功能代码

PC直接调试EC20方法

因为部分内容和单片机没什么关系,是直接调试EC20,所以不同版本的调试方法是一样的,都可以参考这个章节

插卡方向

本开发板是全网通开发板,支持移动/联通/电信卡 SIM卡使用尺寸是中卡,micro尺寸 插入方式一定要注意缺口方向如图,再断电的状态下插入

天线插入

模块供电

为保证EC20模块稳定运行,也为了保护电脑主板不受损坏。 本模块使用电源适配器供电,标配会提供电源适配器。 板子上的所有USB接口不对板子供电,这样板子的电流也不会通过USB进入电脑,保证了电脑的安全性。 电源插在左上角的DC接口,然后打开拨动开关打开电源

模块用电脑调试

调试方法1:

如果你有USB-TTL模块接模块去调试,如果没有就用方法2

接线方式

usb-ttl          全网通模块
5V     --->         V_IO
GND    --->         GND
RXD    --->         TX
TXD    --->         RX

这种方法是直接调试串口的TTL接口。板子已经做了电平转换,这组串口已经做了电平转换,

也就是说可以兼容5v或者3.3v单片机,如果你想外置单片机去控制他,也可以接这几个引脚。

其中V_IO是必须接的,如果你用5v单片机就接5v,如果用3.3v单片机就接3.3v

如果用USB-TTL模块方法做AT指令调试,波特率默认是115200,一定要记住。

以后我们的单片机控制这个模块也是用115200波特率

调试方法2:

可以通过右下角的USB接口直接接电脑调试,这个比较方便,推荐使用这个方法学习AT指令流程

模块驱动安装

因为用到全网通模块的右下角usb,就需要安装驱动。

驱动文件在资料包内,安装好后

在电脑上会形成3个COM

一个AT串口用于AT指令

一个DM串口用于调制解调器拨号

一个NEMA串口用于GPS数据输出

而且在电脑右下角的网络会多出来一个手机网络,这样电脑可以通过这个模块直接上网。

只要你的SIM卡流量足够(^▽^),这个自己去尝试吧。不是我们教程的重点

重点是用AT调试,这里我们就用到这个AT的串口,记录好COM号,用串口助手打开

打开对应串口,输入框输入AT,勾选发送新行,然后点发送,能回复AT OK说明基础测试环境搭建完成

这里波特率是自适应的,可以选9600或者115200等等

基础调试

先测试是否识别卡,卡信号多少,是否有服务

用到

AT+CPIN?

AT+CSQ

AT+CREG?

三条指令,

其中CPIN如果是READY说明有卡,如果是ERROR说明卡没插对,看上面插卡说明,断电重新插卡,再开机测试。关闭电源前记得先关闭串口,要不异常断开串口需要用任务管理器关闭SSCOM软件

CSQ用来测试信号强度,一般要大于18以上才可以

CREG用来看卡有没有服务,一般是返回0,1或者0,5才可以,如果是其它的,就是卡还没获取服务。等待会儿再测试,一直看是0,1或者0,5后才能做后面的功能调试

拨打和接听电话

ATD 指令用于呼叫某一号码

举例拨打10086的电话,记得指令后面有个英文标点的分号,用串口发送

ATD10086;

如果拨打某个手机号,就直接改上面的号码就可以

如果想挂断使用ATH指令挂断

接听电话更简单,当你拨打模块上的卡的电话,串口会返回RING,这个时候可以通过ATH挂断

或者通过ATA接通电话

当然这时候也可以用ATH指令挂断 另外想真的实现语音可以使用分离式耳机麦克插入开发板的MIC和EAR接口进行通话。

接收英文短信流程

用串口发送给EC20如下几条设置指令

AT+CMGF=1
AT+CSCS="GSM"

注意以上引号都是英文输入状态下的标点

AT+CNMI=2,1

EC20回复如下

用手机给EC20发送一条测试短信,内容比如“ilovemcu.taobao.com” EC20模块会返回+CMTI: "SM",37 最后的这个37的数字是在短信箱中的位置,也可以理解成第几条短信

然后发送如下指令,记得后面的数字就是你要读取的短信号,我这里是37

AT+CMGR=37

发送英文短信流程

用串口发送给EC20如下几条设置指令

AT+CMGF=1
AT+CSCS="GSM"

注意以上引号都是英文输入状态下的标点 EC20回复如下

假如要给某个手机号为173xxxxxxx1的电话发送短信 发送如下指令

AT+CMGS="173XXXXXXX1"

等模块返回一个 > 后,可以发送短信内容了 比如我们还是发送内容是“ilovemcu.taobao.com” 发送这样的内容,记得这里最好是去掉发送新行,去发送内容

然后到了最重要的一步, 上面只是把短信内容发送给EC20模块,并没有把短信发送出去。 而现在这个步骤就是相当于手机上的发送按键,点过之后短信就发送出去了。 需要在HEX模式下发送1A,如下图

稍等片刻,您的手机就应该接收到这条短信了

接收读取带中文短信流程

用串口发送给EC20如下几条设置指令

AT+CMGF=1
AT+CSCS="GSM"

注意以上引号都是英文输入状态下的标点

AT+CNMI=2,1

EC20回复如下

用手机给EC20发送一条测试短信,内容比如“大学生电子商铺” EC20模块会返回+CMTI: "SM",40 最后的这个40的数字是在短信箱中的位置,也可以理解成第几条短信

然后发送如下指令,记得后面的数字就是你要读取的短信号,我这里是40

AT+CMGR=40

上面的几步都和读取英文短信没区别,关键是如何解析出来中文短信, 这里我们可以使用Unicode的一些工具,比如资料包内的unicode转换器

这样就能看到接收到的中文短信内容了

发送中文短信流程

这里我讲解一种最简单方便的发送中文的办法,当然还有其它的办法,比如PDU模式发送中文,比较繁琐,想学习的可以单独百度学习。

用串口发送给EC20如下几条设置指令

AT+CMGF=1
AT+CSCS="UCS2"

注意以上引号都是英文输入状态下的标点

AT+CSMP=17,167,0,8

EC20回复如下

  1. 假如要给某个手机号为173xxxxxxx1的电话发送短信,我们先获取这个手机号的Unicode编码, 还是用上一讲用到的工具

 同样的方法,再转换下短信内容,比如还是发送“大学生电子商铺”

 和发送英文短信一样,使用AT+CMGS指令发送,只不过这里需要把电话号码转换后放进去,
 同样发送短信内容时候不勾选发送新行

 然后同样的发送方法,选择HEX,后发送1A,把短信发送出去,当收到OK时候,稍等就能收到短信了

测试TCP通讯功能的必要基础

这里有个很常见问题就是“公网IP”,现在大多数宽带都是没有公网IP的,所以是不具备被GPRS访问和发送数据的。 这个“公网IP”的问题,在其他的教程中也有讲解,这里不再详细说明。 一般处理办法,就是单独找宽带官方拉带公网IP的网络,一般公司可以办到。

或者自己买阿里云服务器一般都带公网IP

个人测试的话就用“花生壳”去内网映射就行了。可能要花一些费用,但是总体比较低,我只是开通了最基础的内网映射,8元,当然每个时间可能这个软件收费不同,也可能免费。 具体新版本的花生壳怎么使用

  1. 可以参考官方的教程: http://service.oray.com/question/1664.html
  2. 可以参考以前录制SIM800C教程的花生壳,##课时11##的这个教程: http://i.xue.taobao.com/detail.htm?spm=a2174.7765247.0.0.mDHKp9&courseId=79181

当您已经能在自己的电脑建立一个客户端,一个服务器,而且能正常的发送数据交互时候,就可以去用GPRS模块去连接您的服务器通讯测试了。

TCP流程测试

好了,正常开始GPRS测试,EC20的GPRS指令和一般的SIMCOM的比如SIM800C的不太一样,请按照下面流程测试

用串口发送给EC20如下几条设置指令

AT+CGREG?

能看到返回+CGREG: 0,1说明已经注册上网络了,可以用

设置好了可以,连接服务器发送数据了 查看下自己的的域名对应的IP

用串口发送给EC20,使用直连模式连接服务器IP和端口指令,这里要写自己的IP和端口,其它的不要修改

AT+QIOPEN=1,0,"TCP","103.46.128.49",42773,0,1

显示OK,就说明连接上服务器了,可以发送数据了

AT+QISEND=0

AT+QISEND=0指令发送数据,等待显示 > 后,就可以发送数据了, 这里我们还是发送一个测试内容“ILOVEMCU.TAOBAO.COM” 然后选择HEX发送,发送1A,把这个内容发送出去,这个操作类同发送短信的操作。 最后我们就可以在服务器界面看到数据了,然后我们服务器可以回复数据“server ACK”, 这样我们在EC20的串口就看到的反馈数据

连接IP后我们可以多次发送数据,不需要断开。 如果不想连接IP要断开,需要以下指令

AT+QICLOSE

如果还想连接其他IP或者还是这个IP就重复以上流程就行了

GPS定位【只有购买带GPS的版本才有这个功能】

首先要把GPS天线接上,室内没有卫星信号,GPS天线需要放室外,是必须的!!!

先用AT的串口,发送启动GPS的指令

AT+QGPS=1

测试方法1:然后重新打开个串口助手,切换到NMEA的对应的COM,可以直接看NMEA输出

未定位的状态如下图

稍等几分钟定位好的状态

具体NMEA协议可以参考NMEA协议说明这里不再讲解,可以参考我们单独的GPS模块的讲解,协议NEMA是通用的

http://www.waaax.top/forum.php?mod=viewthread&tid=35&extra=page%3D1

资料包内提供有很多测试软件,比如GNSS_Viewer软件可以直观看卫星的状态

软件 GPS经纬度测试工具 可以把GPS的坐标转换成百度地图的点标记。用于测试

测试方法2:通过AT指令获取GPS信息

AT+QGPSLOC?

使用下面指令可以单独读取某一帧数据,比如GPRMC的可以用

AT+QGPSGNMEA="RMC"

有了这些单独AT指令,就可以很容易用AT口去读取GPS数据了 其它更多的指令使用和功能,请大家参考官方的各种功能对应的文档

	<div class="printfooter">取自“<a dir="ltr" href="http://wiki.waaax.top/index.php?title=EC20Demo&amp;oldid=113">http://wiki.waaax.top/index.php?title=EC20Demo&amp;oldid=113</a>”</div>
	
	<div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div>
	<div class="visualClear"></div>

标签:短信,发送,指令,EC20,串口,EC20Demo,GPS
来源: https://blog.csdn.net/baidu_37503452/article/details/116199263

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有