Salve sono nuovo del forum e da poco sto utilizzando blynk,veniamo al problema .Se utilizzo il solo file di esempio blynk si connette e funziona bene ma con il mio skech non va sempre disconnesso.Allego il mio file
P.S: spero di aver fatto le cose bene
` /* Comment this out to disable prints and save space */
//WIFI librerie-------------
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>//impossibile da trovare adatta dall esempio
//-------------------
//Librerie
#include <SoftwareSerial.h>//2 seriale
#include <Wire.h>
#include <LiquidCrystal_I2C.h>//lcd
#include <Event.h>
#include <Timer.h>//timer
#include <NewPing.h>//sonar
//----------------Sonar
#define triggerPort 9 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define echoPort 10 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 400 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
const int led = 13;// da modificare in seguito perche utilizzato da clima
NewPing sonar(triggerPort, echoPort, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
//------------------------LCD
#define I2C_ADDR 0x27 // Define I2C Address for the PCF8574T
//—(Following are the PCF8574 pin assignments to LCD connections )----
// This are different than earlier/different I2C LCD displays
//Utilizzati inizialment i pin A4 ed A5 poi passato ai pin SDA ed SCL
#define BACKLIGHT_PIN 3
#define BACKLIGHT_POL POSITIVE // POSITIVE or NEGATIVE depending board design
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin, BACKLIGHT_PIN, BACKLIGHT_POL);
//---------------------------WIFI Blynk
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = “xxxxxxxxxxxxxxxxxxxxxxx”;
// Your WiFi credentials.
// Set password to “” for open networks.
char ssid[] = “xxxxxxxxxxxxxx”;
char pass[] = “xxxxxxxxxxx”;
// Hardware Serial on Mega, Leonardo, Micro…
#define EspSerial Serial
// or Software Serial on Uno, Nano…
//#include <SoftwareSerial.h>
//SoftwareSerial EspSerial(2, 3); // RX, TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 115200
ESP8266 wifi(&EspSerial);
//----------------------
/-----( Declare objects )-----/
#define PIN_CUCINA 4
#define PIN_LUCI 5
#define PIN_LUCE 6
#define PIN_CALDAIA 7
#define PIN_CLIMA 8
//-----Variabili per pulsante—
int ledPin1 = 4;
int ledPin2 = 7;
int ledPin3 = 8;
//utilizzati ingressi analogici per recuperare uscite digitali
int pulsante1 = A0;//utilizzo ingresso analogico 0
int pulsante2 = A1;
int pulsante3 = A2;
int pul4 = A3;
//Debounce (antirimbalzo pulsante)
int ledStato1 = LOW;
int ledStato2 = LOW;
int ledStato3 = LOW;
int pulsanteStato1 = LOW;
int pulsanteStato2 = LOW;
int pulsanteStato3 = LOW;
int STATO = LOW;
int attesaDebounce = 50;
unsigned long ultimoTempoDebounce = 0;
//variabili memorizzazione lettura
int ultimaLettura1 = LOW;
int ultimaLettura2 = LOW;
int ultimaLettura3 = LOW;
//---------------------
SoftwareSerial Speech(2, 3); // RX, TX inizializzo i pin della 2 seriale e le attribuisco un nome
byte com = 0;//variabile per voice
int val = 0;
int val4 = 0;
int val5 = 0;
int val6 = 0;
int val7 = 0;
int val8 = 0;
int val9 = LOW;//variabile
int val10;
bool onetime = true;// variabile per cancellazione schermo solo all’inizio su passaggio ad altro gruppo
//--------variabili time
unsigned long inizio = 0;//variabli per timer
unsigned long tempo = 0;
int temp = 200;
int temp1;
int temp2;
int temp3;
int Counter = 1000;//variabile per visualizzare conto allarovescio
int ATTESA = 40;//variabile attesa spegnimento cucina da pulsante
//----------------
void setup()
{
//-----Pin pulsanti-----------
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(pulsante1, INPUT);
pinMode(pulsante2, INPUT);
pinMode(pulsante3, INPUT);
pinMode(pul4, INPUT);
digitalWrite(ledPin1, ledStato1);
digitalWrite(ledPin2, ledStato2);
digitalWrite(ledPin3, ledStato3);
//------Variabili sonar------
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
pinMode(led, OUTPUT);
//-----------------
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print( "Ultrasuoni ");
//---------Inizalizzo le seriali------
Serial.begin(9600);//serial monitor
Speech.begin(9600);//serial Voice
//---------------
pinMode(2, INPUT);//RX
pinMode(3, OUTPUT); //TX
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode( 8, OUTPUT);
/* pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);*/
//pinMode(13, OUTPUT);//inserito causa accensione fievole led su sketch
//___________
//lcd.noBacklight(); //spegne lo schermo
lcd.backlight();//accende lo schermo
lcd.begin(20, 4);//tipo di schermo
lcd.clear();//ripulisce completamente lcd
//
delay(1000);
//carica gruppo 1
Speech.write(0xAA);
Speech.write(0x37);
delay(1000);
Speech.write(0xAA);
Speech.write(0x23);
//-----------------------------------
// Debug console
Serial.begin(115200);
delay(10);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop()
{
//---------------------
Blynk.run();
//--------------
//----Pulsante1—
int lettura1 = digitalRead(pulsante1); // (int lettura = Variabile locale) leggo lo stato del pulsante1
if (lettura1 != ultimaLettura1) { // se lo stato del non è uguale ad ultimalettura
ultimoTempoDebounce = millis(); // assegno il conteggio in millisecondi
}
if ((millis() - ultimoTempoDebounce) > attesaDebounce) { // se ilconteggio di millis- ULTIM… superiore a 50 millisecondi
if (lettura1 != pulsanteStato1 and lettura1 == HIGH ) { // se l analogico A0 non uguale allo stato del pulsante e il pulsante è, premuto
ledStato1 = !ledStato1; // cambio lo stato del pin
digitalWrite(ledPin1, ledStato1); // Imposto al pin4 lo stato di ledStato1
}
//------------
val4 = digitalRead(PIN_CUCINA); //leggo il valore dil pin4 e lo attribuisco alla variabile val4
lcd.setCursor(0, 1); //visualizzo su lcd stato caldaia tramite pulsante
if (val4 == LOW) {
lcd.print(“Cucina OFF”);
}
val4 = digitalRead(PIN_CUCINA);
lcd.setCursor(0, 1);
if (val4 == HIGH) {
lcd.print(“Cucina ON”);
}
pulsanteStato1 = lettura1; // assegno lo stato del pulsante al pinA0
}
ultimaLettura1 = lettura1; // assegno lultima lettura allo stato del pulsante delay(10); //----Pulsante2--- int lettura2 = digitalRead(pulsante2); // (int lettura = Variabile locale) leggo lo stato del pulsanteA1 if (lettura2 != ultimaLettura2) { // se lo stato del pin analogico A1 è il contrario dell
ultima lettura
ultimoTempoDebounce = millis(); // assegno il conteggio in millisecondi
}`