changes for Finder, introduce Wifi-Enable flag
This commit is contained in:
@ -39,6 +39,9 @@ Metro minute = Metro(60000);
|
||||
Metro second = Metro(1000);
|
||||
uint32_t uptime;
|
||||
|
||||
static bool wifiEnabled = false;
|
||||
|
||||
|
||||
void callback(char* topic, byte* payload, unsigned int length) {
|
||||
// handle message arrived
|
||||
}
|
||||
@ -78,46 +81,46 @@ void setup() {
|
||||
lcd.print("Starting ...");
|
||||
|
||||
|
||||
if (wifiEnabled) {
|
||||
// check for the presence of the shield:
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("WiFi shield not present");
|
||||
// don't continue:
|
||||
while(true);
|
||||
}
|
||||
|
||||
// check for the presence of the shield:
|
||||
if (WiFi.status() == WL_NO_SHIELD) {
|
||||
Serial.println("WiFi shield not present");
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("WiFi shield not present");
|
||||
// don't continue:
|
||||
while(true);
|
||||
int status = WL_IDLE_STATUS;
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to SSID: ");
|
||||
Serial.println(ssid);
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("Trying: ");
|
||||
lcd.print(ssid);
|
||||
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
|
||||
status = WiFi.begin(ssid, pass);
|
||||
|
||||
// wait 10 seconds for connection:
|
||||
delay(10000);
|
||||
}
|
||||
Serial.println("Connected.");
|
||||
lcd.setCursor(0, 2);
|
||||
lcd.print("Connected.");
|
||||
|
||||
printWifiStatus();
|
||||
|
||||
// if (! client.connect("WiFiPowerMeter")) {
|
||||
// Serial.println("MQTT broker not found");
|
||||
// lcd.home();
|
||||
// lcd.clear();
|
||||
// lcd.print("MQTT broker not found");
|
||||
// while (true);
|
||||
// } else {
|
||||
// lcd.print(" *");
|
||||
// }
|
||||
}
|
||||
|
||||
int status = WL_IDLE_STATUS;
|
||||
while ( status != WL_CONNECTED) {
|
||||
Serial.print("Attempting to connect to SSID: ");
|
||||
Serial.println(ssid);
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print("Trying: ");
|
||||
lcd.print(ssid);
|
||||
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
|
||||
status = WiFi.begin(ssid, pass);
|
||||
|
||||
// wait 10 seconds for connection:
|
||||
delay(10000);
|
||||
}
|
||||
Serial.println("Connected.");
|
||||
lcd.setCursor(0, 2);
|
||||
lcd.print("Connected.");
|
||||
|
||||
printWifiStatus();
|
||||
|
||||
// if (! client.connect("WiFiPowerMeter")) {
|
||||
// Serial.println("MQTT broker not found");
|
||||
// lcd.home();
|
||||
// lcd.clear();
|
||||
// lcd.print("MQTT broker not found");
|
||||
// while (true);
|
||||
// } else {
|
||||
// lcd.print(" *");
|
||||
// }
|
||||
|
||||
|
||||
delay(1000);
|
||||
lcd.home();
|
||||
lcd.clear();
|
||||
@ -160,18 +163,20 @@ void updateDisplay() {
|
||||
lcd.print(days); lcd.print("/"); lcd.print(hours); lcd.print(":");
|
||||
lcd.print(minutes); lcd.print(":"); lcd.print(seconds); lcd.print(" ");
|
||||
|
||||
long rssi = WiFi.RSSI();
|
||||
lcd.print(rssi); lcd.print(" ");
|
||||
uint8_t wifiStatus = WiFi.status();
|
||||
lcd.print(wifiStatus);
|
||||
lcd.print(disconnectState);
|
||||
if (wifiEnabled) {
|
||||
long rssi = WiFi.RSSI();
|
||||
lcd.print(rssi); lcd.print(" ");
|
||||
uint8_t wifiStatus = WiFi.status();
|
||||
lcd.print(wifiStatus);
|
||||
lcd.print(disconnectState);
|
||||
}
|
||||
|
||||
lcd.setCursor(0, 1);
|
||||
lcd.print(getVoltage()); lcd.print("V");
|
||||
lcd.setCursor(10, 1);
|
||||
lcd.print(getCurrent()); lcd.print("A");
|
||||
lcd.setCursor(0, 2);
|
||||
lcd.print(getFrequency()); lcd.print("Hz");
|
||||
lcd.print(getCosPhi()); lcd.print("");
|
||||
lcd.setCursor(10, 2);
|
||||
lcd.print(getPower()); lcd.print("W");
|
||||
lcd.setCursor(0, 3);
|
||||
@ -188,67 +193,61 @@ void loop() {
|
||||
modbusAppExec();
|
||||
// Mb.Run();
|
||||
|
||||
if ((disconnectState == 0) && (! client.loop())) {
|
||||
disconnectState = 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
switch (disconnectState) {
|
||||
case 0:
|
||||
// Serial.println("discState 0");
|
||||
// everything fine
|
||||
break;
|
||||
case 1:
|
||||
Serial.println("discState 1");
|
||||
client.disconnect();
|
||||
disconnectTime = millis();
|
||||
disconnectState = 2;
|
||||
break;
|
||||
case 2:
|
||||
Serial.println("discState 3");
|
||||
if (disconnectTime + 2000 < millis()) {
|
||||
disconnectState = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
Serial.println("discState 3");
|
||||
if (client.connect("WiFiPowerMeter")) {
|
||||
disconnectTime = millis();
|
||||
disconnectState = 0;
|
||||
} else {
|
||||
if (wifiEnabled) {
|
||||
if ((disconnectState == 0) && (! client.loop())) {
|
||||
disconnectState = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
disconnectState = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (minute.check() == 1) {
|
||||
char strbuf[256];
|
||||
memset(strbuf, sizeof(strbuf), 0);
|
||||
PString buf = PString(strbuf, sizeof(strbuf));
|
||||
buf << "{ \"metadata\": { \"device\": \"WiFiPowerMeter\" }, " <<
|
||||
"\"data\": {" <<
|
||||
"\"voltage\": " << getVoltage() << ", " <<
|
||||
"\"current\": " << getCurrent() << ", " <<
|
||||
"\"frequency\": " << getFrequency() << ", " <<
|
||||
"\"power\": " << getPower() << ", " <<
|
||||
"\"energy\": " << getEnergy() << ", " <<
|
||||
"\"newEnergy\": " << getNewEnergy() << ", " <<
|
||||
"\"uptime\": " << uptime <<
|
||||
"}" <<
|
||||
"}" << endl;
|
||||
if (disconnectState == 0) {
|
||||
client.publish("IoT/WiFiPowerMeter/Measurement", strbuf);
|
||||
switch (disconnectState) {
|
||||
case 0:
|
||||
// Serial.println("discState 0");
|
||||
// everything fine
|
||||
break;
|
||||
case 1:
|
||||
Serial.println("discState 1");
|
||||
client.disconnect();
|
||||
disconnectTime = millis();
|
||||
disconnectState = 2;
|
||||
break;
|
||||
case 2:
|
||||
Serial.println("discState 3");
|
||||
if (disconnectTime + 2000 < millis()) {
|
||||
disconnectState = 3;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
Serial.println("discState 3");
|
||||
if (client.connect("WiFiPowerMeter")) {
|
||||
disconnectTime = millis();
|
||||
disconnectState = 0;
|
||||
} else {
|
||||
disconnectState = 1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
disconnectState = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (minute.check() == 1) {
|
||||
char strbuf[256];
|
||||
memset(strbuf, sizeof(strbuf), 0);
|
||||
PString buf = PString(strbuf, sizeof(strbuf));
|
||||
buf << "{ \"metadata\": { \"device\": \"WiFiPowerMeter\" }, " <<
|
||||
"\"data\": {" <<
|
||||
"\"voltage\": " << getVoltage() << ", " <<
|
||||
"\"current\": " << getCurrent() << ", " <<
|
||||
"\"cosphi\": " << getCosPhi() << ", " <<
|
||||
"\"power\": " << getPower() << ", " <<
|
||||
"\"energy\": " << getEnergy() << ", " <<
|
||||
"\"newEnergy\": " << getNewEnergy() << ", " <<
|
||||
"\"uptime\": " << uptime <<
|
||||
"}" <<
|
||||
"}" << endl;
|
||||
if (disconnectState == 0) {
|
||||
client.publish("IoT/WiFiPowerMeter/Measurement", strbuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (second.check() == 1) {
|
||||
@ -256,11 +255,12 @@ void loop() {
|
||||
|
||||
Serial.println("tick");
|
||||
|
||||
String msg = String("{ \"metadata\": { \"device\": \"WiFiPowerMeter\" }, \"data\": { \"uptime\": ") + uptime + String("}}");
|
||||
if (disconnectState == 0) {
|
||||
client.publish("IoT/WiFiPowerMeter/Heartbeat", (char*)msg.c_str());
|
||||
if (wifiEnabled) {
|
||||
String msg = String("{ \"metadata\": { \"device\": \"WiFiPowerMeter\" }, \"data\": { \"uptime\": ") + uptime + String("}}");
|
||||
if (disconnectState == 0) {
|
||||
client.publish("IoT/WiFiPowerMeter/Heartbeat", (char*)msg.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user