Sivo 悉见

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=&quot;TCP&quot;,&quot;123.57.40.102&quot;,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;     }

}