如何利用51单片机WiFi温湿度实现远程控制

电子说

1.3w人已加入

描述

硬件

STC89C52RC单片机最小系统

ESP8266系列模块

5V继电器模块

蜂鸣器

DHT11温湿度传感器

软件

keil4

sbit LED1=P1^0; //手动自动状态

sbit LED2=P1^1; //湿度状态

sbit LED3=P1^2; //温度状态

sbit K1=P1^3;

sbit K2=P1^4;

sbit K3=P1^5;

sbit FMQ=P1^6;

易安卓PC

功能

单片机通过串口与8266进行通信,8266通过AP模式建立服务器与手机进行通信进行数据传输,通过手机设置温湿度报警上限,有手动与自动两种模式,还加了三个按键可以手动控制三个继电器,基本功能就是这样,后期增加OLED屏幕将进行同步显示。

8266调试步骤

阿阳QQ1137035271欢迎相互学习

AT测试WiFi模块是否正常 正常返回值OK

单片机晶振11.0592 串口通信波特率9600.所以要将8266波特率设置为9600

指令AT+UART=9600,8,1,0,0要看到返回值OK

设置WiFi模块工作模式 局域网AP模式选择2 指令AT+CWMODE=2

然后设置WiFi热点 指令AT+CWSAP=“AP热点名称”,“密码都可以自己设置”,11,4 名称密码自己可以修改,这一步有没有都可以,单片机代码有这一步就不需要这里修改了。

单片机最好有 复位按键,方便测试防止死机

下面是自用程序片段

void ESP8266_SERVER(void)//建立服务器

{

Send_Str(“AT ”);

delayms(500);

Send_Str(“AT+CWMODE=2 ”); //服务器搭建在WIFI模块上

delayms(500);

Send_Str(“AT+CWSAP=“wifi”,“12345678”,5,3 ”); //设置显示名称:wifi,密码:12345678

delayms(1500);

Send_Str(“AT+CIPMUX=1 ”);//启动多连接,建立服务器都需要配置

delayms(500);

Send_Str(“AT+CIPSERVER=1,5000 ”);//建立服务器

delayms(500);

Send_Str(“AT+CIPSTO=0 ”);

}

易安卓界面截图以及部分源码

事件 按钮1.被单击()

如果 K1开关=“1” 则

客户1.发送数据(文本到字节(“GPIO0=00;”,“GBK”))

标签1.标题=“自动开”

否则

客户1.发送数据(文本到字节(“GPIO0=01;”,“GBK”))

标签1.标题=“自动关”

结束 如果

结束 事件

事件 按钮2.被单击()

如果 K2开关=“1” 则

客户1.发送数据(文本到字节(“GPIO0=10;”,“GBK”))

标签1.标题=“加热开”

否则

客户1.发送数据(文本到字节(“GPIO0=11;”,“GBK”))

标签1.标题=“加热关”

结束 如果

结束 事件

下面是手机APP界面

责任编辑:PSY

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分