标题:
Arduino+ESP8266+贝壳物联网使用手机进行远程控制
[打印本页]
作者:
baofuxiang
时间:
2020-8-29 13:59
标题:
Arduino+ESP8266+贝壳物联网使用手机进行远程控制
程序通过ESP8266连接贝壳物联,使用微信关注贝壳物联进行控制,也可下载贝壳物联控制APP 进行操作。程序中加入了自动配网
Arduino源程序如下:
//增加联网失败,重新连接,
#include <ESP8266WiFi.h>
WiFiClient client;
#define led 4 //接继电器控制灯
#define relay1 2 //模块led,作网络状态指示,启动后常亮,则正常联网
#define key 5//将dht11的data口接在8266的GPIO2上
const char *ssid = "Nok7";
const char *password = "bfx1234567890";
const char *host = "121.42.180.30";
char flag=0;
int x=0;
int y=0;
int f;
bool autoConfig()
{
int a=0;
pinMode(key,INPUT);
if(digitalRead(key) == LOW)
flag=1;
else
flag=0;
while(!digitalRead(key));
if(flag==1)
{
return false;
}
else
{
WiFi.begin();
while (WiFi.status() != WL_CONNECTED)
{
Serial.println("AutoConfig Success");
Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
WiFi.printDiag(Serial);
digitalWrite(relay1,HIGH);
delay(800);
delay(100);
digitalWrite(relay1,LOW);
delay(100);
a++;
if(a==20)
{
a=0;
return false;
break;
}
}
if(false)
{
Serial.println("");
Serial.println("wifi line faild !");
while(1)
{
digitalWrite(relay1,LOW);
}
}
else
{
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
digitalWrite(relay1,HIGH);
return true;
}
}
}
//*
void smartConfig()
{
WiFi.mode(WIFI_STA);
Serial.println("\r\nWait for Smartconfig");
WiFi.beginSmartConfig();
while (1)
{
Serial.print("Wait soft line..\r\n");
if (WiFi.smartConfigDone())
{
Serial.println("SmartConfig Success");
Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
autoConfig();
//WiFi.setAutoConnect(true); // 设置自动连接
break;
}
digitalWrite(relay1,LOW);
delay(100);
digitalWrite(relay1,HIGH);
delay(100);
}
Serial.println("");
digitalWrite(relay1,HIGH);
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
//*/
//*
void line_tcp()
{
Serial.println(WiFi.localIP());
const int httpPort =8282;
client.connect(host, httpPort);
f=10;
while(f--)
{
digitalWrite(relay1,LOW);
delay(500);
digitalWrite(relay1,HIGH);
delay(500);
}
if (!client.connect(host, httpPort))
{
Serial.println("connection failed");
return;
}
Serial.print("connecting to ");
Serial.println(host);
delay(1000);
//client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\6743d7a7c\"}\r\n");//登陆设备,修改成自己的ID和key
delay(1000);
client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\"6743d7a7c\"}\r\n");//注意:一定要加\r\n 换行才能登陆成功
delay(1000);
client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\"6743d7a7c\"}\r\n");//注意:一定要加\r\n 换行才能登陆成功
delay(1000);
client.write("{\"M\":\"checkin\",\"ID\":\"12664\",\"K\":\"6743d7a7c\"}\r\n");//注意:一定要加\r\n 换行才能登陆成功
}
//*/
void setup()
{
Serial.begin(115200);
pinMode(relay1, OUTPUT);
pinMode(led, OUTPUT);
if (!autoConfig())
{
Serial.println("Start AP mode");
smartConfig();
}
line_tcp();
}
void loop()
{
char valueread;
while(client.available())
{
String line = client.readStringUntil('\r');
Serial.print(line);
int i;
for(i=0;i<=150;i++)
{
if((line[i]=='p') &&( line[i+1]=='l'))
{
digitalWrite(led,HIGH);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is on\",\"SIGN\":\"\"}\r\n");
}
if((line[i]=='s') && (line[i+1]=='t'))
{
digitalWrite(led,LOW);
client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"\"}\r\n");
}
if((line[i]=='n') && (line[i+1]=='o')&&(line[i+2]=='k'))
{
digitalWrite(relay1,LOW);
// client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is off\",\"SIGN\":\"\"}\r\n");
}
//*
if(line[i]=='b')
{
//digitalWrite(relay1,LOW);
//client.write("{\"M\":\"say\",\"ID\":\"ALL\",\"C\":\"LED1 is connected\",\"SIGN\":\"ok\"}\r\n");
y=0;
client.write("{\"M\":\"say\",\"ID\":\"****\",\"C\":\"12664\"}\r\n");//修改自己的ID,向设备发送信息,防止掉线
}
//*/
}
}
// delay(1000);
// Serial.print(WiFi.status());
//*
x++;
if(x>=10000)
{
x=0;
y++;
//Serial.println(y);
}
if(WiFi.status()!=3||y>=1200)
{
if (!autoConfig())
{
Serial.println("Start AP mode");
smartConfig();
}
line_tcp();
}
//*/
// delay(1000);
}
复制代码
作者:
smartphone
时间:
2020-8-31 08:34
这个要学习一下,感谢分享。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1