当前位置: 代码迷 >> 综合 >> STM32F1x通过 IP 地址进行 GPRS 数据传输
  详细解决方案

STM32F1x通过 IP 地址进行 GPRS 数据传输

热度:89   发布时间:2023-11-25 01:46:02.0

一、所使用的模块为UNV-SIM800 V3.92( UNV 是全球鹰标识,V3.92 是硬件版本号)是全球鹰通讯推出的一款高性能工业 GSM/GPRS 模块。
(一)、其内嵌 TCP/IP 协议,可以实现 SMS,彩信,基站定位, GPRS 传输数据等功能。

(二)、UNV-SIM800 开发板 TTL 电平接口,以及供电
VMCU 为 TTL 电平串口电压匹配端,不是 SIM800 板供电接口。VMCU 是用来控制SIM800 开发板的串口的输出的高电压值,不是给系统供电的管脚。当外部系统为5V 系统时,VMCU 要接 5V,如:与 STC89C51 或 arduino 通信时,VMCU 要接 5V;当外部系统为 3.3V 系统时,VMCU 要接 3.3V,如与 STM32 或树莓派通信时,VDD接 3.3V。
共有两组电源接口,它们无任何区别。其中下面白色 2.54MM 端子电源接口,
左侧针为电源负极,右侧针为电源正极;右侧边上 4 根排针最上面一根针为电源正
极。实际应用中,两组接口接任何一个均可以为 SIM800 板供电。在这里插入图片描述
在这里插入图片描述

二、通过IP 地址进行 GPRS 数据传输
(一)、找到GPRS 数据传输的目标公网IP和端口号(很很很重要)
1、在运行中输入cmd。2、接着在命令页输入:ipconfig这个ip命令找到网关地址ip。
这里要注意:
(1)自己电脑的内网 IP(即IPv4):192.168.123,36
(2)通过默认网关:192.168.123.1 ,找到公网IP和端口号
(还要注意的是,这样找到的路由器的公网IP和端口号是我们调试时候用的。若是形成产品,我们要知道的是(GPRS 数据传输的目的地)服务器的公网IP和端口号。)
在这里插入图片描述
3、接着在浏览器地址栏输入刚刚查到的默认网关ip进入。
4、然后会弹出一个路由器验证页面,输入用户名和密码进入。
5、接下来大家就可以看到自己路由器的界面了。
6、在浏览器里输入192.168.123.1,找到转发规则-虚拟服务器-添加单个条目,按图中提示输入。
在这里插入图片描述
(二)、使用 AT 指令进行调试
2.1 找到数据传输目标服务器的公网IP和端口号,就可以继续进行AT指令的调试了。
注意:
(1)、每条指令要以 回车键 结尾,换成十六进制即0x0D 0x0A
(2)、在第八步中,发送的数据(不是AT指令)要以 这个符号结尾,换成十六进制即0x1A。
设置AT指令有十步,按顺序操作,不要省步骤。尤其第四五六步。
第一步:AT+CSQ 查询网络信号质量,其中第一个参数为网络信号质量最大为 31,此数值越大说明网络信号越强。
第二步:AT+CREG? 查询网络注册情况,其中第二个参数为 1 或 5 则说明已经注册成功。
第三步:AT+CGATT? 查询模块是否附着 GPRS 网络
第四步:AT+CSTT 设置 APN
第五步:AT+CIICR 激活移动场景
第六步:AT+CIFSR 获得本地 IP 地址
第七步:AT+CIPSTART=“TCP”,“103.46.128.41”,23859 建立 TCP/IP 连接 // 测试时这就是公网 IP 和端口号:“103.46.128.41”,23859
第八步:AT+CIPSEND 模块向服务器发送数据
收到模块返回的”>”就可以输入要发送的数据,这里发送“Elec”,这步操作不可以发送回车换行。发送完成,服务器会收到模块发送过来的数据“UNV”
第九步:接收数据,在服务器中输入要发送的数据如“quanqiuying-keji”。点击发送数据,数据就发送到开发板上,串口助手会显示
第十步:AT+CIPCLOSE 或 AT+CIPSHUT 关闭 TCP 连接,返回 OK 说明已经成功关闭了 TCP 连接,这时服务器端的连接状态栏应该没有任何连接了。

2.2 模块线的连接

GPRS模块
白色插口式接线端子 单独电源供5v 和 GND
IIT 不接
MR 不接
SR PB10
ST PB11
VMCU 5v
GND GND
串口调试模块
5V 5V
TXD PA10
RXD PA9
GND GND
ST-LINK
SWCLK 缺口靠左-左排-上至下-第5 个针
SWDIO 缺口靠左-左排-上至下-第4 个针
GND 缺口靠左-右排-上至下-第2 个针
3.3v 缺口靠左-右排-上至下-第2 个针
5v电源模块 ((顺序:四个接口靠左,从上至下) )
接口1 5v 电压输出
接口2 GND
接口3 GND
接口4 12v 电源输入

三、 IP 地址进行 GPRS 数据传输的程序编写

程序链接:

https://download.csdn.net/download/qq_37788383/11887886

头文件里的程序

#ifndef __GPRS_H_
#define __GPRS_H_
#include "usart.h"
#include "sys.h"
#include "delay.h"typedef struct gprs_send_node{
    int s_jing;int s_wei;int oxygen;
}gprs_send_node;void uart3_init(u32 bound);
void TIM7_Int_Init(u16 arr,u16 psc); void USART3_Send_data(int *str);void Gprs_Init(void);
void Gprs_Init_CSQ();
void Gprs_Init_CREG();
void Gprs_Init_CGATT();
void Gprs_Init_CSTT();
void Gprs_Init_CIICR();
void Gprs_Init_CIFSR();
void Gprs_Init_CIPSTART();
void Gprs_Init_CIPSEND();void Gprs_Send();#endif
  相关解决方案