现在我开发用的是Arduino esp8266,这个软件用起来的话就是更简单,入门快。基本的指令敲几行之后就可以连接到。服务器并且能够智能配网。并且对esp8266上边儿的引脚控制也比较简单。然后就是相当于带有WiFi的单片机吧,感觉挺好用的(下载的时候点击一下鼠标,自动下载过程中不需要按任何按键,下载完成后按一下复位就运行了)。然后下面就是把我智能配网跟那个连接服务器这边的代码贴上去。服务器的话用的是网络助手工具(设置的IP地址最好是本机电脑的地址),在局域网进行配置。接着对我的esp8266模块儿,进行配网并与该服务器进行通信,最后实现数据的收发测试。其中代码部分也参考的部分网友的,然后进行了整合。
#include <ESP8266WiFi.h>;
WiFiClient client;
#define relay1 2 //继电器连接在8266的GPIO2上
const IPAddress serverIP(10,168,1,121);//想要访问的目标地址
uint16_t serverPort = 8080;//服务器端口号
int m=0;
void setup() {
Serial.begin(115200);
delay(10);
// 必须采用 AP 与 Station 兼容模式
WiFi.mode(WIFI_AP_STA);
delay(500);
// 等待配网
WiFi.beginSmartConfig();
// 收到配网信息后ESP8266将自动连接,WiFi.status 状态就会返回:已连接
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
// 完成连接,退出配网等待。
Serial.println(WiFi.smartConfigDone());
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
Serial.println(serverIP);
Serial.println(serverPort);
while (!client.connect(serverIP,serverPort)) {
Serial.println("connection failed");
//return;
delay(500);
}
Serial.print("connecting to ");
//Serial.println(host);
client.write("connect");//绑定apikey,修改成你自己的apikey
delay(10);
}
int value = 0;
void loop() {
while(client.available()){
String line = client.readStringUntil('\r');
Serial.println(line);
//valueread=line[47];
//Serial.println(valueread);
if(line[5]=='3' & line[8]=='0' & line[9]=='1')
{
digitalWrite(relay1,HIGH);
Serial.println("led on");
}
if(line[5]=='3' & line[8]=='0' & line[9]=='0')
{
digitalWrite(relay1,LOW);
Serial.println("led off");
}
}
String line ="";
m++;
if(m%40==0)
{
client.write("mode=up\r\n");
m=0;
}
delay(500);
}