stm 32 SIM 800 C 모듈 포 지 셔 닝 을 이용 하여 이 모듈 http 프로 토 콜 을 통 해 서버 에 보 냅 니 다.

4012 단어 stm 32 와 ARM
1.http 기본 명령
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
 

좋은 웹페이지 즐겨찾기