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内核版本外观:
淘宝商品链接:https://item.taobao.com/item.htm?ft=t&id=616146312924
STM32F103内核版本外观:
淘宝商品链接:https://item.taobao.com/item.htm?ft=t&id=616146312924
配套资料下载地址
https://pan.baidu.com/s/1zXxJKVSQtvLmbIYAl8fD1w 提取码:3333 【如果百度云盘下载地址无效,请联系本店铺客服更改】
视频教程传送门
硬件讲解和电脑直接调试
STM32内核例程视频教程
ARDUINO内核例程视频教程
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回复如下
假如要给某个手机号为173xxxxxxx1的电话发送短信,我们先获取这个手机号的Unicode编码, 还是用上一讲用到的工具
同样的方法,再转换下短信内容,比如还是发送“大学生电子商铺”
和发送英文短信一样,使用AT+CMGS指令发送,只不过这里需要把电话号码转换后放进去,
同样发送短信内容时候不勾选发送新行
然后同样的发送方法,选择HEX,后发送1A,把短信发送出去,当收到OK时候,稍等就能收到短信了
测试TCP通讯功能的必要基础
这里有个很常见问题就是“公网IP”,现在大多数宽带都是没有公网IP的,所以是不具备被GPRS访问和发送数据的。 这个“公网IP”的问题,在其他的教程中也有讲解,这里不再详细说明。 一般处理办法,就是单独找宽带官方拉带公网IP的网络,一般公司可以办到。
或者自己买阿里云服务器一般都带公网IP
个人测试的话就用“花生壳”去内网映射就行了。可能要花一些费用,但是总体比较低,我只是开通了最基础的内网映射,8元,当然每个时间可能这个软件收费不同,也可能免费。 具体新版本的花生壳怎么使用
可以参考官方的教程: http://service.oray.com/question/1664.html
当您已经能在自己的电脑建立一个客户端,一个服务器,而且能正常的发送数据交互时候,就可以去用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是通用的
协议内容下载地址: 链接:https://pan.baidu.com/s/13jChtLPagwbg12P2KLVVHw 提取码:4321
资料包内提供有很多测试软件,比如GNSS_Viewer软件可以直观看卫星的状态
软件 GPS经纬度测试工具 可以把GPS的坐标转换成百度地图的点标记。用于测试
测试方法2:通过AT指令获取GPS信息
AT+QGPSLOC?
使用下面指令可以单独读取某一帧数据,比如GPRMC的可以用
AT+QGPSGNMEA="RMC"
有了这些单独AT指令,就可以很容易用AT口去读取GPS数据了 其它更多的指令使用和功能,请大家参考官方的各种功能对应的文档