I used this code, but the problem is that the internet is cut off the sensors do not work. Is there a solution to this problem? I use an Arduino Uno and a modem esp8266.
#define BLYNK_TEMPLATE_NAME "....."
#define BLYNK_AUTH_TOKEN "...."
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
char ssid[] = "S";
char pass[] = "0000000000";
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(8, 9);
#define ESP8266_BAUD 38400
ESP8266 wifi(&EspSerial);
#include <Servo.h>
const int trigPinWA = 10;
const int echoPinWA = 11;
Servo servoMotor;
const int relayPin = 3;
#include <SPI.h>
#define LOG_PERIOD 15000
#define MAX_PERIOD 60000
unsigned long counts;
unsigned long cpm;
unsigned int multiplier;
unsigned long previousMillis;
void tube_impulse(){
counts++;
}
const int trigPin = 4;
const int echoPin = 5;
void setup()
{
Serial.begin(115200);
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(BLYNK_AUTH_TOKEN, wifi, ssid, pass, "blynk.cloud", 80);
pinMode(trigPinWA, OUTPUT);
pinMode(echoPinWA, INPUT);
servoMotor.attach(6);
pinMode(relayPin, OUTPUT);
counts = 0;
cpm = 0;
multiplier = MAX_PERIOD / LOG_PERIOD; //calculating multiplier, depend on your log period
attachInterrupt(0, tube_impulse, FALLING); //define external interrupts
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long durationW, distanceW;
digitalWrite(trigPinWA, LOW);
delayMicroseconds(5);
digitalWrite(trigPinWA, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinWA, LOW);
durationW = pulseIn(echoPinWA, HIGH);
distanceW = durationW * 0.034 / 2;
Serial.print("DistanceW: ");
Serial.print(distanceW);
Serial.println(" cm");
if (distanceW != 0) {
if (distanceW <50)
{
servoMotor.write(0);
digitalWrite(relayPin, HIGH);
}
else {
servoMotor.write(180);
digitalWrite(relayPin, LOW);
}
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > LOG_PERIOD) {
previousMillis = currentMillis;
cpm = counts * multiplier;
counts = 0;
}
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
Blynk.run();
Blynk.virtualWrite(V2, distance);
Blynk.virtualWrite(V1, cpm);
delay(500);
}```