欢迎来到深圳市芯元电子科技有限公司官网!

阿里商城|在线留言|网站地图

深圳市芯元电子科技有限公司

一站式wifi模块、蓝牙模块、传感器模块生产定制专家

咨询热线:

139-2841-1439

HOT热门搜索:WIFI模块

联系我们

    联 系 人:钟丽芳女士
    电    话:86 0755 83380665
    移动电话:13928411439
    地    址:中国广东深圳市福田区华强北赛格广场2342

浏览历史

您现在所在位置:首页»新闻资讯»行业新闻-wifi模块带你进入智能家居行业新闻

wifi模块带你进入智能家居

来源:深圳市芯元电子科技  发布时间:2018-12-15   点击量:551

      随着科技的发展壮大,21世纪信息革命的不断深入,智能这一词成为我们耳熟能详的词,智能家居的普及度也就随之增高,我们渐渐可以用手机或是电脑随手控制我们的物品,这也促进了近些年来物联网领域的蓬勃发展。小编今天主要讲ESP8266系列WIFI模块在物联网家居中的使用·



wifi模块带你进入智能家居之ESP8266系列WIFI模块的使用·

ESP8266是一款物联网芯片,因为价格较低,性能稳定等收到很大关注。该芯片可工作于三种种模式下,分别是:AP模式,station模式以及混合模式,通过常用的AT指令进行控制。ESP8266一款售价仅10元左右的wifi模块,价格低廉的同时内置超低功耗 Tensilica L106 32 位 RISC 处理器,CPU 时钟速度最高可达 160 MHz,支持实时操作系统 (RTOS) 和 Wi-Fi 协议栈,可将高达 80% 的处理能力留给应用编程和开发。可以说这一wifi模块是一个小型的单片机,具有8个引脚,并可外接设备实现更多功能。


 ESP8266模块有三种工作方式,分别是AP模式,Station模式以及soft-AP模式。工作在AP模式下wifi模块发出的wifi信号可被其他设备(手机、PC等)搜索到并连接上,简单点说AP模式下的该wifi模块就是一个路由器,只不过还缺少上网功能。Station模式即ESP8266模块是终端,可连接室内路由、手机热点或者AP热点,也可以通过路由接入互联网,从而手机或电脑通过互联网实现对设备的远程控制。而soft-AP模式就是前两个模式的结合。



具体实例

该实例是利用该wifi模块建立网络通信的客户端,以PC作为服务器端来实现通信的。在开始介绍这一实例之前,先介绍一下对于该模块进行编程必不可少的SDK(即很多已经写好的、方便开发者选择调用的代码块)。该SDK可从下面网址下载得到:https://www.espressif.com/zh-hans/support/download/sdks-demos

 


实例原理

要实现网络通信,就必须有一个客户端和一个服务器端,并将两端建立连接。我们将esp8266配置为客户端的步骤如下:

① 先将ESP8266设置工作于soft-AP模式,此条语句wifi_set_opmode(0x03);即可完成配置。

② 再根据SDK中提供的espconn.h头文件及协议配置连接参数,此步骤可以参照例程,不用去关心协议具体是什么。

③ 建立关于网络通信的函数及回调函数。

连接成功的回调函数、连接失败重连的回调函数、接收数据成功的回调函数、发送数据成功的回调函数、断开连接的回调函数,重点在于我们可以在回调函数中写代码以实现我们所需的功能,例如

void ICACHE_FLASH_ATTR user_tcp_recon_cb(void *arg,sint8 err){//重连回调函数

    os_printf("连接错误,错误代码为%d\r\n",err);//打印出连接错误代码

}

④ 接收数据的回调函数,或者发送数据成功的回调函数中,执行断开连接操作时,建议适当延时一定时间,确保底层函数执行结束。

 

经过这几个步骤即可完成对esp8266客户端的配置,PC上可下载网络调试助手来查看程序结果,如果想了解具体代码,可参见以下文档:

https://blog.csdn.net/qq_28877125/article/details/62898895

 
对于esp8266编程及应用实例文档在网上还有很多,比如利用wifi模块实现对led灯亮暗的控制,对家庭插座的控制等。若对物联网方面感兴趣的同学可以上某宝买个模块下来研究并实现自己想实现的功能。

 


最后的一点小建议

对于该模块的编程,还是需要多看并理解网上别人写的代码,这样才能避免自己编程序时出现不必要的麻烦~

最后附上另外几个教程的网址:

https://blog.csdn.net/d521000121/article/details/68486764

https://www.jianshu.com/p/a781855b4f1f

基本配置命令:

AT+CIOBAUD=******//修改波特率为********(模块初始波特率默认为115200,该命令通过串口助手发送,重新上电后有效)

AT+CWMODE=2//设置模块为AP模式

AT+CWSAP="111","222",11,0//设置wifi名字为111,密码是222,通道号是11,加密方式是OPEN(可以修改)

AT+CIPMUX=1//启动多路连接方式(可以修改)

AT+CIPSERVER=1,5000//开启server,端口号为5000(可以修改)

AT+CIPSEND=0,5//向id为0的链接发送5字节数据(可以修改)

2.单片机控制程序:单片机型号为STC89C52RC,晶振11.0592MHz,波特率为9600(控制程序均为自己编写且测试有效)

#include<reg51.h>



void Serial_Inti();//初始化程序(必须使用,否则无法收发)

void Uart_Sends(unsigned char *str);//发送char型字符串

//void Delay1ms(unsigned int t);//1ms延时函数

unsigned char Uart_Receive();//接收字符子函数

void Uart_Dat(unsigned char dat);//数据发送子函数

void Wifi_Init();//wifi模块初始化

void Uart_Byte(char byte);//字节发送子函数

void Delay1ms(unsigned int t);//t ms延时子函数



/*串口初始化子函数*/

void Serial_Inti()//串口初始化,一定注意不要启动T1的串口中断

{

    TMOD = 0x20;

    SCON = 0x50;

    TH1 = 0xFD;

    TL1 = TH1;

    PCON = 0x00;

ES=0;//关闭串口中断

    TR1 = 1;

}





/*字符串发送子函数(用于配置)*/

void Uart_Sends(unsigned char *str)

{

while(*str!='\0')

{

SBUF=*str;

while(!TI);//等待发送完成信号(TI=1)出现

TI=0;//清除发送中断标志位以继续发送

str++;

}

}





/*WIFI模块初始化*/

void Wifi_Init()

{

Delay1ms(3000);

Serial_Inti();

Uart_Sends("AT+CWMODE=2\r\n");

Delay1ms(2000);

Uart_Sends("AT+CWSAP=\"******\",\"*****\",11,0\r\n");//wifi名称及密码设置

Delay1ms(2000);

Uart_Sends("AT+CIPMUX=1\r\n");

Delay1ms(2000);

Uart_Sends("AT+CIPSERVER=1,5000\r\n");

}





/*字节发送子函数*/

void Uart_Byte(char byte)

{

SBUF=byte;

while(!TI);

TI=0;

}





/*数据发送子函数*/

void Uart_Dat(unsigned char dat)

{

Uart_Sends("AT+CIPSEND=0,1\r\n");

Delay1ms(1000);

Uart_Byte(dat);

Uart_Byte('\r');

Uart_Byte('\n');

Delay1ms(100);//延时100ms防止出现循环发送现象

}





/*指令接收子函数*/

unsigned char Uart_Receive()

{

unsigned char order;

RI=0;//先将接收表示位置0,防止wifi'配置使的返回信息将其置1

while(!RI);//等待接收到信息后跳出循环

order=SBUF;//当RI==1时接收到数据

RI=0;//清除接收中断标志位以继续接收

return order;

}

void Delay1ms(unsigned int t)   //误差 0us

{

    unsigned char a,b,c;

for(t;t>0;t--)

    for(c=1;c>0;c--)

        for(b=142;b>0;b--)

            for(a=2;a>0;a--);

}

另外小编发现ESP8266-12E CP2102一个比较好用的固件ESP8266_Doit_ser2net(v2.4).bin。所以方向很明确,要给12E刷新固件。



热门标签:WiFi模块

Top