|
上一节已经讲到上传代码,听到继电器响声了,现在我们讨论一下如何远程操作,即用电脑控制继电器。由于这是申请的板子,我用手机控制的时候,显示此设备已经被注册过了,所以手机控制就不说了。但是还是需要下载手机APP,这个在官网上有的。
我们先回顾一下LN R4的功能和介绍。LinkNode R4是WiFi中继控制器,它由ESP-12f ESP8266 WiFi模块供电,该模块可与Arduino编程配合使用。 有4个中继通道,每个通道允许您通过板载继电器控制大功率设备(高达10 A)。 LinkNode R4可用于远程打开/关闭灯,风扇和其他设备。 WiFi接口将允许您将电路板与现有的WiFi网络相关联,并通过网络发送命令。
1.步骤1,先去官网下载手机APP,就是这个文件夹LinkNodeR4-app-master 。里面有3个APP,应该是那一个都可以使用,楼主用的是第一个,亲测可用,IOS版本官网也有提供,大家可以试一下。
2.步骤2:去这个网站注册LinkSpriteIO - Open Source IoT Platform https://www.linksprite.io/login
然后登陆。
创建完成后你就拥有一个API Key,知道了API key你就可以修改上面的源代码中的API KEY这项。
点击My Device,创建一个新设备。
创建完成可以在我的设备下看到名为eeboard的Light项目,点击图标进入。
进入后你可以看到一个设备ID号,知道了这个设备ID你就可以修改上面相应的源代码中的device ID项。
此时,API KEY以及Device ID都修改完成后就可以保存项目,编译、下载你的源代码、程序。
具体操作你也可以参照这个网址:https://www.eeboard.com/evaluation/linknode-r4/5/
上面已经写得很好了,我就不啰嗦了。
3.步骤3:和第一篇文章一样上传你的代码,下面是我的代码,不过有两个地方需要修改,改成你自己的API KEY以及Device ID。
下面是代码:
#include <esp8266wifi.h> #include <wstring.h> //the library are needed for autoconfig WiFi #include <dnsserver.h> #include <esp8266webserver.h> #include <wifimanager.h> // replace with your own API key and device ID, String apikey = "7650cba5-8b27-4f6e-8600-142f419aa3ae"; const char* deviceID="0200000121"; const char* server = "<a href="https://www.linksprite.io" ;"="">www.linksprite.io";</a> WiFiClient client; void setup() { Serial.begin(115200); pinMode(13, 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("OST /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(13, LOW); Serial.println("OFF"); } else if(param.indexOf("on")>0){ digitalWrite(13, HIGH); Serial.println("ON"); } client.stop(); Serial.println("Waiting..."); delay(2000); } }</wifimanager.h></esp8266webserver.h></dnsserver.h></wstring.h></esp8266wifi.h>4.步骤4:上传完成之后,用你的手机连接LinkNodeAP,不需要密码。
连接后点击configue wifi ,连接到你的家庭WIFI(就是和你电脑相同的WiFi),这样LinkNode R4 也连接到这个WiFi了。
5.第五步:用电脑打开你的设备,就可以控制继电器开关了。
点击light ON就会看到灯灭,点击Light OFF就会看到灯熄灭,具体哪个灯就看程序里是这么写的了,也可以同时亮,同时灭。尽情玩吧。
最后:当点击Light NO或或许Lignt OFF 的时候,会有一定的延时,长达3秒钟,这是谁都受不了的。要想得到更好的控制和操作还需要有更好的支持。当然硬件上经常复位的问题,也是一个BUG,目前还没有找到原因。就是这样了,希望下一个试用者能帮忙看一下。 |
|