พอดีผมทำโปรเจคเครื่องฆ่าเชื้อโรคและแบคทีเรียในอากาศ ด้วยแสงยูวี
แต่ยังเขียนโค้ดไม่ค่อยเก่งและยังสับสน อยู่หลายจุด แต่ก็พอจับจุดได้
จึงอยากรู้ว่าเขียนโค้ดควบคุมสไลด์ใน Blynk เขียนยังไง
ให้เวลาที่เราตั้งค่าสไลด์ไว้ที่ 60 เพื่อควบคุม รีเลย์ให้เปิดไฟนะครับ
ตัวอย่าง#
โค้ดผมควรแก้ไขและเพิ่มเติมยัง ถ้าเป็นไปได้ช่วยจัดเรียงให้ผมใหม่ก็ได้นะครับ
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6aDxf8qPz"
#define BLYNK_TEMPLATE_NAME "Humidity"
#define BLYNK_AUTH_TOKEN "EhDmIunpmcTW2OGhb--qLMy77QSy5EBI"
#include <ESP8266WiFi.h> //ไลบารี่วายฟาย
#include <BlynkSimpleEsp8266.h>
#include <TridentTD_LineNotify.h> //ไลบารี่ลาย
#define LINE_TOKEN "AGuxARVqqn6TuFsGgQIXIn4u8HeTQ6pP7lYzpZQ2tSA"
#include <DHT.h> //ไลบารี่DHT
DHT dht(D4,DHT11); //ประกาศชื่อตัวแปรและชนิดที่ขาพิน D4
#define led D3 //กำหนดชื่อ led และขาพิน D3
#include <Wire.h> //ไลบารี่ หน้าจอ LCD
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
char ssid[] = "CPE-9C27";
char pass[] = "9876543210";
char auth[] = "EhDmIunpmcTW2OGhb--qLMy77QSy5EBI";
BlynkTimer timer; //ไลบารี่ Timer
WidgetLED led1(V3); //ส่งสถานะไฟ LED ไปยัง Blynk
/*int ValueOfSlider;
BLYNK_WRITE(V4)
{
ValueOfSlider = param.asInt();
}
*/
void set()
{
float h = dht.readHumidity();
if(h<40||h>65)
{
String LineText1;
String string1 = "กำหนด=(40%-60%) ความชื้นเกินกำหนด ";
String string2 = " %";
LineText1 = string1 + h + string2;
Serial.print("Line: ");
Serial.println(LineText1); //ข้อความออก ซีเรียล มอนิเตอร์
LINE.notifySticker(LineText1,3,240); // ส่ง Line Sticker ด้วย PackageID 1 , StickerID 2 พร้อมข้อความ
//LINE.notifyPicture("https://i.pinimg.com/originals/43/d7/38/43d7386215bfc07b8de35dd44d4529dd.gif");} //รูปภาพออกลาย
}
}
void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
//delay(1000);
Serial.println("Connection Complease");
Serial.println(LINE.getVersion()); //แสดงเวอร์ชั่นของลาย
LINE.setToken(LINE_TOKEN); // กำหนด Line Token
LINE.notify("Myarduino.net");
dht.begin();
lcd.begin();
lcd.backlight();
Serial.println();
Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");
pinMode(D4,INPUT); //รับข้อมูล DHT เข้าขา D4
pinMode(D3,OUTPUT); //ส่งข้อมูล led เข้าขา D3
timer.setInterval(500000,set); //หน่วงเวลาของลูป set ส่ง Line
//timer.setInterval(1000,blynk); //หน่วงเวลาของลูป Sensor ส่ง Blynk
//timer.setInterval(1000,LCD); //หน่วงเวลาของลูป LCD ส่ง หน้าจอ LCD
}
void loop(){
Blynk.run();
timer.run();
float t = dht.readTemperature();
float h = dht.readHumidity();
float f = dht.readTemperature(true);
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" *C ");
Serial.print(f);
Serial.print(" *F\t");
Serial.print("Heat index: ");
Serial.print(hic);
Serial.print(" *C ");
Serial.print(hif);
Serial.println(" *F");
delay(1000);
if(h<40 || h>60)
{
digitalWrite(led,LOW);
led1.on(); //ส่งสานะไฟ LED ไปยัง Blynk
}
else
{
digitalWrite(led,HIGH);
led1.off(); //ส่งสานะไฟ LED ไปยัง Blynk
}
//Blynk.virtualWrite(V4, ValueOfSlider);
Blynk.virtualWrite(V2,t); //ส่งค่าอุณหภูมิไปยังBlynk
Blynk.virtualWrite(V1,h); //ส่งค่าความชื้นไปยังBlynk
lcd.setCursor(0, 0);
lcd.print("TEMP : ");
lcd.setCursor(7, 0);
lcd.print(t);
lcd.setCursor(13, 0);
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("HUMI : ");
lcd.setCursor(7, 1);
lcd.print(h);
lcd.setCursor(13, 1);
lcd.print("%");
}