แสดงสถานะ LED ใน blynk ไม่ขึ้นครับ ไม่แน่ใจว่าผิดตรงไหนครับ

สอบถามครับมือใหม่ ผมลองทำวัดอุณหภูมิแจ้งเตือนทางไลน์ และส่งออก Output ผมลองเอา code มา run ใช้งานได้ แต่ผมจะแสดง LED Output ใน Blynk ไม่ขึ้นครับ

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#include <DHT_U.h>
#include <TridentTD_LineNotify.h> 
#define DHTPIN 0 // กำหนดขาให้กับอุปกรณ์ตรวจสอบความชื้น DHT22
#define DHTTYPE DHT22
#define LED D5 /// alarm
#define SW1 D6 ///switch

int setTemp;
int setHumid;

BLYNK_WRITE(V3) //temperature slider in app on pin V3
{
setTemp = param.asInt();
}
BLYNK_WRITE(V4) //temperature slider in app on pin V4
{
setHumid = param.asInt();
}

/////////////////////////////////////////////////////////

DHT_Unified dht(DHTPIN, DHTTYPE);

//* **BLYNK TOKEN** //
char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
char ssid[] = "xxxxxxx";
char pass[] = "xxxxxxx";

// ***LINE TOKEN*** //
#define LINE_TOKEN "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

extern "C" { /////////// สถานะเชื่อม wifi
#include "user_interface.h"
}



SimpleTimer timer;

BLYNK_CONNECTED() {
Blynk.syncAll();
}



void setup()
{
Serial.begin(115200);
Serial.println("test");
Serial.println(LINE.getVersion());
LINE.setToken(LINE_TOKEN);
LINE.notify("[myarduino.net](http://myarduino.net/)");
wifi_status_led_install(2,  PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2); //สถานะเชื่อม wifi


Blynk.begin(auth, ssid, pass, "blynk.honey.co.th", 8080);
pinMode(D5, OUTPUT); // ***อุณหภูมิ output*** ///
digitalWrite(D5, LOW);
////////////////////////////////////////////////////////////
pinMode(D6, OUTPUT); // ***switch*** ///
digitalWrite(D6, LOW);
///////////////////////////////////////////////////////////
dht.begin();

timer.setInterval(1000L, sendUptime);

BLYNK_WRITE(V10) 
{
 if (param.asInt()==1) {
 digitalWrite(D6, HIGH);
 Blynk.virtualWrite(V10, 1);

 }else{
 digitalWrite(D6, LOW);
 Blynk.virtualWrite(V10, 0);
 }

}

void sendUptime()
{
  
// *****ชุดคำสั่งการทำงานของอุณหภูมิ***** *//
Blynk.virtualWrite(V5, millis() / 1000);
sensors_event_t event;
dht.temperature().getEvent(&event);
if (!isnan(event.temperature)) {
Blynk.virtualWrite(V1, event.temperature);
if (event.temperature >=  setTemp ) {
digitalWrite(D5, HIGH);
Blynk.virtualWrite(V11, 1);

String LineText;
String string1 = "High temperature ";
String string2 = " °C";
LineText = string1 + event.temperature + string2;
Serial.print("Line ");
Serial.println(LineText);
LINE.notify(LineText);
  
}
else {
digitalWrite(D5, LOW);
Blynk.virtualWrite(V11, 0);
}
}
Blynk.virtualWrite(V6, millis() / 1000);
dht.humidity().getEvent(&event);
if (!isnan(event.relative_humidity)) {
Blynk.virtualWrite(V2, event.relative_humidity);
if (event.temperature >=  setHumid ) {
//digitalWrite(D7, LOW);
String LineText;
String string1 = "High humidity  ";
String string2 = " %";
LineText = string1 + event.temperature + string2;
Serial.print("Line ");
Serial.println(LineText);
LINE.notify(LineText);
}
///////////////////////////////////else {
///////////////////////////////////digitalWrite(D7, HIGH);
///////////////////////////////////}
}
}

//*********************************************************//

void loop()
{
if(Blynk.connected()) {
Blynk.run();
timer.run();
Blynk.virtualWrite(V7, WiFi.RSSI()); // ความแรงสัญญาณ

if(digitalRead(SW1)==HIGH)
Blynk.virtualWrite(V10, 1);
else
Blynk.virtualWrite(V10, 0);

  }
}

คำสั่งที่จะส่งไปสั่งให้ LED ของ blynk ต้องใช้คำสั่ง ดับ = 0 , ติด = 255 ไม่ใช่ แบบที่เขียนอยู่

ตัวอย่าง
" Blynk.virtualWrite(V2,255 ); // turns on the led "
" Blynk.virtualWrite(V2,0 ); //turns off the led "

ลองแก้ไขดูครับ ติดขัด ตรงไหน มาถามได้อีก

ได้แล้วครับ เปลี่ยนค่าเป็น 255 ขอบคุณมากครับ

ดูจาก Code ที่เขี่ยน สามารถทำงานได้ ตามความต้องการแล้ว ติดแค่ คำสั่งที่ส่งไปหา Blynk ไม่ถูกต้อง ตอนนี้แก้ไขแล้ว ใช้ได้

ปิดได้อีก 1 กระทู้ครับ :+1:

1 Like

เยี่ยมเลยครับ ขออนุญาต ปิดกระทู้

Go Away Goodbye GIF