51单片机通过esp8266-01s发送http请求示例
匿名 · 更新于 2023/3/6
#include <reg51.h>typedef unsigned int uint16; #define uchar unsigned char
sbit led0 = P1 ^ 0; sbit led1 = P1 ^ 1; sbit led2 = P1 ^ 2; sbit led3 = P1 ^ 3; sbit led4 = P1 ^ 4; sbit led5 = P1 ^ 5;
void delay(uint16 n) { while (n--); }
void ms_delay(uint16 t){ uint16 i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } /波特率为9600/ void UART_init(void) { SCON = 0x50; //串口方式1
TMOD = 0x20; // 定时器使用方式2自动重载 TH1 = 0xFD; //9600波特率对应的预设数,定时器方式2下,TH1=TL1 TL1 = 0xFD;
TR1 = 1;//开启定时器,开始产生波特率 }
/发送一个字符/ void UART_send_byte(unsigned char dat) { SBUF = dat; //把数据放到SBUF中 while (TI == 0);//未发送完毕就等待 TI = 0; //发送完毕后,要把TI重新置0 }
/发送一个字符串/ void UART_send_string(const char *buf) { while(*buf) UART_send_byte(*buf++); }
void main(){ UART_init(); UART_send_string("AT+CIPMUX=0\r\n"); while (1) {
ms_delay(2000); led0 = 0; UART_send_string("AT+CIPSTART="TCP","123.57.40.102",80\r\n"); ms_delay(2000); led1 = 0; UART_send_string("AT+CIPSEND=68\r\n"); ms_delay(3000); led2 = 0; UART_send_string("GET /?id=234567 HTTP/1.1\r\n"); ms_delay(2000); led3 = 0; UART_send_string("Host: 123.57.40.102\r\n"); ms_delay(2000); led4 = 0; UART_send_string("Connection: close\r\n\r\n"); ms_delay(2000); led5 = 0; delay(1); led0 = 1; led1 = 1; led2 = 1; led3 = 1; led4 = 1; led5 = 1; }
}
