SIM800C 使用GPRS与远程服务器进行串口通讯

背景:SIM800C模块与服务器建立通讯实现了真正意义上的物联网应用,它突破了WiFi模块只能在固定无线网络范围内的距离局限,或是蓝牙模块的短距离传输瓶颈,我们只需要借助单片机连接GSM模块与电器开关,然后对单片机进行简单的控制逻辑编程。GSM模块只要在有移动网络信号覆盖的环境下就能与控制端进行基于TCP/IP协议的点对点数据传输,从而实现不限距离的远程控制。

本文介绍SIM800C模块通过GPRS与服务器进行串口通信。

设备清单:

  1. USB-TTL调试模块(驱动);
  2. SIM800C模块;
  3. 移动或联通SIM卡(可正常访问网络);
  4. 本地计算机;
  5. 拥有公网IP的远程计算机。

如果没有公网IP,可以在花生壳上付费做地址映射。

模块引脚说明

5V:供电引脚,只能输入DC5V,用于给板子供电。

V_TTL:接目标控制板单片机内核电压的5V/3.3V,TTL逻辑

GND:电源地线

TXD:模块串口发送引脚,TTL电平(不能直接接RS232电平)

RXD:模块串口接收引脚,TTL电平(不能直接接RS232电平)

DTR:数据终端准备

SPKP:内核音频输出引脚

SPKN:内核音频输出引脚

MICN:内核音频输入引脚

MICP:内核音频输入引脚

RI:内核振铃提示引脚

VRTC:RTC外置电池引脚

GND:电源地线

PWX:拉低该引脚可以实现模块的开启或者关闭

GND:电源地线

VBAT:锂电池输入引脚。

模块与电脑连接 ##

使用USB-TTL连接SIM800C然后插入电脑供电,接线如下

USBTTL SIM800C
5V-------VCC
GND------GND
TX-------RX
RX-------TX

USB-TTL 模块驱动,常用于调试TTL电平的串口信息。市面上常见的有 CP2102/PL2303/CH340等USB-TTL模块,推荐使用CP2102模块,是同类模块中性能最好最稳定的。

插入前确保电脑已经安装了USB-TTL调试驱动,在设备管理器中查看对应串口号(COM)

此时,SIM800C模块电源指示灯常亮,但并不会开始工作,前面的引脚介绍中有PWX引脚,我们需要给PWX引脚一个低电平触发来启动模块,从第一张图中可以看到,我用跳线帽将PWX和GND短接,这样每次通电只需拔下跳线帽再插上就可以启动模块。

模块与计算机通信测试

打开串口调试器,选择对应的串口号,波特率建议选择9600,数据位8,停止位1,然后点 “打开串口” 启动串口监听。向COM口发送AT命令。有些串口调试器有“发送新行”功能,一定要勾选上,这样会给每条命令的结尾加上一个换行符,模块才能识别该条命令,由于我用的串口助手没有这个功能,所以我在每条命令的结尾敲一个回车后发送。

模块的波特率可以自适应,即模块上电时候第一个发送的指令是什么波特率,系统会自动识别波特率按照这个波特率返回数据。

发送
AT
收到回复
AT
OK
SMS Ready

此时,模块与计算机的通信正常。

常用AT指令集介绍

AT+CPIN?

该指令用于查询 SIM 卡的状态,如果该指令返回:+CPIN:READY,则表明SIM卡状态正常。

AT+CSQ

该指令用于查询信号质量,返回 SIM800 模块的接收信号强度,最大有效值是31。

AT+COPS?

该指令用于查询当前运营商,该指令只有在连上网络后,才返回运营商,否则返回空,如返回:+COPS:0,0, “CHINA MOBILE”,表示当前选择的运营商是中国移动。

AT+CGMI

该指令用于查询模块制造商。

AT+CGMM

该指令用于查询模块型号。

AT+CGSN

该指令用于查询产品序列号(即IMEI号)。

AT+CNUM

该指令用于查询本机号码。不是所有的SIM卡都 支持这个指令。

ATE1

该指令用于设置回显模式(默认开启),即模块将收到的 AT 指令完整的返回给发送端,启用该功能,有利于调试模式。如果不需要开启回显模式,则发送 ATE0 指令即可关闭,这样收 到的指令将不再返回给发送端,这样方便程序控制。

ATD15002865210;

拨打电话,执行成功后返回ATD:15002865210 OK。

开启公网主机网络端口

我们远程登陆前面准备的公网IP主机,cmd命令netstat -a列出所有网络端口。

找出没有被占用的端口号,这里我选择10005,使用网络调试助手设置协议类型为TCP服务对端口10005进行监听,IP地址默认。

设置防火墙规则:
打开Windows防火墙->高级设置,增加入站规则->端口10005->适用于TCP协议,同时增加10005端口的出站规则。
或者直接关闭防火墙。

回到我们本地计算机的串口助手,接下来我们要使用串口助手给SIM800C发送指令来建立GPRS连接。
下面是我们会用到的GPRS功能指令集与相应功能:

AT+CGCLASS

用于设置移动台类别。SIM800模块仅支持类别"B"和"CC",发送:AT+CGCLASS=“B”,设置移动台类别为B。即,模块支持包交换和电路交换模式,但不能同时支持。

AT+CGDCONT

用于设置PDP上下文。发送:AT+CGDCONT=1,“IP”,“CMNET”,设置PDP上下文标标志为1,采用互联网协议(IP),接入点为"CMNET"。

AT+CGATT

用于设置附着和分离GPRS业务。发送:AT+CGATT=1,附着GPRS业务。

AT+CIPCSGP

用于设置CSD或GPRS链接模式。发送:AT+CIPCSGP=1,“CMNET”,设置为GPRS连接,接入点为"CMNET"。

AT+CLPORT

用于设置本地端口号。发送:AT+CLPORT=“TCP”,“8086”,即设置TCP连接本地端口号为8086。

AT+CIPSTART

用于建立TCP连接或注册UDP端口号。发送:AT+CIPSTART=“TCP”,“222.197.91.22”,“10005”,模块将建立一个TCP连接,连接目标地址为:222.197.91.22,连接端口号为10005,连接成功会返回:CONNECTOK。

AT+CIPSEND

用于发送数据。在连接成功后发送:AT+CIPSEND,模块返回:>,此时可以输入要发送的数据,最大可以一次发送1352字节,数据输入完后,同发短信一样,输入十六进制的:1A(0X1A),启动发送数据。在数据发送完成后,模块返回:SENDOK,表示发送成功。

AT+CIPSTATUS

用于查询当前连接状态。发送:AT+CIPSTATUS,模块即返回当前连接状态。

AT+CIPCLOSE

用于关闭TCP/UDP连接。发送:AT+CIPCLOSE=1,即可快速关闭当前TCP/UDP连接。

AT+CIFSR

查询模块IP

AT+CIPSHUT

用于关闭移动场景。发送:AT+CIPSHUT,则可以关闭移动场景,关闭场景后连接状态为:IPINITIAL,可以通过发送:AT+CIPSTATUS查询。另外,在连接建立后,如果收到:+PDP:DEACT,则必须发送:AT+CIPSHUT,关闭场景后,才能实现重连。

SIM800C 建立与服务器的连接

使用端口助手向SIM800C发送以下命令
查询网络注册情况

AT+CPIN?

查询信号质量

AT+CSQ

查询GSM网络注册状态

AT+CREG?

查询GPRS网络注册状态

AT+CGREG?

使模块附着GPRS网络

AT+CGATT=1

设置透传模式

AT+CIPMODE=1

设置APN=CMIOT

AT+CSTT=CMIOT

激活移动场景,建立无线连接

AT+CIICR

获取模块IP地址

AT+CIFSR

建立TCP连接,连接到IP:222.197.91.22,连接端口为:10005。

AT+CIPSTART=“TCP”,“222.197.91.22”,“10005”

此时SIM800C模块向串口返回CONNECT OK,现在可以进行数据交互,我们通过远程服务器向模块发送“Hello SIM800! This massage from server.” 我们的模块将会成功收到来自服务器的信息。

  • 23
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
sim800c串口调试助手可以用于sim800c模块的通信和发送短信。首先,你需要准备好串口调试助手和虚拟串口驱动软件VirtualSerialPortDriver。然后,将sim800c模块与电脑连接,通过串口调试助手与sim800c模块进行通信。 在串口调试助手中,你可以使用AT指令来与sim800c模块进行通信。AT指令是一种用于控制调制解调器和其他通信设备的命令。通过串口调试助手发送AT指令,你可以实现sim800c模块的各种功能,包括发送短信。 要发送短信,你可以使用AT+CMGS指令。首先,你需要使用AT+CMGF指令将短信模式设置为文本模式。然后,使用AT+CMGS指令后跟接收方的手机号码和短信内容来发送短信。例如,AT+CMGS="+123456789",然后在新的一行输入短信内容,最后按下Ctrl+Z键来发送短信。 请注意,以上只是一个简单的示例,具体的操作步骤可能会因为不同的串口调试助手和sim800c模块而有所差异。你可以参考sim800c模块的相关文档或者在网上搜索更详细的教程来了解如何使用串口调试助手与sim800c模块进行通信和发送短信。 #### 引用[.reference_title] - *1* [串口调试助手之间通信和接受、发送数据](https://blog.csdn.net/qq_21225533/article/details/127459323)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [SIM800C通讯模块调试](https://blog.csdn.net/u014421313/article/details/127252012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值