您当前的位置: 首页 >  http

DS小龙哥

暂无认证

  • 4浏览

    0关注

    679博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

STM32+果云GA6-GPRS/GSM模块+MQTT+HTTP协议连接中移OneNet上传GPS数据定位

DS小龙哥 发布时间:2021-04-30 09:40:28 ,浏览量:4

一、环境介绍

MCU:  STM32F103C8T6

GSM模块: GA6--果云

开发软件: Keil5

完整源码下载:  https://download.csdn.net/download/xiaolong1126626497/18245590

其他参考文章: STM32+ESP8266使用MQTT协议连接阿里云物联网服务器

其他参考文章:STM32+ESP8266使用标准MQTT协议(MQTTS)连接中国移动OneNet物联网服务器

二、GA6-GSM模块介绍与调试

说明:  GA6-B模块供电必须5V,采用电脑USB供电可能不稳定(没有5V,只有4.8V左右),导致模块使用不稳定,发送AT指令没有反应,调试阶段,可将开发板的USB线连接充电宝或者手机充电插头取电。

2.1  GA6-B模块概述

GA6-B 模组: 1.    GA6 尺寸 22.8mm x 16.8mm x 2.2 mm; 2.    正常工作温度:-30°C ~ +80°C, 3.    受限工作温度:-40°C ~ -30°C 及+80°C ~+85°C* 4.    工作电压 3.5V-4.2V; 5.    开机电压>3.5V; 6.    SLEEP 模式下的耗流为 0.9mA; 7.    四频:GSM850, EGSM 900 和 DCS 1800,PCS1900 可以自动的搜寻 四个频段。 l 符合 GSM Phase 2 / 2+ l GPRS Class 10; 8.    灵敏度  符号。,接下来就可以发送 实际要发送的数据,在发送实际数据时,不需要加回车符(\r\n)。

 

实际数据发送之后,紧接着发送一个0x1A,即可启动数据发送。

注意:  0x1A是十六进制格式数据,不是字符串。

 

如果数据发送成功,会返回 “SEND OK” 字符串。

 

发送数据示例:

POST /devices/517704007/datapoints HTTP/1.1

api-key:vvQAUiBG=HwKzqGicH=RxBvFCDw=

Host:api.heclouds.com

Connection:close

Content-Length:65

 

{"datastreams":[{"id":"ds18b20","datapoints":[{"value":66.66}]}]}

 

 

 

 

三、STM32代码调试GA6模块 3.1 通过STM32串口代码测试GA6模块

直接接在STM32F103C8T6最小系统板上面:

 

注意:  如果是使用USB给开发板供电,为了防止电压不够,USB线不要接分线器,直接接电脑的USB口。

因为GA6模块的电压必须5V才可驱动,4.8V都不行。

 

STM32F103C8T6最小系统板使用串口3与GA6-B模块连接:

5V-----5V

GND---G

PB10—URX

PB11---UTX

出现以上提示之后,发送AT能返回OK就说明模块已经正常工作了。

模块上电会返回以下信息:  (注意: 电压一定要保证是5V)

AT Ready

 

AST_POWERON

 

+NITZ:19/03/20,01:57:46,32

 

Call Ready

 

+CREG: 1

 

SMS Ready

 3.2 通过STM32封装标准函数(使用HTTP协议连接OneNet服务器) GA6_GPRS.c文件代码:
#include "ga6_gprs.h"

#define GS6_GSM_CHECK_CNT 10

/*
函数功能:向GA6_GPRS发送指令
函数参数:
        char *cmd     :发送的指令
        char *check   :检查返回的字符串
        u32 wait_time :等待的时间(100ms)为单位
        
说明:该函数只是适用于成功后返回OK的指令
返回值: 0表示成功 1表示失败
*/
u8 GA6_GSM_SendCmd(char *cmd,char *check,u32 wait_time)
{
   u32 i,j;
   for(i=0;i=8000) //8秒一次
             {
                data_tx_len=71;
                sprintf(temp_buff,"%lf",Longitude);
                data_tx_len+=strlen(temp_buff);
               
                sprintf(temp_buff,"%lf",latitude);
                data_tx_len+=strlen(temp_buff); //得到发送的数据长度
               
                snprintf(onenet_http_cmd,sizeof(onenet_http_cmd),
                  "POST /devices/517704007/datapoints HTTP/1.1\r\n"\
                  "api-key:vvQAUiBG=HwKzqGicH=RxBvFCDw=\r\n"\
                  "Host:api.heclouds.com\r\n"\
                  "Connection:close\r\n"\
                  "Content-Length:%d\r\n"\
                  "\r\n"\
                  "{\"datastreams\":[{\"id\":\"gps\",\"datapoints\":[{\"value\":{\"lon\":%lf,\"lat\":%lf}}]}]}",
                   data_tx_len,Longitude,latitude
                  );
                printf("data_tx_len=%d\r\n",data_tx_len);
                printf("经度:%lf,纬度:%lf\r\n",Longitude,latitude);
 
                time_cnt=0;
                LED0=!LED0;
                LED1=!LED1;
                /*1. 检查GSM工作状态*/
                state=GA6_GSM_StateCheck();
                printf("GA6_GSM_StateCheck=%d\n",state);
                if(!state)
                {
                    /*2. 连接服务器*/
                    state=GA6_GSM_ConnectServer("183.230.40.33",80);          
                    printf("GA6_GSM_ConnectServer=%d\n",state);
                    if(!state)
                    {
                      /*3. 向服务器发送数据*/
                    state=GA6_GSM_SendDataToServer((u8*)onenet_http_cmd,strlen((char*)onenet_http_cmd));
                      printf("GA6_GSM_SendDataToServer=%d\n",state);
                    }
                    else
                    {
                        //手动断开服务器连接
                     printf("断开服务器连接:%d\r\n",GA6_GSM_SendCmd("AT+CIPCLOSE\r\n","OK",5000));
                    }
                }
             }
         }
         USART2_RX_CNT=0;
         USART2_RX_FLAG=0;
         memset(USART2_RX_BUFF,0,sizeof(USART2_RX_BUFF));
     }
     
    time_cnt++;
    delay_ms(1);
  }
}
  1. 网页上显示的效果:

 

 

关注
打赏
1664009229
查看更多评论
立即登录/注册

微信扫码登录

0.2764s