#define BLYNK_PRINT Serial //ประกาศตัวแปร
#define BLYNK_TEMPLATE_ID "TMPL6fggeB6e6"//ประกาศตัวแปร
#define BLYNK_TEMPLATE_NAME "Project v2"//ประกาศตัวแปร
#define BLYNK_AUTH_TOKEN "NdFtK80O9_t1ti89wD9oC8SOi7MBQMuO" //ประกาศตัวแปร
#include <WiFi.h> //ใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ฟังก์ชั่น
#include <WiFiClient.h> //ใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ฟังก์ชั่น
#include <BlynkSimpleEsp32.h> //ใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ฟังก์ชั่น
#include <Stepper.h> //ใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ฟังก์ชั่น
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
int SW_relay = 0; //เก็บค่าข้อมูลจํานวนเต็ม
char ssid[] = "Wokwi-GUEST"; //กําหนดเป็นค่าตัวเลข หรือ ตัวอักษร
char pass[] = ""; //กําหนดเป็นค่าตัวเลข หรือ ตัวอักษร
#include <DHT.h> //ใช้อ้างอิงไฟล์ภายนอก เพื่อเรียกใช้ฟังก์ชั่น
DHT dht(16,DHT22);
DHT dht1(17,DHT22);
float temperature; //เก็บค่าข้อมูลที่เป็นเลขทศนิยม
float humidity; //เก็บค่าข้อมูลที่เป็นเลขทศนิยม
float temperature1; //เก็บค่าข้อมูลที่เป็นเลขทศนิยม
float humidity1; //เก็บค่าข้อมูลที่เป็นเลขทศนิยม
const int DIR = 12; //นิพจน์ที่กำหนดไว้ล่วงหน้าในโปรแกรม
const int STEP = 14; //นิพจน์ที่กำหนดไว้ล่วงหน้าในโปรแกรม
int value; //เก็บค่าข้อมูลจํานวนเต็ม
int value1; //เก็บค่าข้อมูลจํานวนเต็ม
void setup() { //กำหนดคุณสมบัติการทำงานให้กับอุปกรณ์
Serial.begin(115200); //การกําหนดอัตราความเร็วการสื่อสารพอร์ตอนุกรม
pinMode(STEP, OUTPUT); //กำหนดการทำงานของ pin ที่ต้องการใช้งาน
pinMode(DIR, OUTPUT); //กำหนดการทำงานของ pin ที่ต้องการใช้งาน
pinMode(18, INPUT); //กำหนดการทำงานของ pin ที่ต้องการใช้งาน
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dht.begin(); //สั่ง dht เริ่มทำงาน
}
void loop() { // ทำงานเพียงแค่ครั้งแรก ครั้งเดียว
int aa=digitalRead(18); //เก็บค่าข้อมูลจํานวนเต็ม
if(aa==1)
{
digitalWrite(DIR, HIGH); //สั่งเขียนค่า HIGH
digitalWrite(STEP, HIGH); //สั่งเขียนค่า HIGH
delayMicroseconds(1); //หน่วงเวลา โดยมีหน่วยเป็น uS
digitalWrite(STEP, LOW); //สั่งเขียนค่า LOW
}
Blynk.run();
int h = dht.readHumidity(); //สั่ง dht อ่านความชื้น
int t = dht.readTemperature(); //สั่ง dht อ่านอุณหภูมิ
Blynk.virtualWrite(V3, t); //ส่งค่า t ไปแสดงที่ blynk ที่ท่อ v3 ก็คือ guage temp
{
int h = dht1.readHumidity(); //สั่ง dht อ่านความชื้น
int t = dht1.readTemperature(); //สั่ง dht อ่านอุณหภูมิ
Blynk.virtualWrite(V6, t); //ส่งค่า t ไปแสดงที่ blynk ที่ท่อ v6 ก็คือ guage temp
}
}
BLYNK_WRITE(V1) {
int ledState = param.asInt(); //เก็บค่าข้อมูลจํานวนเต็ม
if (ledState <= 0){ //เงื่อนไข
Blynk.virtualWrite(V1, ledState);{
for(int i = 0 ; i < 20000 ; i++){ //สั่งให้โปรแกรมวนรอบทำงานซ้ำ โดยมีการกำหนดค่าเริ่มต้นและเงื่อนไขการสิ้นสุดที่แน่นอน
digitalWrite(DIR, HIGH); //สั่งเขียนค่า HIGH
digitalWrite(STEP, HIGH); //สั่งเขียนค่า HIGH
delayMicroseconds(500); //หน่วงเวลา โดยมีหน่วยเป็น uS
digitalWrite(STEP, LOW); //สั่งเขียนค่า LOW
}
}
}
}