stm 32 SIM 800 C 모듈 포 지 셔 닝 을 이용 하여 이 모듈 http 프로 토 콜 을 통 해 서버 에 보 냅 니 다.
4012 단어 stm 32 와 ARM
AT+SAPBR=3,1,"APN","UNINET" //CMNET 이동 CNNET 전신 UNINET 연결
AT+SAPBR=1,1 //네트워크 를 활성화 하려 면 반드시 ok 이 돌아 올 때 까지 기 다 려 야 합 니 다.그렇지 않 으 면 오류 가 발생 합 니 다.
AT+HTTPINIT //http 네트워크 초기 화
AT+HTTPPARA="CID",1 //응답 인자 설정
//모듈 에 AT+HTTPPARA="URL","www.xiongyuchun.xyz:9999/api/addDreamValueAPI.aspx?id=1&lng=115.40<lat=27.08"를 분석 하도록 도 메 인 이름 을 설정 합 니 다.
AT+HTTPACTION=0//요청 을 보 내 고 서버 응답 을 기다 리 는 마지막 프로그램 에서 응답 내용 이 정확 한 지 확인 합 니 다.
2.포 지 셔 닝 기본 명령
참고 글:http://www.openedv.com/forum.php?mod=viewthread&tid=232045&page=1
AT+CLBS=1,1
+CLBS: 0,113.333941,23.308106,550
+CLBS: 0,113.333941,23.308106,550 //원 하 는 포 지 셔 닝 데 이 터 를 얻 었 습 니 다.여기 서 직접 출력 하 는 것 은 경위도 입 니 다.그 중에서 113.333941 은 경도 이 고 23.308106 은 위도 이다.
3.프로그램 제어
//SIM800C
void sim800c_test(void)
{
u8 key=0;
u8 timex=0;
u8 sim_ready=0;
// u8 start_flag = 0;
POINT_COLOR=RED;
Show_Str_Mid(0,30,"ATK-SIM800C ",16,240); //LCD
while(sim800c_send_cmd("AT","OK",100))// AT
{
Show_Str(40,55,200,16," !!!",16,0);
delay_ms(800);
LCD_Fill(40,55,200,55+16,WHITE);
Show_Str(40,55,200,16," ...",16,0);
delay_ms(400);
}
LCD_Fill(40,55,200,55+16,WHITE);
key+=sim800c_send_cmd("ATE0","OK",200);//
sim800c_mtest_ui(40,20);
ntp_update();//
while(1)
{
delay_ms(10);
sim_at_response(1);// GSM ,
if(sim_ready)//SIM .
{
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
// start_flag =!start_flag;
// if(start_flag)
// {
GPS_Location(); //
// }
sim800c_mtest_ui(40,30);
timex=0;
}
}
if(timex==0) //2.5
{
if(sim800c_gsminfo_show(40,225)==0)sim_ready=1;
else sim_ready=0;
}
if((timex%20)==0)LED0=!LED0;//200ms
timex++;
}
}
void GPS_Location()
{
char *buf;
char *p,*p1,*p2;
char longitude[10],latitude[10];
buf=mymalloc(SRAMIN,80);// 80
p=mymalloc(SRAMIN,50);// 50
if(buf==NULL||p==NULL)
{
printf("buf=mymalloc !!!!!!!!!!\r
");
}
//
while(sim800c_send_cmd("AT+CLBS=1,1","+CLBS",200))
{
printf(" \r
");
}
//+CLBS
p1=(u8*)strstr((const char*)USART3_RX_BUF,","); //
p2=(u8*)strstr((const char*)(p1+1),","); //
p2[0]=0;
sprintf((char*)longitude,"%s",p1+1); //
p1=(u8*)strstr((const char*)(p2+1),","); //
p1[0]=0;
sprintf((char*)latitude,"%s",p2+1); //
USART3_RX_STA=0;
sprintf((char*)buf,"AT+HTTPPARA=\"URL\",\"www.xiongyuchun.xyz:9999/Api/addDreamValueAPI.aspx?id=1&lng=%s&lat=%s\"",longitude,latitude); // http
sim800c_send_cmd(buf,"OK",200);
sim800c_send_cmd("AT+HTTPACTION=0","OK",200);
printf("%s\r
",buf); //
myfree(SRAMIN,buf);
myfree(SRAMIN,p);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
delay_ms(1000); // 4s
}
//gprs
void ntp_update(void)
{
u8 ;
while(sim800c_send_cmd("AT+SAPBR=3,1,\"Contype\",\"GPRS\"","OK",200))// 1
{
printf(" 1 \r
");
}
while(sim800c_send_cmd("AT+SAPBR=3,1,\"APN\",\"CMNET\"","OK",200))//
{
printf(" \r
");
}
while(sim800c_send_cmd("AT+SAPBR=1,1",0,200))// GPRS
{
printf(" GPRS \r
");
}
sim800c_send_cmd("AT+HTTPINIT","OK",200); //http
sim800c_send_cmd("AT+HTTPPARA=\"CID\",1","OK",200); // http
}
4.프로젝트 다운로드
https://download.csdn.net/download/shenlong1356/12453371