基本上我有一个读取数据的程序,如果它是 1,它会打开板载 LED(它确实在串行监视器上显示。虽然,我已经设置了它以便 d5 应该输出并且我正在使用测试它的 LED 灯不亮?我已经取出了一些代码,例如 API 密钥和我的路由器信息,所以它不存在。
#include <DHT.h>
#include <DHT_U.h>
#include <ESP8266WiFi.h>
#include <ThingSpeak.h>
//school
const char* ssid = "";
const char* pass = "";
char* thingSpeakAddress = "api.thingspeak.com";
//This is for channel for temp
unsigned long channelID = 1029606;
unsigned int dataFieldOne = 1;
char* apiWriteKey =
char* apiReadKey =
//This is for the fan stats channel
unsigned long channelID2 = 1371231;
unsigned int dataFieldOne2 = 1;
char* apiWriteKey2 =
char* apiReadKey2 =
int x = 1;
//dht stuff
#define DHTPIN 0
DHT dht(DHTPIN, DHT11);
WiFiClient client;
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Initialize the LED_BUILTIN pin as an output
pinMode(14, OUTPUT);
Serial.begin(115200);
delay(10);
dht.begin();
delay(500);
Serial.print("Connecting to..");
Serial.println(ssid);
delay(500);
WiFi.disconnect();
WiFi.begin(ssid, pass);
while(WiFi.status()!= WL_CONNECTED){
delay(500);
Serial.println(".");
}
Serial.print("SSID......");
Serial.println(WiFi.SSID());
Serial.println("NodeMCU successfully connected to WiFi...");
Serial.print("IP Address allocated to NodeMCU ESP8266... ");
Serial.println(WiFi.localIP());
Serial.print("MAC Address of ESP8266... ");
Serial.println(WiFi.macAddress());
WiFi.printDiag(Serial);
ThingSpeak.begin( client );
}
void loop() {
// put your main code here, to run repeatedly:
float t = dht.readTemperature();
if (isnan(t))
{
Serial.println("failed to read from dht sensor!");
return;
}
writeTSData(1029606,1,t);
//writeTSData(channelID, dataFieldOne, x );
if (readTSData(channelID2, dataFieldOne2)==1){
digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level
digitalWrite(14,LOW);
Serial.print("ON");
}
else{
digitalWrite(LED_BUILTIN, HIGH); // Turn the LED on (Note that LOW is the voltage level
digitalWrite(14,HIGH);
Serial.print("OFF");
}
delay(5000);
}
// Use this function if you want to write a single field
int writeTSData( long TSChannel, unsigned int TSField, int data ){
int writeSuccess = ThingSpeak.writeField( TSChannel, TSField, data, apiWriteKey ); // Write the data to the channel
if ( writeSuccess ){
Serial.println( String(data) + " written to Thingspeak." );
}
return writeSuccess;
}
float readTSData( long TSChannel2,unsigned int TSField2 ){
float data = ThingSpeak.readFloatField( TSChannel2, TSField2, apiWriteKey2 );
Serial.println( " Data read from ThingSpeak: " + String( data, 9 ) );
return data;
}