更新说明:由于固件升级,很多小伙伴们收到ESP8266模块后用我们的库调不通,在此诚挚道歉。发布此篇教程的时候使用的是旧版本固件,库文件设置的波特率是115200。如果调不通的话应该收到的是新版本,使用的波特率是9600。库文件我们已经在github上更新了https://github.com/itead/ITEADLIB-ESP8266 请知悉,谢谢!
上周终于写完ESP8266 wifi
模块的库了,测试OK!今天此开出源码和实例教程,希望能帮到大家!
主要配件:
http://s2/mw690/003bqY9ggy6MPIcdaJHd1&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
关于Mini Rboard的简单介绍:
http://s10/mw690/003bqY9ggy6MPIcbpB709&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
步骤:
1. 烧写程序
烧写程序之前,我们需要用到ESP8266库,下载地址为:
https://github.com/itead/ITEADLIB-ESP8266
温馨提示: ESP8266 wifi库文件是基于arduino IDE
1.0.5版本编译的,如遇编译不过,请尝试其他版本。
下载后放到arduino
IDE的libraries文件夹里面,打开库中的uartWIFI.h文件,因为我们的mini
RBoard使用的是跟UNO一样的芯片,所以要在H文件里去掉定义UNO的注释,注释掉MEGA定义。
#define UNO
//#define MEGA
然后把_DBG_RXPIN_和_DBG_TXPIN_引脚定义改为D9和D10,作为软串口。
#define _DBG_RXPIN_
9
//D9
#define _DBG_TXPIN_
10
//D10
然后保存uartWIFI.h文件。
烧写代码:
插上FOCA,板子的类型选择“Arduino
Duemilanove/ATMega328”,点击烧写程序。如下图:
http://s12/mw690/003bqY9ggy6MPILXM1B7b&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
#define SSID
"Itead_1(Public)" //type your own SSID
name
#define PASSWORD "27955416" //type your own
WIFI password
#include "uartWIFI.h"
#include "SoftwareSerial.h"
WIFI wifi;
extern int chlID; //client id(0-4)
void setup()
{
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
wifi.begin();
bool b = wifi.Initialize(STA, SSID,
PASSWORD);
if(!b)
{
DebugSerial.println("Init error");
}
delay(8000); //make sure
the module can have enough time to get an IP
address
String ipstring =
wifi.showIP();
DebugSerial.println(ipstring); //show the
ip address of module
delay(2000);
wifi.confMux(1);
delay(100);
if(wifi.confServer(1,8080))
DebugSerial.println("Server is set up");
}
void loop()
{
char buf[100];
int iLen = wifi.ReceiveMessage(buf);
if(iLen > 0)
{
//mini Rboard D4 pin is
relay,mini Rboard
URL:http://item.taobao.com/item.htm?spm=a1z10.3.w4002-2605688463.12.EMkeTJ&id=39334222369
if (strcmp(buf, "CH0ON")
== 0)
{
digitalWrite(4,HIGH);
DebugSerial.println("CH0ON");
}
if (strcmp(buf,
"CH0OFF") == 0)
{
digitalWrite(4,LOW);
DebugSerial.println("CH0OFF");
}
}
}
黏贴代码到arduino
IDE中,在SSID和PASSWORD宏定义中修改成自己的路由器WIFI名称和密码。
#define
SSID
"Itead_1(Public)"
//type your own SSID name
#define
PASSWORD
"27955416"
//type your own WIFI password
编译,烧写,OK!
接下来我们还需要用到foca来读取串口信息,查看wifi状态。
按照以下连接方式连接FOCA和ESP8266到mini
Rboard上。
http://s2/mw690/003bqY9ggy6MPIc7Gff21&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
2015年1月29日修正:此图的foca串口接反了,TX应该接D9,RX接D10。
或者将库文件的9和10反过来。
#define _DBG_RXPIN_ 10
//A0
#define _DBG_TXPIN_ 9
//A1
另外说明:如果使用UNO请提供额外9V/1A适配器供电。Arduino
IDE编译版本使用1.0.6以上
Mini Rboard的引脚定义图:
http://s2/mw690/003bqY9ggy6MPIc9p3be1&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
ESP8266的引脚定义图:
http://s1/mw690/003bqY9ggy6MPIclxBuf0&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
硬件实物图:
http://s7/mw690/003bqY9ggy6MPIcnxJ4b6&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
然后打开Serial监视器,按一下复位键,等待一段时间后,会看到串口显示它的ip地址:172.16.1.20,当然你也可以登陆路由器的管理后台查看到这个wifi模块的IP地址。
http://s4/mw690/003bqY9ggy6MPIcjz7Jd3&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
现在我们还需要下载一个软件来进行无线控制。
2. 下载UDP TCP Server app
打开手机的Google play,搜索UDP TCP
Server,安装该软件。(不能翻墙和没有google账户和不能安装google
play的小伙伴自行安装VPN和google
play所需app)
http://s11/mw690/003bqY9ggy6MPIc0TYm7a&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
打开该软件,点击右上角的settings,将Target
IP设置为wifi的IP地址,本文为172.16.1.12,以每次分配的实际IP为准。UPD/TCP选择TCP,Target
Port设置为8080,TCP connection
behavior设置为“Initiate connection,and keep
open”。
http://s7/mw690/003bqY9ggy6MPIchaEC76&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
http://s12/mw690/003bqY9ggy6MPIc5dfdbb&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
然后返回上一级,点击Button
Settings。设置buttons的数量为8个(适用于4通道的Rboard),分别在button的名字和命令上修改成:“CH0ON”,
“CH1ON”,
“CH2ON”,
“CH3ON”,
“CH0OFF”,
“CH1OFF”,
“CH2OFF”,
“CH3OFF”。这分别代表设置对应继电器通道的开关状态。此次测试用的mini
Rboard只需要用到“CH0ON”和“CH0OFF”这一个通道。
http://s5/mw690/003bqY9ggy6MPIc3gUsd4&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
返回主页面,我们可以看到按钮的名称已改变,点击对应的按钮后,会看到mini
Rboard上对应的通道设置为按钮上的状态。
http://s9/mw690/003bqY9ggy6MPIcfqL658&690WIFI模块和mini Rboard实现手机wifi控制" TITLE="【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制" />
测试视频:
加载中,请稍候......