找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5336|回复: 10
收起左侧

温湿度wifi手机控制89c52单片机芯片 含e4a源码

  [复制链接]
ID:396487 发表于 2018-10-21 22:29 | 显示全部楼层 |阅读模式

app程序

app程序
22.png


WIFI模块如何传送数据说明
用电脑串田口发送命令。来验证模块与手机通信方法(波特率9600,每条命令后必须加换行回车符,命令一条一条发):

AT

AT+CWMODE=2

AT+CWSAP="ESP8266_001","12345678",11,4

AT+CIPMUX=1

AT+CIPSERVER=1,5000

AT+CIPSTO=0

发完以上命令后,打开手机WIFI,找到"ESP8266_001"这个WIFI名,连接,密码:12345678

之后,再打开APP,点连接,用电脑串田口发送下面命令。就实现WIFI模块传送数据了。

AT+CIPSEND=0,7

T121210


电脑发送命令:
AT+CWMODE=2
AT+CWSAP="wifi_yuan","123456789",11,4
AT+CIPMUX=1
AT+CIPSERVER=1,5000
AT+CIPSTO=0
AT+CIPSEND=0,28 用这条命令就可以传数据了

单片机源程序:
  1. #include "DHT11.h"
  2. #include <stdio.h>
  3. #include "string.h"
  4. extern unsigned char  F16T,F16RH;                //温湿度数据
  5. sbit LED1=P2^0;
  6. sbit LED2=P2^3;
  7. sbit LED3=P2^6;
  8. #define uchar unsigned char
  9. #define uint unsigned int
  10. unsigned char idata Rxbuff[40],Rxnum,SF16T,SF16RH;
  11. unsigned char        Recwifi_data[5],led[2],n,x;
  12. char *strx=0;
  13. char clinetid;//连接ID
  14. unsigned char getflag;//获取标志
  15. void Get_Clinet(void);
  16. void InitUART(void)                         //这是串口的基本配置,配置他的波特率是9600.这些参数都是标准的。
  17. {
  18.     TMOD = 0x20;
  19.     SCON = 0x50;
  20.     TH1 = 0xFD;
  21.     TL1 = TH1;
  22.     PCON = 0x00;
  23.     EA = 1;
  24.     ES = 1;
  25.     TR1 = 1;
  26. }

  27. /******************************************************************************/
  28. void delayms(unsigned int x)
  29. {
  30.         unsigned int i;
  31.         while(x--)
  32.                 for(i=125;i>0;i--);
  33. }
  34. /*
  35. * UART 发送一字节
  36. */
  37. void UART_send_byte(char dat)
  38. {
  39.         SBUF = dat;                                        //发送
  40.         while (TI == 0);                        //等待发送完毕
  41.         TI = 0;                                                //清发送完毕中断请求标志位
  42. }

  43. /*
  44. * UART 发送字符串
  45. */
  46. void Send_Str(unsigned char *buf)
  47. {
  48.         while (*buf != '\0')
  49.         {
  50.                 UART_send_byte(*buf++);
  51.         }
  52. }

  53. void ESP8266_SERVER(void)//建立服务器
  54. {
  55.         Send_Str("AT\r\n");
  56.         delayms(500);
  57.         Send_Str("ATE0\r\n");
  58.         delayms(500);
  59.         Send_Str("AT+CWMODE=2\r\n");          //服务器搭建在WIFI模块上
  60.         delayms(500);
  61.            Send_Str("AT+CWSAP=\"wifi\",\"12345678\",5,3\r\n");          //设置显示名称:wifi,密码:12345678
  62.         delayms(500);
  63.         Send_Str("AT+CIPMUX=1\r\n");//启动多连接,建立服务器都需要配置
  64.         delayms(500);        
  65.         Send_Str("AT+CIPSERVER=1,5000\r\n");//建立服务器
  66.         delayms(500);        
  67.         Send_Str("AT+CIPSTO=0\r\n");

  68. }

  69. void Send_DATA(uchar *buffer)
  70. {
  71.     Send_Str("AT+CIPSEND=0,11\r\n");
  72.         delayms(10);
  73.     Send_Str(buffer);//发送数据
  74.         delayms(1000);
  75.         if((Rxbuff[0]=='1')&&(Rxbuff[1]=='1'))//关灯
  76.         {
  77.                 LED1=1;
  78.                 x=1;
  79.         }
  80.         if((Rxbuff[0]=='1')&&(Rxbuff[1]=='0'))//开灯
  81.         {
  82.                 LED1=0;
  83.                 x=0;
  84.         }
  85.         if(x==0)
  86.         {
  87.          if(F16T>=SF16T)
  88.                  LED2=0;
  89.                  else LED2=1;
  90.                  if(F16RH>=SF16RH)
  91.                  LED3=0;
  92.                  else LED3=1;
  93.         }
  94.         else
  95.         {
  96.                 if((Rxbuff[0]=='2')&&(Rxbuff[1]=='1'))        //关灯
  97.                         LED2=1;
  98.                  if((Rxbuff[0]=='2')&&(Rxbuff[1]=='0'))//开灯
  99.                         LED2=0 ;
  100.                 if((Rxbuff[0]=='3')&&(Rxbuff[1]=='1'))        //关灯
  101.                         LED3=1;
  102.                  if((Rxbuff[0]=='3')&&(Rxbuff[1]=='0'))//开灯
  103.                         LED3=0 ;
  104.         }
  105.         if((Rxbuff[0]=='5')&&(Rxbuff[1]=='1'))        //加温度定值
  106.         {
  107.                 SF16T++;
  108.             if(SF16T>50)
  109.         SF16T=50;
  110.                 Rxbuff[1]=9;
  111.         }
  112.          if((Rxbuff[0]=='5')&&(Rxbuff[1]=='0'))//减温度定值
  113.         {
  114.                 SF16T--;
  115.             if(SF16T<1)
  116.         SF16T=1;
  117.                 Rxbuff[1]=9;
  118.         }
  119.         if((Rxbuff[0]=='6')&&(Rxbuff[1]=='1'))        //加湿度定值
  120.         {
  121.                 SF16RH++;
  122.             if(SF16RH>90)
  123.         SF16RH=90;
  124.                 Rxbuff[1]=9;
  125.         }
  126.          if((Rxbuff[0]=='6')&&(Rxbuff[1]=='0'))//减湿度定值
  127.         {
  128.                 SF16RH--;
  129.             if(SF16RH<20)
  130.         SF16RH=20;
  131.                 Rxbuff[1]=9;
  132.         }


  133. }
  134. void main()
  135. {
  136.           unsigned char   Tx_Buf[12];
  137.           unsigned char LEDstatus;//灯的状态
  138.         delayms(500);
  139.         delayms(1000);          //延时一段时间,让WIFI模块稳定
  140.          InitUART();                        //初始化串口
  141.     ESP8266_SERVER();        //初始化ESP8266
  142.         SF16T=25;
  143.         SF16RH=50;
  144.         x=1;
  145.          while(1)        
  146.         {         
  147.                   getDHT11(); //获取温湿度值
  148.                   Tx_Buf[0]=F16T/10%10+0x30;                 //将温湿度数据送往发送数组,送给模块让手机APP显示
  149.                   Tx_Buf[1]=F16T%10+0x30;               
  150.                   Tx_Buf[2]=F16RH/10%10+0x30;
  151.                   Tx_Buf[3]=F16RH%10+0x30;
  152.                   Tx_Buf[4]=SF16T/10%10+0x30;                 //将温湿度数据送往发送数组,送给模块让手机APP显示
  153.                   Tx_Buf[5]=SF16T%10+0x30;               
  154.                   Tx_Buf[6]=SF16RH/10%10+0x30;
  155.                   Tx_Buf[7]=SF16RH%10+0x30;
  156.                 LEDstatus=LED1;
  157.                    Tx_Buf[8]=LEDstatus+0x30;//发送灯的状态
  158.                 LEDstatus=LED2;
  159.                 Tx_Buf[9]=LEDstatus+0x30;
  160.                 LEDstatus=LED3;
  161.                 Tx_Buf[10]=LEDstatus+0x30;
  162.                    Send_DATA(Tx_Buf)        ;//发送数据
  163.         }
  164. }

  165. /*****************串口接收中断函数,接收数据*********************/
  166. void UARTInterrupt(void) interrupt 4
  167. {        
  168.         if(RI)
  169.     {
  170.                 ES=0;
  171.         RI = 0;
  172.               Rxbuff[Rxnum]=SBUF;
  173.                 if(Rxbuff[Rxnum]=='=')
  174.                 {
  175.                         Rxnum=0;
  176.                 }
  177.             else
  178.                 {
  179.                         Rxnum++;
  180.                         if(Rxnum>2)
  181.                         {
  182.                                 Rxnum=2;
  183.                         }
  184.                 }
  185.                 ES=1;
  186.     }         
  187. }
复制代码

全部资料51hei下载地址:
A075_WIFI_温度湿度控制.rar (990.49 KB, 下载次数: 271)

评分

参与人数 1黑币 +9 收起 理由
zqy181818 + 9 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:396487 发表于 2018-10-21 22:32 | 显示全部楼层
本人花钱买的,免费提供给大了。
回复

使用道具 举报

ID:396487 发表于 2018-10-22 15:00 来自手机 | 显示全部楼层
admin 发表于 2018-10-22 02:21
插图所示的软件没有?

哪个是是e4a,app编程用的,大家需要我上传便是
回复

使用道具 举报

ID:458665 发表于 2018-12-30 17:49 | 显示全部楼层
请问有e4a编程APP的那个源码吗?
回复

使用道具 举报

ID:358930 发表于 2019-1-4 22:43 来自手机 | 显示全部楼层
mykt2012 发表于 2018-10-22 15:00
哪个是是e4a,app编程用的,大家需要我上传便是

大家都要上传呗
回复

使用道具 举报

ID:63317 发表于 2019-1-5 09:13 | 显示全部楼层
有E4A源码 很好
回复

使用道具 举报

ID:463537 发表于 2019-1-7 17:29 | 显示全部楼层
真的太六了,我试一下
回复

使用道具 举报

ID:525913 发表于 2019-5-2 12:45 来自手机 | 显示全部楼层
问一下楼主这个在哪买的
回复

使用道具 举报

ID:739435 发表于 2020-4-27 18:26 | 显示全部楼层
请问楼主有实物图吗?
回复

使用道具 举报

ID:783912 发表于 2022-3-27 13:32 来自手机 | 显示全部楼层
文件有e4a源码吗?
回复

使用道具 举报

ID:537276 发表于 2023-3-21 16:24 | 显示全部楼层
请问楼主有实物图吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表