请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 732|回复: 7

WIFI-ESP8266 无线控制

[复制链接]

4

主题

176

帖子

536

积分

高级会员

Rank: 4

积分
536
发表于 2019-5-30 14:48:53 | 显示全部楼层 |阅读模式
实现的功能是:通过手机 APP 控制开发板上的 LED 灯,同时开发板上的 DS18B20 温度传感器采集的温度上传到手机 APP 端显示。
如果要控制别的东西程序稍作修改即可
测试使用的是安卓手机app程序为tcp连接,可以在应用商城下载(附件中也有安装包),
主程序 (完整的程序在附件中)
#include "public.h"                         
#include "temp.h"


sbit ESP8266_RST_Pin=P2^4;
sbit ESP8266_CH_PD_Pin=P2^3;

sbit led1=P1^0;
//sbit led2=P1^1;
sbit led3=P1^2;
//sbit relay=P1^4;

#define RELOAD_COUNT 0xFA //宏定义波特率发生器的载入值 9600

#if 1
u8 RecBuf[50];
u8 dat;
u8 recFlagOK=0;
#endif

u8 tempData[9];

void UART_Init()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=RELOAD_COUNT;        //计数器初始值设置
        TL1=TH1;
        ES=0;                                //关闭接收中断
        EA=1;                                //打开总中断
        TR1=1;                                //打开计数器
}

void UART_SendByte(u8 dat)
{
        ES=0; //关闭串口中断
        TI=0; //清发送完毕中断请求标志位
        SBUF=dat; //发送
        while(TI==0); //等待发送完毕
        TI=0; //清发送完毕中断请求标志位
        ES=1; //允许串口中断
}

void ESP8266_SendCmd(u8 *pbuf)
{
        while(*pbuf!='\0') //遇到空格跳出循环       
        {
                UART_SendByte(*pbuf);
                delay_10us(5);
                pbuf++;       
        }
        delay_10us(5);
        UART_SendByte('\r');//回车
        delay_10us(5);
        UART_SendByte('\n');//换行
        delay_ms(1000);
}

void ESP8266_SendData(u8 *pbuf)
{
        ESP8266_SendCmd("AT+CIPSEND=0,9");
        while(*pbuf!='\0') //遇到空格跳出循环       
        {
                UART_SendByte(*pbuf);
                delay_10us(5);
                pbuf++;       
        }
        delay_10us(5);
        UART_SendByte('\n');//换行       
        delay_ms(10);
}

//ESP8266-WIFI模块工作模式初始化
void ESP8266_ModeInit(void)
{
        ESP8266_RST_Pin=1;
        ESP8266_CH_PD_Pin=1;

        ESP8266_SendCmd("AT+CWMODE=3");//设置路由器模式 1 staTIon模式 2 AP点 路由器模式 3 station+AP混合模式
        ESP8266_SendCmd("AT+CWSAP=\"PRECHIN\",\"prechin168\",11,0"); //设置WIFI热点名及密码
        ESP8266_SendCmd("AT+CIPAP=\"192.168.4.2\"");//重新启动wifi模块
        ESP8266_SendCmd("AT+RST");//重新启动wifi模块
        ESP8266_SendCmd("AT+CIPMUX=1");        //开启多连接模式,允许多个各客户端接入
        ESP8266_SendCmd("AT+CIPSERVER=1,8080");        //启动TCP/IP 端口为8080 实现基于网络控制       
}

//温度数据处理
#if 1
void TempDataPros(void)
{
        int tempdat=0;

        tempdat=Ds18b20ReadTemp()*10;
        if(tempdat<0)
        {
                tempData[0]='-';
        }               
        else
        {
                tempData[0]=' ';       
        }
                       

        tempData[1]=tempdat / 10000+0x30;
        tempData[2]=tempdat % 10000 / 1000+0x30;
        tempData[3]=tempdat % 1000 / 100+0x30;
        tempData[4] ='.';
        tempData[5]=tempdat % 100 / 10+0x30;
        tempData[6]=tempdat % 10+0x30;
        tempData[7] ='C';
        tempData[8] ='\0';               
}       
#endif

void main()
{       
        u16 i=0;

        led1=led3=1;
//        relay=1;

        UART_Init(); //串口初始化
        ESP8266_ModeInit();
        ES=1; //允许串口中断
        while(1)
        {
                i++;
                if(i%10==0)
                {
                        led3=!led3;
                        TempDataPros();
                        ESP8266_SendData(tempData);
                }
                delay_ms(10);
        }               
}

#if 1
void InterruptUART() interrupt 4   
{
        RI = 0;        //清零
        dat = SBUF;    //收到的数据占存到SBUF中
          {
         if(dat=='o')
                                 {
                                         led1 =0;   
                                 }
                                 if(dat=='f')  
                                 {                                                 
                                    led1 =1;
                                 }                                         
          }
}
#endif


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

4

主题

176

帖子

536

积分

高级会员

Rank: 4

积分
536
 楼主| 发表于 2019-5-30 14:49:50 | 显示全部楼层
tcp连接的安装包

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

2

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2019-7-9 14:12:49 | 显示全部楼层
给你dianzhan一个
回复 支持 反对

使用道具 举报

1

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2019-7-21 18:11:53 | 显示全部楼层
我的板子上面为啥没有usb转ttl模块啊?
回复 支持 反对

使用道具 举报

4

主题

176

帖子

536

积分

高级会员

Rank: 4

积分
536
 楼主| 发表于 2019-7-22 16:00:46 | 显示全部楼层
soulreaper 发表于 2019-7-21 18:11
我的板子上面为啥没有usb转ttl模块啊?

什么开发板, 普中除了dsp 其他开发版全部是带有自动下载电路的,miniUSB接口那一块就是
回复 支持 反对

使用道具 举报

1

主题

10

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2019-7-28 10:31:14 | 显示全部楼层
点赞一个,不错的分享,我也试试
回复 支持 反对

使用道具 举报

1

主题

8

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 5 天前 | 显示全部楼层
这个跟那些个小车的差不多,有没有32的
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|51开发板专区 STM32开发板专区 PLC工控专区 PLC学习机专区 ( 粤ICP备18101765号 )

GMT+8, 2019-9-22 06:19 , Processed in 0.165044 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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