找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3304|回复: 0
收起左侧

使用51单片机与4G模块做远程通讯程序

[复制链接]
ID:301968 发表于 2022-1-15 14:35 | 显示全部楼层 |阅读模式
应客户要求做了一款使用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, 下载次数: 49)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表