/*************************************************************
This is a simple demo of sending and receiving some data.
Be sure to check out other examples!
*************************************************************/
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID "TMPLf_VEI5xH"
#define BLYNK_DEVICE_NAME "Quickstart Device"
#define BLYNK_AUTH_TOKEN "X5zwImlUNpugTUixUBav5_NeUB345PWx"
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <PMS.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define relay D2
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "E = mc2";
char pass[] = "zxkeq8vo9i931";
PMS pms(Serial);
PMS::DATA data;
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte auto_relay = 0;
float dust_auto = 0;
BlynkTimer timer;
// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V1)
{
// Set incoming value from pin V0 to a variable
auto_relay = param.asInt();
digitalWrite(relay, LOW);
// Update state
}
// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
// Change Web Link Button message to "Congratulations!"
Blynk.syncAll();
Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
Blynk.setProperty(V3, "onImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}
// This function sends Arduino's uptime every second to Virtual Pin 2.
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(relay, OUTPUT);
lcd.begin();
lcd.display();
lcd.backlight();
lcd.clear();
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
Blynk.connect();
}
void loop()
{
Blynk.run();
timer.run();
if (pms.read(data)) {
Serial.print("PM 2.5 (ug/m3): ");
Serial.println(data.PM_AE_UG_2_5);
lcd.begin();
lcd.display();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Dust : (ug/m3)");
lcd.setCursor(0,1);
lcd.println("PM 2.5 : ");
lcd.println(data.PM_AE_UG_2_5);
delay(1000);
Blynk.virtualWrite(V2, data.PM_AE_UG_2_5);
}
}
ผมอัพโหลดโค้ดใหม่ตามนี้ครับ
ตอนผมกด off ไฟที่บอร์ดติด พอกด on ไฟที่บอร์ดดับ
แต่ไฟ relay เปิดทั้งคู่เลยครับ
อันนี้โค้ด
/*************************************************************
This is a simple demo of sending and receiving some data.
Be sure to check out other examples!
*************************************************************/
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID "TMPLf_VEI5xH"
#define BLYNK_DEVICE_NAME "Quickstart Device"
#define BLYNK_AUTH_TOKEN "X5zwImlUNpugTUixUBav5_NeUB345PWx"
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <PMS.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
char relay = 2;
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "E = mc2";
char pass[] = "zxkeq8vo9i931";
PMS pms(Serial);
PMS::DATA data;
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte auto_relay = 0;
float dust_auto = 0;
BlynkTimer timer;
// This function is called every time the Virtual Pin 0 state changes
// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
// Change Web Link Button message to "Congratulations!"
Blynk.syncAll();
Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
Blynk.setProperty(V3, "onImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}
// This function sends Arduino's uptime every second to Virtual Pin 2.
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(relay, OUTPUT);
lcd.begin();
lcd.display();
lcd.backlight();
lcd.clear();
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
Blynk.connect();
}
BLYNK_WRITE(V1)
{
// Set incoming value from pin V0 to a variable
if (param.asInt()==1){
digitalWrite(relay, HIGH);
}
else{
digitalWrite(relay, LOW);
}
// Update state
}
void loop()
{
Blynk.run();
timer.run();
if (pms.read(data)) {
Serial.print("PM 2.5 (ug/m3): ");
Serial.println(data.PM_AE_UG_2_5);
lcd.begin();
lcd.display();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Dust : (ug/m3)");
lcd.setCursor(0,1);
lcd.println("PM 2.5 : ");
lcd.println(data.PM_AE_UG_2_5);
delay(1000);
Blynk.virtualWrite(V2, data.PM_AE_UG_2_5);
}
}
/*************************************************************
This is a simple demo of sending and receiving some data.
Be sure to check out other examples!
*************************************************************/
// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID "TMPLf_VEI5xH"
#define BLYNK_DEVICE_NAME "Quickstart Device"
#define BLYNK_AUTH_TOKEN "X5zwImlUNpugTUixUBav5_NeUB345PWx"
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <PMS.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
char relay = 2;
char auth[] = BLYNK_AUTH_TOKEN;
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "E = mc2";
char pass[] = "zxkeq8vo9i931";
PMS pms(Serial);
PMS::DATA data;
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte auto_relay = 0;
float dust_auto = 0;
BlynkTimer timer;
// This function is called every time the Virtual Pin 0 state changes
// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
// Change Web Link Button message to "Congratulations!"
Blynk.syncAll();
Blynk.setProperty(V3, "offImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations.png");
Blynk.setProperty(V3, "onImageUrl", "https://static-image.nyc3.cdn.digitaloceanspaces.com/general/fte/congratulations_pressed.png");
Blynk.setProperty(V3, "url", "https://docs.blynk.io/en/getting-started/what-do-i-need-to-blynk/how-quickstart-device-was-made");
}
// This function sends Arduino's uptime every second to Virtual Pin 2.
void setup()
{
// Debug console
Serial.begin(9600);
pinMode(relay, OUTPUT);
lcd.begin();
lcd.display();
lcd.backlight();
lcd.clear();
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
Blynk.connect();
}
BLYNK_WRITE(V2)
{
// Set incoming value from pin V0 to a variable
if (param.asInt()==1){
digitalWrite(relay, HIGH);
}
else{
digitalWrite(relay, LOW);
}
// Update state
}
void loop()
{
Blynk.run();
timer.run();
if (pms.read(data)) {
Serial.print("PM 2.5 (ug/m3): ");
Serial.println(data.PM_AE_UG_2_5);
lcd.begin();
lcd.display();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Dust : (ug/m3)");
lcd.setCursor(0,1);
lcd.println("PM 2.5 : ");
lcd.println(data.PM_AE_UG_2_5);
delay(1000);
Blynk.virtualWrite(V1, data.PM_AE_UG_2_5);
}
}