EC20全网通开发板

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

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

ARDUINO MICRO内核版本外观:

../../../_images/O1CN01IXhrEa1LbgbrzWdEi63891318.png

淘宝商品链接:https://item.taobao.com/item.htm?ft=t&id=616146312924

STM32F103内核版本外观:

../../../_images/O1CN01USHqa91Lbgds9TaWt63891318.jpg

淘宝商品链接:https://item.taobao.com/item.htm?ft=t&id=616146312924

配套资料下载地址

https://pan.baidu.com/s/1zXxJKVSQtvLmbIYAl8fD1w 提取码:3333 【如果百度云盘下载地址无效,请联系本店铺客服更改】

视频教程传送门

硬件讲解和电脑直接调试

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尺寸 插入方式一定要注意缺口方向如图,再断电的状态下插入

../../../_images/O1CN012pfHls1LbgbjxOezw63891318.jpg

天线插入

../../../_images/O1CN01H43Oiy1LbgbpygJDb63891318.jpg

模块供电

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

../../../_images/O1CN01LCruUk1LbgbrSvDxk63891318.jpg

模块用电脑调试

../../../_images/O1CN01O6jD301LbgbrSutAk63891318.jpg

调试方法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波特率

../../../_images/O1CN01uzxeGk1LbgbuBL88R63891318.png

调试方法2:

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

模块驱动安装

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

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

在电脑上会形成3个COM

../../../_images/O1CN01EuyeN11LbgbofPC0K63891318.png

一个AT串口用于AT指令

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

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

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

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

../../../_images/O1CN01l1cL5e1LbgbpdIOs063891318.png

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

../../../_images/O1CN01IBboFw1LbgbpzZQRl63891318.png

打开对应串口,输入框输入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后才能做后面的功能调试

../../../_images/O1CN01nt06t81LbgbtLDL9o63891318.png

拨打和接听电话

ATD 指令用于呼叫某一号码

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

ATD10086;

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

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

../../../_images/O1CN01yhjUwS1LbgbtvOq6W63891318.png

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

或者通过ATA接通电话

../../../_images/TB2K0Llhf6H8KJjSspmXXb2WXXa-63891318.png

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

接收英文短信流程

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

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

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

AT+CNMI=2,1

EC20回复如下

../../../_images/TB2_Ozqhh6I8KJjy0FgXXXXzVXa-63891318.png

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

../../../_images/TB2niDqhh6I8KJjy0FgXXXXzVXa-63891318.png

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

AT+CMGR=37

../../../_images/TB2X_iAhdbJ8KJjy1zjXXaqapXa-63891318.png

发送英文短信流程

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

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

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

../../../_images/TB2x7PNbQfb_uJjSsD4XXaqiFXa-63891318.png

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

AT+CMGS="173XXXXXXX1"

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

../../../_images/TB2W7SIhdfJ8KJjy0FeXXXKEXXa-63891318.png

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

../../../_images/TB268EHcvjM8KJjSZFNXXbQjFXa-63891318.png

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

接收读取带中文短信流程

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

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

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

AT+CNMI=2,1

EC20回复如下

../../../_images/TB2H1vDhcLJ8KJjy0FnXXcFDpXa-63891318.png

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

../../../_images/TB28xDKbQfb_uJkSne1XXbE4XXa-63891318.png

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

AT+CMGR=40

../../../_images/TB20BMweOqAXuNjy1XdXXaYcVXa-63891318.png

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

../../../_images/TB2.OGthlDH8KJjSszcXXbDTFXa-63891318.png

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

发送中文短信流程

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

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

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

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

AT+CSMP=17,167,0,8

EC20回复如下

../../../_images/TB245I6f63z9KJjy0FmXXXiwXXa-63891318.png

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

../../../_images/TB2VUaFhdzJ8KJjSspkXXbF7VXa-63891318.png

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

../../../_images/TB2iXPjhf2H8KJjy1zkXXXr7pXa-63891318.png

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

../../../_images/TB2syM6f63z9KJjy0FmXXXiwXXa-63891318.png

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

../../../_images/TB2clGAhmYH8KJjSspdXXcRgVXa-63891318.png

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

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

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

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

可以参考官方的教程: http://service.oray.com/question/1664.html

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

../../../_images/TB2kYPnhf6H8KJjSspmXXb2WXXa-63891318.png

TCP流程测试

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

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

AT+CGREG?

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

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

../../../_images/O1CN01USaMA91Lbgbvg01n363891318.png

用串口发送给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的串口就看到的反馈数据

../../../_images/O1CN01tJF7oV1LbgbpjVPmr63891318.png

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

AT+QICLOSE

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

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

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

../../../_images/O1CN01KABfU51Lbgc8Pnty963891318.png

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

AT+QGPS=1

../../../_images/O1CN01cWbda81Lbgc52xTGF63891318.png

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

../../../_images/O1CN01dWiWjd1Lbgc5Bn9nm63891318.png

未定位的状态如下图

../../../_images/O1CN01YlEHZQ1Lbgc1OOJct63891318.png

稍等几分钟定位好的状态

../../../_images/O1CN0195HbAa1Lbgc2KcClf63891318.png

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

协议内容下载地址: 链接:https://pan.baidu.com/s/13jChtLPagwbg12P2KLVVHw 提取码:4321

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

../../../_images/O1CN01TfNOWG1Lbgc2j7SXb63891318.png

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

image-20230302100004601

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

AT+QGPSLOC?

image-20230302100021794

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

AT+QGPSGNMEA="RMC"

image-20230302100036126

https://img.alicdn.com/imgextra/i3/63891318/O1CN01JO1F6m1Lbgc1OnUed63891318.png

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