微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

蓝色 ESP8266-12e TX 灯一直亮着

如何解决蓝色 ESP8266-12e TX 灯一直亮着

我有一些代码放在 ESP8266-12e 板上。直到最近,它一直运行良好。现在,当我完成上传代码时,ESP8266-12e 上的蓝灯一直亮着。我已经在两个不同的板上试过了,蓝灯都亮着。我无法弄清楚我在代码中更改了什么。 我决定把它放上来,让每个人都看看它,让我知道我可能遗漏了什么。 我希望有人能找到一些东西。

我的代码

//NodeMCU 1.0 (ESP-12E Module constant connect)
#include <ESP8266WiFi.h>

#include <FS.h>         //https://github.com/esp8266/Arduino
#include <EEPROM.h>
//needed for library
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>         //https://github.com/tzapu/WiFiManager
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

//MQTT stuff
#define AIO_SERVER      "go,here"
#define AIO_SERVERPORT  SSSS                   // 8883 for MQTTS

#define AIO_USERNAME    "FFFFFF"

#define AIO_KEY       "XXXXXXXXXXXXXXXXXXXXXXX"

int tripper = 1;
#define MQTT_CONN_KEEPALIVE 18000000
#define LED3 16

//NEW AUTOCONNECT
const byte numChars = 32;
char receivedChars[numChars];
char Password[36]="";
char apiKey[16]="";
char apiKey2[32]="";
char channelKey[16]; 
char channelKey2[16];
String channelKey21= "&"; 

byte pinState = LOW;

char ssid[] = "";
char pass[] = "";  
String Label = ""; 
String TOTAL = ""; 

uint32_t m=0;

 WiFiClient client;
Adafruit_MQTT_Client mqtt(&client,AIO_SERVER,AIO_SERVERPORT,AIO_USERNAME,AIO_KEY);
 // Setup a Feed called 'onoff' for subscribing to changes.
Adafruit_MQTT_Subscribe trip2 = Adafruit_MQTT_Subscribe(&mqtt,AIO_USERNAME "/Feeds/trip");
Adafruit_MQTT_Publish move1 = Adafruit_MQTT_Publish(&mqtt,AIO_USERNAME "/Feeds/motion");
/*************************** Error Reporting *********************************/
Adafruit_MQTT_Subscribe errors = Adafruit_MQTT_Subscribe(&mqtt,AIO_USERNAME "/errors");
Adafruit_MQTT_Subscribe throttle = Adafruit_MQTT_Subscribe(&mqtt,AIO_USERNAME "/throttle");


//NEW AUTOCONNECT
int LED2 = 13; 
int MOVEMENT = 5;
//send ssid/pass
String f;

//mqtt
char temperature[]="000";
String level;
String battery;
String trip;
String date;

int addr = 0; 
//END NEW AUTOCONNECT

void MQTT_connect();
   
void setup() {
Serial.begin(115200);
pinMode(MOVEMENT,OUTPUT);
digitalWrite(MOVEMENT,LOW);
pinMode(D5,OUTPUT);
digitalWrite(D5,LOW);
pinMode(LED3,OUTPUT);
digitalWrite(LED3,LOW);
pinMode(LED2,INPUT);
Serial.println(F("Adafruit MQTT demo"));

//NEW AUTOCONNECT
  WiFiManager wifiManager;
    // put your setup code here,to run once:

WiFiManagerParameter customAPIKey("apiKey","Time Zone #",apiKey,16);
wifiManager.addParameter(&customAPIKey);
wifiManager.autoConnect("FloWT2");
    Serial.println("Connected");
strcpy(apiKey,customAPIKey.getValue());


   EEPROM.begin(512);  //Initialize EEPROM
 
  
  EEPROM.write(addr,'A');    //Write character A
  addr++;                      //Increment address
  EEPROM.write(addr,'B');    //Write character A
 


 String www =  apiKey;
 Serial.print("www");
 Serial.print (www);
  for(int i=0;i<www.length();i++) //loop upto string lenght www.length() returns length of string
  {
    EEPROM.write(0x0F+i,www[i]); //Write one by one with starting address of 0x0F
  }
  

  EEPROM.commit(); 

  delay (2000);
  

 
if (WiFi.status() == WL_disCONNECTED) {
  
 wifiManager.autoConnect("FloWT2");
 delay(60000);}
 
 if (WiFi.status() == WL_CONNECTED) {  Serial.println("Connected");
delay(1000);

//get time zone
EEPROM.begin(512);
Serial.println(""); //Goto next line,as ESP sends some garbage when you reset it  
Serial.print(char(EEPROM.read(addr)));    //Read from address 0x00
addr++;                      //Increment address
Serial.print(char(EEPROM.read(addr)));    //Read from address 0x01
addr++;                      //Increment address
Serial.println(char(EEPROM.read(addr)));    //Read from address 0x02

//Read string from eeprom
String www;   
//Here we dont kNow how many bytes to read it is better practice to use some terminating character
//Lets do it manually www.circuits4you.com  total length is 20 characters
for(int i=0;i<16;i++) 
{
    www = www + char(EEPROM.read(0x0F+i)); //Read one by one with starting address of 0x0F    
  }  
 
Serial.println("this");
Serial.print(www); 

Serial.println("IP address: "); Serial.println(WiFi.localIP());

// Setup MQTT subscription for onoff Feed
mqtt.subscribe(&trip2);

// Setup MQTT subscriptions for throttle & error messages
mqtt.subscribe(&throttle);
mqtt.subscribe(&errors);

  
WiFiClient client;
delay(2000);

Serial.printf("SSID: %s\n",WiFi.SSID().c_str());
Serial.printf("SSID: %s\n",WiFi.psk().c_str());
String ssidString = WiFi.SSID().c_str();
String pskString = WiFi.psk().c_str();
f = String('<')+String("Hi")+String(',')+String(ssidString)+String(',')+String(pskString)+String(',')+String(www)+String('>');
delay (1000);
Serial.print(f);
delay(500);
Serial.print(f);
delay(500);
Serial.print(f);
delay(500);
Serial.print(f);
delay(500);
Serial.print(f);
delay(500);

}


 client.stop();
}

void loop() {
 MQTT_connect();
uint32_t m=0;

Serial.print(F("\nSending motion val "));
  Serial.print(m);
  Serial.print("...");
  if (! move1.publish(m)) {
    Serial.println(F("Failed"));
  } else {
    Serial.println(F("OK!"));
  }
  long state = digitalRead(LED2);
  if(state == HIGH) {
    m = 1;
    Serial.print(F("\nSending motion val "));
  Serial.print(m);
  Serial.print("...");
digitalWrite(MOVEMENT,HIGH);
delay(1000);
digitalWrite(MOVEMENT,LOW);

if (! move1.publish(m)) {
    Serial.println(F("Failed"));
  } else {
    Serial.println(F("OK!"));
  }
  }
  else{
    
  }
  
  // this is our 'wait for incoming subscription packets' busy subloop
  // try to spend your time here
  //12e
  Adafruit_MQTT_Subscribe *subscription;
  while ((subscription = mqtt.readSubscription(5000))) {
    if (subscription == &trip2) {
      Serial.print(F("Got onoff: "));
      Serial.println((char *)trip2.lastread);
    uint16_t sliderval = atoi((char *)trip2.lastread);
//THIS IS FOR LATCHING RELAY TURN ON D5 HIGH THEN OFF AFTER 1 SECOND 
      //NEXt TURN D6 HIGH THEN OFF AFTER A SECONDS
       if((sliderval ==0)&&(tripper == 1)){
        digitalWrite(D5,HIGH);
        delay(1000);
        digitalWrite(D5,LOW);
        tripper = 2;
        Serial.print(tripper);
        Serial.print("tripped");
      }
      else if(sliderval == 50){
      }
      else if((sliderval == 100)&&(tripper == 2)){
       digitalWrite(LED3,HIGH);
        delay(1000);
      digitalWrite(LED3,LOW);
        tripper = 1;
        Serial.print(tripper);
        Serial.print("tripped2");
      }
    } else if(subscription == &errors) {
      Serial.print(F("ERROR: "));
      Serial.println((char *)errors.lastread);
    } else if(subscription == &throttle) {
      Serial.println((char *)throttle.lastread);
    }
  }

}

void MQTT_connect() {
  int8_t ret;

  // Stop if already connected.
  if (mqtt.connected()) {
    return;
  }

  Serial.print("Connecting to MQTT... ");

  uint8_t retries = 3;
  while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected
       Serial.println(mqtt.connectErrorString(ret));
       Serial.println("retrying MQTT connection in 5 seconds...");
       mqtt.disconnect();
       delay(5000);  // wait 5 seconds
       retries--;
       if (retries == 0) {
         // basically die and wait for WDT to reset me
         while (1);
       }
  }
  Serial.println("MQTT Connected!");
  
}

希望不会太长。

无论如何,我希望有人能找到我的问题。一切正常,蓝色灯亮起,我知道应该是这样。

当我上传一个代码时,它不会保留,所以它必须在代码中。 我会继续寻找。

谢谢

解决方法

所以我让蓝光熄灭了。而不是 pinMode(D4,INPUT);和 digitalWrite(D4,LOW); D4 是引脚 16,它是唤醒引脚。所以我必须这样定义它 #define LED3 16 然后 pinMode(LED3,INPUT);和数字写入(LED3,低);我将更改我的原始代码以反映这些更改。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?