Hello people I just started with this programming I have a code which wifimanager added successfully! Now I am trying to add a status led in the application but I can’t quite understand how it is done … I tried several codes but it did not work, the virtual led would use it to know when it is online or when it is offline, (in the clones of the app does not appear that indicator) I do not need it to flash, only that it remains on fixed when being online and offline off … I hope you can help me Thank you
#include <FS.h>
//#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
#include <ArduinoJson.h>
//define your default values here, if there are different values in config.json, they are overwritten.
char mqtt_server[40];
char mqtt_port[6] = "8080";
char blynk_token[34] = "zUDZm-EtQq9arxeaE1IJZtAjFi_uCI3L";
//flag for saving data
bool shouldSaveConfig = false;
//callback notifying us of the need to save config
void saveConfigCallback () {
Serial.println("Should save config");
shouldSaveConfig = true;
}
// Keep this flag not to re-sync on every reconnection
bool isFirstConnect = true;
// This function will run every time Blynk connection is established
BLYNK_CONNECTED()
{
if (isFirstConnect)
{
// Request Blynk server to re-send latest values for all pins
Blynk.syncAll();
isFirstConnect = false;
}
}
bool alarm_mode = false ;
bool verificador = false;
int led_placa = 2;
int sensor = 5;
int buzzer = 15;
int alarm_led = 4;
int alarm_led_off = 0;
//int boton = 12;
int indicador = 13;
int ledPin = 14;
int contconexion = 0;
int conteoReactivacion = 0;
BlynkTimer timer;
void myTimerEvent() {
// Serial.println("Tiempo des en seg: " + String(conteoReactivacion));
if (alarm_mode == false) {
conteoReactivacion++;
if (conteoReactivacion >= 600) { //son 30 minutos es 1800 segundos dividido en 3 da 600 segundos por el delay que se le da a V0 de 3000 milisegundos para retrasar el pulso de disparo por 3 segundos
Blynk.virtualWrite(V1, 1);
digitalWrite(alarm_led, HIGH);
digitalWrite(alarm_led_off, LOW);
alarm_mode = true;
}
} else {
conteoReactivacion = 0;
}
if (digitalRead(sensor) == 0) {
Blynk.virtualWrite(V0, "NORMAL");
delay(3000);
}
if (digitalRead(sensor) == 1)
{
Blynk.virtualWrite(V0, "ALERTA");
if (alarm_mode == true)
//AUTOR ALEXIS MORA
{
Blynk.email("ale24cba@gmail.com", "Historial de Alarmas", "Alarma Disparo");
Blynk.notify("Alarma Disparo");
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
}
}
}
BLYNK_WRITE(V1) {
Serial.println(param.asInt());
switch (param.asInt()) {
case 1: {
alarm_mode = true;
digitalWrite(alarm_led, HIGH);
digitalWrite(alarm_led_off, LOW);
break;
}
case 2: {
alarm_mode = false;
digitalWrite(buzzer, LOW);
digitalWrite(alarm_led, LOW);
digitalWrite(alarm_led_off, HIGH);
break;
}
}
}
void setup()
{
pinMode(sensor, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
pinMode(alarm_led, OUTPUT);
pinMode(alarm_led_off, OUTPUT);
//pinMode(boton, INPUT);
pinMode(indicador, OUTPUT);
pinMode(led_placa, OUTPUT);
// Debug console
Serial.begin(115200);
Serial.println();
//clean FS, for testing
//SPIFFS.format();
// Blynk.begin(auth, ssid, pass);
// Setup a function to be called every second
timer.setInterval(1000L, myTimerEvent);
// put your setup code here, to run once:
//clean FS, for testing
//SPIFFS.format();
//read configuration from FS json
Serial.println("mounting FS...");
if (SPIFFS.begin()) {
Serial.println("mounted file system");
if (SPIFFS.exists("/config.json")) {
//file exists, reading and loading
Serial.println("reading config file");
File configFile = SPIFFS.open("/config.json", "r");
if (configFile) {
Serial.println("opened config file");
size_t size = configFile.size();
// Allocate a buffer to store contents of the file.
std::unique_ptr<char[]> buf(new char[size]);
configFile.readBytes(buf.get(), size);
DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.parseObject(buf.get());
json.printTo(Serial);
if (json.success()) {
Serial.println("\nparsed json");
//strcpy(mqtt_server, json["mqtt_server"]);
//strcpy(mqtt_port, json["mqtt_port"]);
strcpy(blynk_token, json["blynk_token"]);
} else {
Serial.println("failed to load json config");
}
configFile.close();
}
}
} else {
Serial.println("failed to mount FS");
}
//end read
// The extra parameters to be configured (can be either global or just in the setup)
// After connecting, parameter.getValue() will get you the configured value
// id/name placeholder/prompt default length
//WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 40);
//WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 6);
WiFiManagerParameter custom_blynk_token("blynk", "blynk token", blynk_token, 34);
//WiFiManager
//Local intialization. Once its business is done, there is no need to keep it around
WiFiManager wifiManager;
//set config save notify callback
wifiManager.setSaveConfigCallback(saveConfigCallback);
//set static ip
//wifiManager.setSTAStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0));
//add all your parameters here
//wifiManager.addParameter(&custom_mqtt_server);
//wifiManager.addParameter(&custom_mqtt_port);
wifiManager.addParameter(&custom_blynk_token);
//reset settings - for testing
//wifiManager.resetSettings();
//set minimu quality of signal so it ignores AP's under that quality
// defaults to 8%
//wifiManager.setMinimumSignalQuality();
//sets timeout until configuration portal gets turned off
//useful to make it all retry or go to sleep
//in seconds
//wifiManager.setTimeout(120);
//fetches ssid and pass and tries to connect
//if it does not connect it starts an access point with the specified name
//here "AutoConnectAP"
//and goes into a blocking loop awaiting configuration
if (!wifiManager.autoConnect("NanoWifi", "12345678")) {
Serial.println("failed to connect and hit timeout");
delay(3000);
//reset and try again, or maybe put it to deep sleep
ESP.reset();
delay(5000);
}
//if you get here you have connected to the WiFi
Serial.println("connected...yeey :)");
//read updated parameters
//strcpy(mqtt_server, custom_mqtt_server.getValue());
//strcpy(mqtt_port, custom_mqtt_port.getValue());
strcpy(blynk_token, custom_blynk_token.getValue());
//save the custom parameters to FS
if (shouldSaveConfig) {
Serial.println("saving config");
DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.createObject();
//json["mqtt_server"] = mqtt_server;
// json["mqtt_port"] = mqtt_port;
json["blynk_token"] = blynk_token;
File configFile = SPIFFS.open("/config.json", "w");
if (!configFile) {
Serial.println("failed to open config file for writing");
}
json.printTo(Serial);
json.printTo(configFile);
configFile.close();
//end save
}
while (WiFi.status() != WL_CONNECTED) {
int mytimeout = 5;
delay(500);
Serial.print(".");
if((millis() / 1000) > mytimeout ){ // try for less than 6 seconds to connect to WiFi router
Serial.println(" ");
break;
}
}
if(WiFi.status() == WL_CONNECTED){
//if you get here you have connected to the WiFi
Serial.println(" ");
Serial.println("connected to WiFi!! yay :)");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
digitalWrite(indicador, HIGH);
Blynk.config(blynk_token);
bool result = Blynk.connect();
if (result != true)
{
Serial.println("BLYNK Connection Fail");
Serial.println(blynk_token);
wifiManager.resetSettings(); //borra usuario y contraseña al grabar
ESP.reset();
//delay (5000);
}
else
{
Serial.println("BLYNK Connected!! Yay again");
}
}
else if (WiFi.status() != WL_CONNECTED){
Serial.println("WiFi Connection Fail");
}
}
void loop(){
Blynk.run();
timer.run(); // Initiates BlynkTimer
}