Hey guys I need help for my project. Sending sensor value is working well, but when I pressing the button for my relay on the Blynk app it keep saying “packet too big” and keep disconnecting from blynk. This is the notice :
54]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ / '/
///_, /////_
/__/ v0.6.1 on Arduino Uno[7914] Connected to WiFi
[18819] Ready (ping: 11ms).
[77626] Ready (ping: 1722ms).
[77666] Packet too big: 47918
And here is my sketch :
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "*********";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "*********";
char pass[] = "*********";
// Hardware Serial on Mega, Leonardo, Micro...
//#define EspSerial Serial1
// or Software Serial on Uno, Nano...
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(8, 9); // RX, TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 19200
ESP8266 wifi(&EspSerial);
//Setup relay
int pengurasPin = 3;
int pengisiPin = 4;
int katapangPin = 5;
//Setup Sensor Turbidity
int sensorValue = analogRead(A0);
float ntu;
float tegangan;
String myStatus = "";
//Setup Sensor TDS + Suhu
#include <EEPROM.h>
#include "GravityTDS.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 6
#define TdsSensorPin A1
OneWire oneWire(ONE_WIRE_BUS);
GravityTDS gravityTds;
DallasTemperature sensors(&oneWire);
//float temperature = 25,
float suhu = 0;
float tdsValue = 0;
//Setup sensor jarak
#define trigPin 11
#define echoPin 12
long duration, distance, tinggiAir;
BlynkTimer timer;
void sensorTDS()
{
//Sensor TDS + Suhu
sensors.requestTemperatures();
gravityTds.setTemperature(sensors.getTempCByIndex(0)); // set the temperature and execute temperature compensation
gravityTds.update(); //sample and calculate
tdsValue = gravityTds.getTdsValue(); // then get the value
float suhu = sensors.getTempCByIndex(0);
Blynk.virtualWrite(V6,tdsValue);
Blynk.virtualWrite(V8,suhu);
}
void sendSensor(){
tegangan = 00;
for(int i=00; i<800; i++)
{
tegangan += ((float)analogRead(A0)/1023)*5;
}
tegangan = tegangan/800;
tegangan = round_to_dp(tegangan,1);
ntu = -49.17*tegangan+162.8;
Blynk.virtualWrite(V5, ntu);
}
void sendTinggi(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, HIGH);
duration = pulseIn(echoPin,HIGH);
distance = (duration/2)/29.1;
tinggiAir = 17-distance;
Blynk.virtualWrite(V7, tinggiAir);
}
void setup()
{
// Set console baud rate
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
sensors.begin();
gravityTds.setPin(TdsSensorPin);
gravityTds.setAref(5.0); //reference voltage on ADC, default 5.0V on Arduino UNO
gravityTds.setAdcRange(1024); //1024 for 10bit ADC;4096 for 12bit ADC
gravityTds.begin(); //initialization
pinMode(trigPin, OUTPUT);
pinMode(echoPin,INPUT);
pinMode(pengurasPin, OUTPUT);
digitalWrite(pengurasPin, LOW);
pinMode(pengisiPin, OUTPUT);
digitalWrite(pengisiPin, LOW);
pinMode(katapangPin, OUTPUT);
digitalWrite(katapangPin, LOW);
Blynk.begin(auth, wifi, ssid, pass);
timer.setTimeout(400, [](){
timer.setInterval(1000L, sensorTDS);
});
timer.setTimeout(400, [](){
timer.setInterval(1000L, sendSensor);
});
timer.setTimeout(500, [](){
timer.setInterval(5000L, sendTinggi);
});
}
void loop()
{
Blynk.run();
timer.run();
}
float round_to_dp( float nilaibaca, int desimal)
{
float multiplier = powf( 10.0f, desimal );
nilaibaca = roundf( nilaibaca * multiplier ) / multiplier;
return nilaibaca;
}
And here is my layout on blynk :
Thank you guys !