abotomson 发表于 2023-5-29 10:33

单片机+ESP8266点亮LED小灯


ESP8266模块采用STA工作模式,先在电脑上用串口调试助手,将ESP8266模块设置为STA模式,波特率9600,具体指令如下:
1. 设置AP模式 AT+CWMODE=2
2. 复位生效 AT+RST
3. 配置热点 AT+CWSAP="test","12345678",1,3
这样即使ESP8266复位也不会将这些信息擦除,直接上后面的指令就可以
单片机接ESP8266一定注意两者一定要共地,否则ESP8266不能正常工作,ESP8266电源要3.3V供电,5V的貌似不行,ESP8266的EN脚外接一个1K欧的电阻再接3.3V电源
http://c.51hei.com/d/forum/202003/21/113459rusu0xcuzqj0qkxy.jpg
#include<reg52.h>
typedef unsigned char u8;
typedef unsigned int u16;
sbit LED = P1^0;u8 dat;
void Init(void);//串口初始化函数
void Delay_ms(u16 n);//延时子函数
void Sent_ZF(u8 dat);//发送一个字节
void AT_Send_String(u8 *string);//发送字符串
void ESP8266_Init();//ESP8266初始化
void Init(void)                //串口初始化函数
{

      TMOD=0x20;      //定时器工作方式2,8位自动重载(0010 0000)
      TL1=0xfd;                //装入初值
      TH1=0xfd;               
      TR1=1;      //启动定时器1
      REN=1;    //允许串行口接收数据
      SM0=0;    //工作方式1,10位异步收发
      SM1=1;   
      EA=1;   //打开全局中断控制
      ES=1;   //打开串行口中断
}

void main()
{
    Init();
    ESP8266_Init();
    while(1);
}

void Sent_ZF(u8 dat)//发送一个字节
{
      ES = 0;
      TI=0;
      SBUF = dat;
      while(!TI);
      TI = 0;
      ES = 1;
}
void Delay_ms(u16 n)//延时子程序
{
      unsigned int i,j;
      for(i=0;i<n;i++)
      for(j=0;j<123;j++);
}

void AT_Send_String(u8 *string)//发送字符串
{
while(*string!='\0')
{
    Sent_ZF(*string);
      string++;
                Delay_ms(10);
}

}
void ESP8266_Init()   //ESP8266初始化
{      
         AT_Send_String("AT+RST\r\n");//重启模块
      Delay_ms(10000);
      Delay_ms(10000);
    AT_Send_String("AT+CIPMUX=1\r\n");//设置为多连接模式,启动模块
      Delay_ms(10000);
      Delay_ms(10000);
AT_Send_String("AT+CIPSERVER=1,8080\r\n"); //服务器的设置端口
          Delay_ms(10000);
      Delay_ms(10000);
}

void InterruptUART() interrupt 4//控制小灯开关
{
      RI= 0;      //清零
      dat= SBUF;    //收到的数据占存到SBUF中
          {
         if(dat=='o')
                                 {
                                       LED =0;   
                                 }
                                 if(dat=='f')
                                 {                                                
                                    LED =1;
                                 }                                       
          }
}

cemaj 发表于 2023-6-6 12:16

如何用ESP8266模块远程控制打开灯

primojones 发表于 2023-6-6 13:30

esp8266有什么用            

backlugin 发表于 2023-6-6 14:54

求助用wifi ESP8266通过手机控制点亮LED灯

alvpeg 发表于 2023-6-6 15:21

在proteus8.0里面怎么使用ESP8266这个模块进行模拟

houjiakai 发表于 2023-6-6 17:24

esp8266-01s可以控制灯的颜色吗

wangdezhi 发表于 2023-6-6 17:45

求ESP8266模块的完整教程

alvpeg 发表于 2023-6-10 10:48

怎么实现远距离控制小灯            

maqianqu 发表于 2023-7-9 14:38

在程序中配置ESP8266的串口(UART)与单片机进行通信。

macpherson 发表于 2023-7-9 15:43

建议参考相应的单片机和ESP8266模块的数据手册、编程指南以及相关的开发文档来获取详细的指导和代码示例。

eefas 发表于 2023-7-10 17:52

使用 ESP8266 WiFi 模块连接到 WiFi 网络,并设置 IP 地址和子网掩码等参数。使用 ESP8266 WiFi 模块发送指令,控制单片机输出引脚的电平,以点亮 LED 小灯。

jkl21 发表于 2023-7-10 19:31

具体的实现方式可能因硬件和软件环境的不同而有所差异。

rosemoore 发表于 2023-7-10 22:00

ESP8266可以通过无线网络轻松地远程控制LED的亮度和开关状态。

chenjun89 发表于 2023-7-11 08:35

ESP8266真的是性价比和可玩性超高啊

1988020566 发表于 2023-7-11 22:05

可以定义简单的通信协议,例如使用特定的指令或命令字来控制LED。

mollylawrence 发表于 2023-7-12 18:13

需要使用单片机的串行通信库或驱动程序来发送和接收指令的。

lzmm 发表于 2023-7-13 14:02

使用相关的应用程序或网页来远程控制LED灯?

benjaminka 发表于 2023-7-13 15:39

在ESP8266程序中发送相应的指令给单片机,然后单片机根据指令改变LED的状态。

chenci2013 发表于 2023-7-13 16:34

使用单片机通过串行通信与ESP8266进行通信。你可以使用AT指令集来配置ESP8266模块的Wi-Fi连接。

zerorobert 发表于 2023-7-13 17:25

使用 PIC 或 AVR 单片机与 ESP8266 WiFi 模块,可以实现点亮 LED 小灯的功能。
页: [1] 2
查看完整版本: 单片机+ESP8266点亮LED小灯