ผมสร้างเงื่อนไขควบคุม NodeMCU ผ่านโปรแกรม Blynk ไม่ได้ครับ คือในปกติแล้วถ้า run โปรแกมเฉยๆเลยมันก็ทำได้แล้ว แต่ผมต้องการให้กดปุ่มครั้งใหม่แล้วปุ้มครั้งเก่าถูกปิด (คล้ายๆปุ่มพัดลม ที่กดครั้งใหม่ ครั้งเก่าที่เคยกดไว้จะถูกตัดทิ้ง แล้วให้โปรแกรมทำงานครั้งใหม่แทน)
บอร์ดที่ใช้คือ NodeMCU 1.0 (ESP-12E Module) ใช้ขา D0,D1,D2,D3 ทั้งหมด 4 ขา
โค้ดที่เขียนไว้อะครับ
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "____________";
char ssid[] = "____________";
char pass[] = "___________";
#define relayAPin 16 //GPIO
#define relayBPin 5
#define relayCPin 4
#define relayDPin 0
#define relayA V1
#define relayB V2
#define relayC V3
#define relayD V4
if(BLYNK_WRITE(D3))
{
if (param.asInt() == 1)
{
if (digitalRead(D0) != LOW)
{
digitalWrite(D0, LOW);
}
if (digitalRead(D1) != LOW)
{
digitalWrite(D1, LOW);
}
if (digitalRead(D2) != LOW)
{
digitalWrite(D2, LOW);
}
}
}
else if(BLYNK_WRITE(D0))
{
if (param.asInt() == 1)
{
if (digitalRead(D3) != LOW)
{
digitalWrite(D3, LOW);
}
if (digitalRead(D1) != LOW)
{
digitalWrite(D1, LOW);
}
if (digitalRead(D2) != LOW)
{
digitalWrite(D2, LOW);
}
}
}
else if(BLYNK_WRITE(D1))
{
if (param.asInt() == 1)
{
if (digitalRead(D0) != LOW)
{
digitalWrite(D0, LOW);
}
if (digitalRead(D3) != LOW)
{
digitalWrite(D3, LOW);
}
if (digitalRead(D2) != LOW)
{
digitalWrite(D2, LOW);
}
}
}
else if(BLYNK_WRITE(D2))
{
if (param.asInt() == 1)
{
if (digitalRead(D0) != LOW)
{
digitalWrite(D0, LOW);
}
if (digitalRead(D1) != LOW)
{
digitalWrite(D1, LOW);
}
if (digitalRead(D3) != LOW)
{
digitalWrite(D3, LOW);
}
}
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(D0,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
}
void loop()
{
Blynk.run();
}
ผมสร้างเงื่อนไขควบคุม NodeMCU ผ่านโปรแกรม Blynk ไม่ได้ครับ
บอร์ดที่ใช้คือ NodeMCU 1.0 (ESP-12E Module) ใช้ขา D0,D1,D2,D3 ทั้งหมด 4 ขา
โค้ดที่เขียนไว้อะครับ
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[] = "____________";
char ssid[] = "____________";
char pass[] = "___________";
#define relayAPin 16 //GPIO
#define relayBPin 5
#define relayCPin 4
#define relayDPin 0
#define relayA V1
#define relayB V2
#define relayC V3
#define relayD V4
if(BLYNK_WRITE(D3))
{
if (param.asInt() == 1)
{
if (digitalRead(D0) != LOW)
{
digitalWrite(D0, LOW);
}
if (digitalRead(D1) != LOW)
{
digitalWrite(D1, LOW);
}
if (digitalRead(D2) != LOW)
{
digitalWrite(D2, LOW);
}
}
}
else if(BLYNK_WRITE(D0))
{
if (param.asInt() == 1)
{
if (digitalRead(D3) != LOW)
{
digitalWrite(D3, LOW);
}
if (digitalRead(D1) != LOW)
{
digitalWrite(D1, LOW);
}
if (digitalRead(D2) != LOW)
{
digitalWrite(D2, LOW);
}
}
}
else if(BLYNK_WRITE(D1))
{
if (param.asInt() == 1)
{
if (digitalRead(D0) != LOW)
{
digitalWrite(D0, LOW);
}
if (digitalRead(D3) != LOW)
{
digitalWrite(D3, LOW);
}
if (digitalRead(D2) != LOW)
{
digitalWrite(D2, LOW);
}
}
}
else if(BLYNK_WRITE(D2))
{
if (param.asInt() == 1)
{
if (digitalRead(D0) != LOW)
{
digitalWrite(D0, LOW);
}
if (digitalRead(D1) != LOW)
{
digitalWrite(D1, LOW);
}
if (digitalRead(D3) != LOW)
{
digitalWrite(D3, LOW);
}
}
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(D0,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
}
void loop()
{
Blynk.run();
}