一、介绍
LinkNode R4是一个兼容Arduino的WIFI开发板,具有4路继电器,可用于强电控制,集成WIFI芯片ESP-8266EX。LinkNode R4可以直接兼容Arduino IDE上的Generic ESP8266 Module开发板,不需要做任何修改,这使得LinkNode R4开发IoT项目更加简单。
二、特点
(1)ESP-8266EX主控单元
(2)CPU主频达到80MHz
(3)Flash为2MB
(4)4路继电器模块
(5)板载电源芯片,支持12-15V电压输入
(6)跳线选择下载与运行模式
(7)4个LED继电器控制指示灯
三、继电器接口定义
WIFI接口 接口状态 继电器状态
GPIO12 0 S3 断开,D6 灭
GPIO12 1 S3 闭合,D6 亮
GPIO13 0 S4 断开,D7 灭
GPIO13 1 S4 闭合,D7 亮
GPIO14 0 S2 断开,D8 灭
GPIO14 1 S2 闭合,D8 亮
GPIO16 0 S1 断开,D9 灭
GPIO16 1 S1 闭合,D9 亮
四、教程
1、开发环境的搭建
如果你没有Arduino IDE则需要去Arduino官网下载,我所用的是Arduino1.6.8,其它版本操作大同小异。
打开Arduino IDE->文件->首选项
将http://arduino.esp8266.com/stable/package_esp8266com_index.json放到附加开发板管理器网址。
工具->开发板->开发板管理器
搜索ESP8266并安装。
安装完成后就可以到工具里面查看是否已经有Generic ESP8266 Module了。
2、控制一个继电器工作
工具:
LinkNode R4 x 1
USB转TTL x 1
直流稳压电源 x 1
注意事项:
电源输入电压范围:7V-28V,建议 12V/1A-15V/1A;
继电器输入电压(即被控电压):小于 270VAC/10A 或者 125VAC/12A;
USB转TTL与板上的RXD,TXD交叉连接,GND与GND连接,下载时用跳线帽短接Download,程序运行时短接Program。
新建工程:
将LinkNode R4通过串口与PC连接
PC端选择相应的串口并配置好参数,参数配置如下图:
将下面的程序写进新的工程,编译通过并上传。
void setup()
{
pinMode(12,OUTPUT);
Serial.begin(9600);
}
void loop()
{
digitalWrite(12,HIGH);
Serial.println(“Relay ON\n”);
delay(1000);
digitalWrite(12,LOW);
Serial.println(“Relay OFF\n”);
delay(1000);
}
上传完成,此时将跳线接到Program处,并打开串口,此时可以听到继电器咔哒咔哒的声音,同时串口打印Relay On,RelayOFF。
3、 通过IO远程控制LED的闪烁
进入www.linksprite.io注册一个账号点击选择Create DIY DeviceDevice Name LinkNode R4
Device Type 02(Simple light)
Group Name LinkNode R4
连接LinkNode R4,创建一个新的工程并将下面的代码上传。#include <ESP8266WiFi.h>#include <WString.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
// replace with your own API key and device ID,
String apikey = “xxxxxxxxxxxxxxxxxxxxxxxxxxxx”;
const char* deviceID=”xxxxxxxxxx”;
const char* server = “www.linksprite.io”;
WiFiClient client;
void setup() {
Serial.begin(115200);
pinMode(12, OUTPUT);
WiFiManager wifiManager;
wifiManager.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));
wifiManager.autoConnect(“LinkNodeAP”);
Serial.print(“WiFi Connected …\n”);
Serial.println(“WiFi connected”);
}
void loop()
{
if (client.connect(server,80))
{
String postStr =”{“;
postStr +=”\”action\”:\”query\”,”;
postStr +=”\”apikey\”:\””;
postStr += apikey;
postStr +=”\”,”;
postStr +=”\”deviceid\”:\””;
postStr += deviceID;
postStr +=”\”,”;
postStr += “\”params\”:”;
postStr += “[“;
postStr += “\”light\””;
postStr +=”]”;
postStr +=”}”;
client.print(“POST /api/http HTTP/1.1\n”);
client.print(“Host: “);
client.print(server);
client.print(“\nContent-Type: application/json\n”);
client.print(“Content-Length: “);
client.print(postStr.length());
client.print(“\n\n”);
client.print(postStr);
}
delay(1000);
Serial.println(“Store response…”);
String request = “”;
while (client.available())
{
char c = client.read();
request +=c;
}
if (request!= NULL)
{
int index1 = request.indexOf(“:{“);
int index2 = request.indexOf(“},”);
String param = request.substring(index1, index2 + 1);
Serial.print(“The param is “);
Serial.println(param);
if(param.indexOf(“off”)>0)
{
digitalWrite(12, HIGH);
Serial.println(“OFF”);
} else if(param.indexOf(“on”)>0)
{
digitalWrite(12, LOW);
Serial.println(“ON”);
}
client.stop();
Serial.println(“Waiting…”);
delay(2000);
}
}
程序中的apikey和deviceID是在www.linksprite.io中获得的。自己根据自己的apikey和deviceID修改。修改完将程序上传到LinkNode R4中,并将跳线接到Program。
配置WIFI
打开手机,连接到名字为LinkNodeAP,打开浏览器登陆10.0.0.1
选择Configure WiFi
选择一个自己的网络输入WiFi名称和密码进行连接。
打开串口波特率设置成115200,打开linksprite.com,进入我们刚创建的设备,将继电器D6接一个灯,当然我们的负载很小,只是测试。此时就可以通过linksprite.io上的Light On和Light Off控制小灯的亮灭了。
|