//12: Green
//13: Blue
//15: Red
ESP8266WebServer server(80);
const char* ssid = "LHT70-LEHUUTRUNG";
const char* passphrase = "88888888";
String blynk = "a4c47feas2e542f7ad7d5b2d5a4300a5";
int inRelay1 = 0; //Chan GPIO0 gắn vào relay
String st;
String content;
int statusCode;
void setup()
{
Serial.begin(115200);
pinMode(inRelay1, OUTPUT);
//Delay 5m, Red blink
pinMode(0, OUTPUT);
pinMode(0, OUTPUT);
for (int i = 1; i < 3; i++)
{
digitalWrite(0, HIGH);
delay(500);
digitalWrite(0, LOW);
delay(500);
}
EEPROM.begin(512);
delay(10);
Serial.println("Startup");
// read eeprom for ssid, pass and blynk
Serial.println("Reading EEPROM ssid");
String esid;
for (int i = 0; i < 32; ++i)
{
esid += char(EEPROM.read(i));
}
Serial.print("SSID: ");
Serial.println(esid.c_str());
esid.trim();
Serial.println("Reading EEPROM pass");
String epass = "";
for (int i = 32; i < 96; ++i)
{
epass += char(EEPROM.read(i));
}
Serial.print("PASS: ");
Serial.println(epass.c_str());
epass.trim();
Serial.println("Reading EEPROM blynk");
String eblynk = "";
for (int i = 96; i < 128; ++i)
{
eblynk += char(EEPROM.read(i));
}
Serial.print("BLYNK: ");
Serial.println(eblynk.c_str());
eblynk.trim();
if ( esid.length() > 1 )
{
WiFi.begin(esid.c_str(), epass.c_str());
if (testWifi())
{
launchWeb(0);
WiFi.disconnect();
char * auth_ = new char[eblynk.length() + 1];
eblynk.toCharArray(auth_, eblynk.length() + 1);
Blynk.begin(auth_, esid.c_str(), epass.c_str());
EEPROM.end();
return;
}
}
setupAP();
EEPROM.end();
}
bool testWifi(void)
{
int c = 0;
Serial.println("Xin vui long doi ket noi WIFI");
while ( c < 20 )
{
if (WiFi.status() == WL_CONNECTED)
{
return true;
}
delay(1000);
Serial.print(WiFi.status());
c++;
}
Serial.println("");
Serial.println("Thoi gian ket noi cham, Mo AP");
return false;
}
void launchWeb(int webtype)
{
Serial.println("");
Serial.println("WiFi ket noi");
Serial.print("Dia chi IP: ");
Serial.println(WiFi.localIP());
Serial.print("SoftAP IP: ");
Serial.println(WiFi.softAPIP());
createWebServer(webtype);
// Start the server
server.begin();
Serial.println("May chu bat dau");
}
void setupAP(void)
{
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
int n = WiFi.scanNetworks();
Serial.println("Tim hoan tat");
if (n == 0)
{
Serial.println("no networks found");
}
else
{
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i)
{
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
Serial.print(WiFi.RSSI(i));
Serial.print(")");
Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*");
delay(10);
}
}
Serial.println("");
st = "";
for (int i = 0; i < n; ++i)
{
// Print SSID and RSSI for each network found
st += "- ";
st += WiFi.SSID(i);
st += " (";
st += WiFi.RSSI(i);
st += ")";
st += (WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*";
st += "
";
}
st += "
";
delay(100);
Serial.println("softap");
Serial.println(ssid);
Serial.println(passphrase);
WiFi.softAP(ssid, passphrase, 6);
launchWeb(1);
Serial.println("over");
}
void createWebServer(int webtype)
{
if ( webtype == 1 )
{
server.on("/", []()
{
IPAddress ip = WiFi.softAPIP();
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
content = "\r\nXSwitch
";
//content += ipStr;
//content += "";
content += "