Control Unit: Blynk.
virtualWrite(V2, setDist);
}
#define BLYNK_TEMPLATE_ID
"TMPL6UyqqWpW5"
// Publish setpoints every 3 seconds (to
#define BLYNK_TEMPLATE_NAME "scada other slaves via virtual pins or MQTT if
master" needed)
#define BLYNK_AUTH_TOKEN void sendSetpoints() {
"Si4LYOTUM11P1oEJRlHId0b9JPB4aiXG"
// Optional: use Serial or additional
Blynk.virtualWrite if required
#include <WiFi.h> }
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h> void setup() {
Serial.begin(115200);
char ssid[] = "Samam"; Blynk.begin(BLYNK_AUTH_TOKEN, ssid,
pass);
char pass[] = "11223344";
timer.setInterval(3000L, sendSetpoints);
}
BlynkTimer timer;
void loop() {
float setTemp = 30.0;
Blynk.run();
float setDist = 30.0;
timer.run();
}
// Input from mobile app
BLYNK_WRITE(V0) {
setTemp = param.asFloat();
Blynk.virtualWrite(V0, setTemp); // Echo
for display
}
BLYNK_WRITE(V2) {
setDist = param.asFloat();
Field Unit 1: if (!isnan(temp)) {
Blynk.virtualWrite(V1, String(temp, 1));
#define BLYNK_TEMPLATE_ID
"TMPL6UyqqWpW5" if (temp < setTemp) {
#define BLYNK_TEMPLATE_NAME "scada digitalWrite(RELAY_PIN, HIGH);
master"
} else {
#define BLYNK_AUTH_TOKEN
digitalWrite(RELAY_PIN, LOW);
"Si4LYOTUM11P1oEJRlHId0b9JPB4aiXG"
}
}
#include <ESP8266WiFi.h>
}
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
void setup() {
Serial.begin(115200);
char ssid[] = "Samam";
pinMode(RELAY_PIN, OUTPUT);
char pass[] = "11223344";
digitalWrite(RELAY_PIN, LOW);
dht.begin();
#define DHTPIN D4
Blynk.begin(BLYNK_AUTH_TOKEN, ssid,
#define RELAY_PIN D5
pass);
#define DHTTYPE DHT11
timer.setInterval(3000L, sendTemp);
}
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
void loop() {
Blynk.run();
float setTemp = 30.0;
timer.run();
}
BLYNK_WRITE(V0) {
setTemp = param.asFloat();
}
void sendTemp() {
float temp = dht.readTemperature();
Field Unit 2: digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH,
30000);
#define BLYNK_TEMPLATE_ID
"TMPL6UyqqWpW5" return duration * 0.034 / 2;
#define BLYNK_TEMPLATE_NAME "scada }
master"
#define BLYNK_AUTH_TOKEN
void sendDistance() {
"Si4LYOTUM11P1oEJRlHId0b9JPB4aiXG"
float distance = readDistance();
Blynk.virtualWrite(V3, String(distance,
#include <WiFi.h>
1));
#include <BlynkSimpleEsp32.h>
if (distance < setDistance) {
char ssid[] = "Samam";
digitalWrite(LED_PIN, HIGH);
char pass[] = "11223344";
} else {
digitalWrite(LED_PIN, LOW);
#define TRIG_PIN 4
}
#define ECHO_PIN 22
}
#define LED_PIN 19
void setup() {
float setDistance = 30.0;
Serial.begin(115200);
BlynkTimer timer;
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
BLYNK_WRITE(V2) {
pinMode(LED_PIN, OUTPUT);
setDistance = param.asFloat();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid,
} pass);
timer.setInterval(3000L, sendDistance);
float readDistance() { }
digitalWrite(TRIG_PIN, LOW); void loop() {
delayMicroseconds(2); Blynk.run();
digitalWrite(TRIG_PIN, HIGH); timer.run();
delayMicroseconds(10); }