#arduino #esp8266 #arduino-esp8266 #esp8266wifi
#arduino #esp8266 #arduino-esp8266 #esp8266wifi
Вопрос:
У меня есть ESP8266, который может нормально подключаться к Wi-Fi (может видеть его в мобильной точке доступа), но он сам не регистрирует его (так как в нем не продолжается код)
иногда он может зарегистрировать его, а иногда и нет.
Я не смог найти для этого никаких решений.
часть кода на датском языке (в основном просто комментарии)
#include "ThingSpeak.h"
#include "navnkode.h"
#include <ESP8266WiFi.h>
//inkluderet biblioteker og ekstra filer for at få koden til at virke efter ønske
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
WiFiClient client;
unsigned long kodekanal = SECRET_CODECHANNEL;
unsigned long myChannelNumber = SECRET_CH_ID;
const char * myWriteAPIKey = SECRET_WRITE_APIKEY;
const char * myReadAPIKey = SECRET_READ_APIKEY;
int kanal = 1; //her vælges den kanal inde på thingspeak som skal modtage data
int TO_SLAVE = 15;
int FROM_SLAVE = 13;
void setup() {
Serial.begin(115200); // Initialize serial
pinMode(TO_SLAVE,OUTPUT);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client); // Initialize ThingSpeak
}
void loop() {
// Connect or reconnect to WiFi
if (WiFi.status() != WL_CONNECTED) {
digitalWrite(TO_SLAVE,LOW);
Serial.print("Attempting to connect to SSID: ");
Serial.println(SECRET_SSID);
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
digitalWrite(TO_SLAVE,LOW);
}
digitalWrite(TO_SLAVE,HIGH);
Serial.println("nConnected.");
}
int x = ThingSpeak.writeField(myChannelNumber, kanal, 23, myWriteAPIKey);
if (x == 200) {
Serial.println("kanal 1 blev opdateret uden problemer.");
} else {
Serial.println("Problem med at opdatere. HTTP fejl kode " String(x));
}
delay(5000); // Venter 20 sekunder før den opdatere kanalen (SKAL FJERNES!)
}
void hotspot() {
if (ThingSpeak.readIntField(myChannelNumber, kanal, myReadAPIKey) >= 1) {
digitalWrite(TO_SLAVE,HIGH);
} else {
digitalWrite(TO_SLAVE,LOW);
}
}
Комментарии:
1. Что произойдет, если вы сократите задержку (5000) в настройке подключения Wi-Fi до 500?
2. Это только ускорило сбой. он даже не подключался как обычно (обычно я мог видеть его в мобильной точке доступа через телефон), но он так и не появился. Попробовал на 2 разных платах (esp8266 NodeMCU v3) тот же результат
3. Хм. Будет ли он подключаться за один раз с задержкой в 10 секунд? Сработает ли это, если вы удалите весь код, кроме бита подключения Wi-Fi, плюс Serial.println(), чтобы увидеть, продолжается ли код? Просто пытаюсь изолировать проблему.
4. К сожалению, похоже, что мой телефон не указал ему IP-адрес. Не удалось отметить, так как мне нужно подождать 21 час, прежде чем я смогу принять свой ответ
Ответ №1:
Наиболее вероятным решением было изменить точку доступа с моего телефона на ПК.
Мой телефон, скорее всего, не предоставил ему IP-адрес…
Комментарии:
1. Может быть; ваш телефон, настроенный как точка доступа Wi-Fi, должен выдавать адреса.