应客户要求做了一款使用51单片机和4G模组做远程通讯的终端设备,51单片机使用串口与4G模组进行通讯,实现各种控制功能。4G模组使用有人GM5透传模组。
以下是通讯前需要设置的一些参数:
/////////////////////////////////////////////////////////////////
void Getgprs() //获取模组信息
{
//uchar i;
GPRS_OK=0;
UartSendStr("\r\模组初始化....!");
while(!GPRS_OK) //等启动成功
{ //调用串口驱动
Uart2_Driver();
Delay1ms_cont(50);
}
GPRS_OK=0;
// UartSendStr("\r\n退出透传....!");
printf("+++"); Delay1ms_cont(200);
printf("a"); Delay1ms_cont(200);
// UartSendStr("\r\n关闭模组回显...");
printf("AT+E=OFF\r\n");Delay1ms_cont(200); //关闭模组回显——001
printf("AT+S\r\n");Delay1ms_cont(200); //关闭模组回显——001
while(!GPRS_OK) //等待GPRS启动成功
{ //调用串口驱动
Uart2_Driver();
Delay1ms_cont(100);
}
GPRS_OK=0;
// UartSendStr("\r\n退出透传....!");
printf("+++"); Delay1ms_cont(200);
printf("a"); Delay1ms_cont(200);
while(!GPRS_OK) //获取GPRS CCID号——002 {"AT+CCID\r\n"}; //模组串号指令002
{
printf("AT+ICCID\r\n");
Delay1ms_cont(200);
Uart2_Driver();
Delay1ms_cont(200);
}
GPRS_OK=0;
UartSendStr("\r\nGPRS CCID号码=");
UartSendStr(SAVE_CCID);
while(!GPRS_OK) //获取GPRS SIM号 ——003uchar code AT_SIMID[]= {"AT+EGMR=2,7\r\n"}; //SIM卡号指令004
{
printf("AT+IMEI\r\n");
Delay1ms_cont(200);
Uart2_Driver(); //调用串口驱动
}
GPRS_OK=0;
UartSendStr("\r\nSIM号码=");
UartSendStr(SAVE_SIMID);
Delay1ms_cont(200);
while(!GPRS_OK){
printf("AT+CSQ\r\n"); //{"AT+CSQ \r\n"}; //信号强度指令003
Delay1ms_cont(200);
Uart2_Driver();
}
UartSendStr("\r\nAT+CSQ=");
UartSendStr(SAVE_CSQ);
GPRS_OK=0;
while(!GPRS_OK)
{
printf("AT+UARTFL=4096\r\n"); //
Delay1ms_cont(200); //调用串口驱动
Uart2_Driver();
}
GPRS_OK=0;
while(!GPRS_OK)
{
printf("AT+SOCKA=TCP,您的域名,50000\r\n"); //
Delay1ms_cont(200); //调用串口驱动
Uart2_Driver();
}
printf("AT+S\r\n"); ////透传模
Delay1ms_cont(200); //调用串口驱动
GPRS_OK=0;
while(!GPRS_OK) //等待GPRS启动成功
{ //调用串口驱动
Uart2_Driver();
}
GPRS_OK=0;
Delay1ms_cont(100); //调用串口驱动
LoginServer();
}
/* 登陆服务器指令*/
//{"ac":"login", "mid":"867959032063277","pass":"0000000","sim":"898604291618C0801153",
// "did":"000000001","shv":"00", "ssv":"00","chv":"00","csv":"00" }
void LoginServer() //登陆服务器函数包
{
// uchar i;
printf("{\"ac\":\"login\",\"mid\":\"%s\",\"pass\":\"00000000\",\"sim\":\"%s\",\"did\":\"20\",",SAVE_SIMID,SAVE_CCID);
printf("\"shv\":\"%2s\",\"ssv\":\"%2s\",\"chv\":\"%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%0bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd\",",\
shv,ssv,chv[1],chv[2],chv[3],chv[4],chv[5],chv[6],chv[7],chv[8],chv[9],chv[10],chv[11],chv[12],chv[13],chv[14],chv[15],chv[16],chv[17],chv[18],chv[19],chv[20]);
printf("\"csv\":\"%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%0bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd,%02bd\"}",\
csv[1],csv[2],csv[3],csv[4],csv[5],csv[6],csv[7],csv[8],csv[9],csv[10],csv[11],csv[12],csv[13],csv[14],csv[15],csv[16],csv[17],csv[18],csv[19],csv[20]);
Delay1ms_cont(1000);
do{
Uart2_Driver();
} while(!GPRS_OK); //等待登陆服务器成功
GPRS_OK=0;LED_GRRS_On;
UartSendStr("\r\n登陆服务器成功!");
}
pdf格式电路原理图:
4G通信板_RS485_20210707.pdf
(37.45 KB, 下载次数: 50)
|