通过WiFi远程控制插座的开与关,可远程操控插座的开启与关闭。 a.采用0.96英寸OLED显示屏显示插座状态信息与WiFi信息。 b.通讯模块采用ESP8266WiFi模块。 c.主控模块采用STM32F103C8T6核心板。
d.执行模块采用单路光耦继电器。 核心板使用串口与ESP8266进行通信,接收WiFi模块回传的指令,从而控制继电器的开与关。ESP8266使用AT固件,在初始化时配置成AP兼Station模式,使用TCP协议模拟成TCP服务端。PC端盖通过链接WiFi模块生成的热点,使用网络调试助手即可与WiFi模块通信。STM32核心板通过串口与WiFi模块通信,并通过串口初始化WiFi模块与接收指令。再对串口接收到的数据进行判断,控制IO口的电平从而起到对继电器的控制。
AT指令:
AT+CWMODE=3 | | | | AT+CWSAP=”ssid”,”pwd”,”chl”,”ecn” | | | | | | 1. 硬件示意图
制作出来的实物图如下:
3. 程序设计/************************************************************/ /**************************主函数****************************/ /************************************************************/
void JTAG_Set(u8 mode) { u32 temp; temp=mode; temp<<=25; RCC->APB2ENR|=1<<0; //开启辅助时钟 AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24] AFIO->MAPR|=temp; //设置jtag模式 } u8 ch='0'; int main(void) { delay_init(); //初始化延时函数 LED_GPIO_Config(); //初始化IO口 JTAG_Set(JTAG_SWD_DISABLE); JTAG_Set(SWD_ENABLE); USART_Config(); //初始化串口 IIC_Init(); //初始化IIC总线 OLED_Init(); //初始化OLED oled_1(); ESP8266_Init(); //初始化Wifi模块 oled_2(); while(1){ //接受串口数据并判断 ch=getchar(); if(ch=='0'){ KEY_OFF } else if(ch=='1'){ KEY_ON } } } /******************************************************/
全部程序51hei下载地址:
WiFi智能插座.7z
(209.75 KB, 下载次数: 265)
|