我已通过以下方式将 LED 连接到我的 NodeMCU: 电路图并已使用笔记本电脑的串行端口成功控制它。现在我想通过手机上的 Wifi 和 Blynk App 远程控制它。我已经在应用程序中添加了所有必需的规格,例如板类型和引脚号等。我已经能够成功地将 LDR 数据发送到 ThingSpeak 站点,这意味着 NodeMCU 与 wifi 的连接很好。但是当我使用 Blynk App 上的按钮打开灯时,LED 灯亮了不到一秒钟然后就熄灭了。Arduino IDE 上的串口监视器一直显示灯不亮。这是我在 NodeMCU 上上传的代码:
#include <ThingSpeak.h>
#include <ESP8266WiFi.h>
#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp8266.h>
const char* ssid = "WifiName";
const char* password = "WifiPassword";
char auth[] = "AuthCode from Blynk App";
const int ldrPin = A0;
int ldrVal = 0;
int inputVal = 0;
const int ledPin = 5; //D1 pin on NodeMCU
WiFiClient client;
long myChannelNumber = ThingSpeak channel number;
const char myWriteApiKey[] = "Thingspeak write api key";
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, password);
delay(100);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, 0);
pinMode(ldrPin, INPUT);
Serial.println();
Serial.println();
Serial.print("Connecting To: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(200);
Serial.println("...");
}
Serial.println("");
Serial.println("Wifi Connected");
Serial.print("Ip Address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run();
while(Serial.available()>0){
inputVal = Serial.read();
}
ldrVal = analogRead(ldrPin);
Serial.println(ldrVal);
if(inputVal=='1'){
digitalWrite(ledPin, HIGH);
Serial.println("ON");
}
else{
digitalWrite(ledPin, LOW);
Serial.println("OFF");
}
Serial.println("");
ThingSpeak.writeField(myChannelNumber, 1, ldrVal, myWriteApiKey);
ThingSpeak.writeField(myChannelNumber, 2, inputVal, myWriteApiKey);
}
我已将 Blynk 功能添加到我的项目已经运行的代码中,我从串行端口获取输入并根据该输入打开或关闭 LED。为什么 LED 不能正常亮起?