博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【wifi智能家居】ESP8266 WIFI模块和mini Rboard实现手机wifi控制
阅读量:6235 次
发布时间:2019-06-22

本文共 2741 字,大约阅读时间需要 9 分钟。

  hot3.png

更新说明:由于固件升级,很多小伙伴们收到ESP8266模块后用我们的库调不通,在此诚挚道歉。发布此篇教程的时候使用的是旧版本固件,库文件设置的波特率是115200。如果调不通的话应该收到的是新版本,使用的波特率是9600。库文件我们已经在github上更新了  请知悉,谢谢!

上周终于写完ESP8266 wifi 模块的库了,测试OK!今天此开出源码和实例教程,希望能帮到大家!

主要配件:

 

                                  关于Mini Rboard的简单介绍:

步骤:

1. 烧写程序

烧写程序之前,我们需要用到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_引脚定义改为D9D10,作为软串口。

#define _DBG_RXPIN_ 9          //D9

#define _DBG_TXPIN_ 10        //D10

然后保存uartWIFI.h文件。

烧写代码:

插上FOCA,板子的类型选择“Arduino UNO”,点击烧写程序。如下图:

 

#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上。

 

Mini Rboard的引脚定义图:

 【wifi智能家居】ESP8266 <wbr>WIFI模块和mini <wbr>Rboard实现手机wifi控制

ESP8266的引脚定义图:

 

硬件实物图:

然后打开Serial监视器,按一下复位键,等待一段时间后,会看到串口显示它的ip地址:172.16.1.20,当然你也可以登陆路由器的管理后台查看到这个wifi模块的IP地址。

现在我们还需要下载一个软件来进行无线控制。

2. 下载UDP TCP Server app

打开手机的Google play,搜索UDP TCP Server,安装该软件。(不能翻墙和没有google账户和不能安装google play的小伙伴自行安装VPN和google play所需app)

 

打开该软件,点击右上角的settings,将Target IP设置为wifi的IP地址,本文为172.16.1.12,以每次分配的实际IP为准。UPD/TCP选择TCP,Target Port设置为8080,TCP connection behavior设置为“Initiate connection,and keep open”。

 

 

然后返回上一级,点击Button Settings。设置buttons的数量为8个(适用于4通道的Rboard),分别在button的名字和命令上修改成:“CH0ON”, “CH1ON”, “CH2ON”, “CH3ON”, “CH0OFF”,“CH1OFF”, “CH2OFF”, “CH3OFF”。这分别代表设置对应继电器通道的开关状态。此次测试用的mini Rboard只需要用到“CH0ON”和“CH0OFF”这一个通道。

 

返回主页面,我们可以看到按钮的名称已改变,点击对应的按钮后,会看到mini Rboard上对应的通道设置为按钮上的状态。

测试视频:

分享: 13163828_Okse.gif 13163828_Okse.gif  

转载于:https://my.oschina.net/u/1777508/blog/355820

你可能感兴趣的文章
修改Linux系统时间
查看>>
phalcon:使用路由和命名空间实现分组or模块化
查看>>
LVM Mirror Raid1管理
查看>>
last 命令:
查看>>
为linux安装epel-yum仓库
查看>>
自动登录TP-LINK路由器,获取所有信息,重启等等,实用方法
查看>>
ajax调用mvc控制器
查看>>
HTML特殊字符替换问题 html escape相关
查看>>
XCode打包出现does not contain a single boundle错误解决办法
查看>>
ifcfg, ip/ss,配置文件详解
查看>>
mac安装web3j
查看>>
扣丁音乐 个人练习源码下载
查看>>
对称加密PBE(代码实现)
查看>>
我的友情链接
查看>>
循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)
查看>>
Inagios_强势来袭_IT运维人人必备
查看>>
dedecms搬场具体申明 织梦吧浑算
查看>>
pxe
查看>>
万事都源于一个字:缘
查看>>
jQuery表单验证插件
查看>>