Невозможно добавить больше кода в loop() при использовании server.handleClient
Вот мой код
void loop() {
if (analogRead(A0) > 500)
{
statuss = true ;
}
if (statuss)
{
digitalWrite(D7, HIGH);
if (millis() - lasttime > 500)
{
digitalWrite(D8, etat);
digitalWrite(D6, etat);
etat = !etat;
lasttime = millis();
}
}
server.handleClient();
}
Когда я использую только server.handleClient
, все работает нормально, но когда я добавляю любой тип кода в функцию loop()
, сервер отключается, и я не могу см. точку доступа ESP8266.
@fakherhabib, 👍0
Обсуждение1 ответ
Проблема в аналоговом чтении. esp8266 использует АЦП для оценки мощности сигнала Wi-Fi. Жесткое использование аналогового чтения нарушает его, и сигнал пропадает. Используйте millis() для определения времени аналогового чтения.
unsigned int tempSensRead() {
const unsigned long MEASURE_INTERVAL = 2L * 1000 * 60; // 2 минуты
static unsigned long lastMeasureMillis;
static unsigned int lastValue;
if (millis() - lastMeasureMillis > MEASURE_INTERVAL) {
lastMeasureMillis = millis();
lastValue = analogRead(A0);
}
return lastValue;
}
@fakherhabib, пожалуйста, оставьте отзыв, @Juraj
Хороший ответ. Знаете ли вы какие-либо источники, подтверждающие утверждение «esp8266 использует АЦП для оценки силы сигнала Wi-Fi»? Я не смог найти это в [таблице данных](https://espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf), @S.H.W
https://arduino-esp8266.readthedocs.io/en/latest/reference.html#analog-input, @Juraj
Отличный ресурс, спасибо., @S.H.W
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Как изменить имя модуля ESP8266-12E по умолчанию
- Простой запрос GET с ESP8266HTTPClient
- В ESP-12E NodeMCU, какой выход PIN A0?
что такое «любой тип кода»? ....также вы не задали вопрос., @jsotola
когда я использую только server.handleClient
.... в вашем коде есть другие команды... ваше утверждение не имеет смысла, @jsotolaэто проблема с близкой причиной «Непонятно, о чем вы спрашиваете». для меня совершенно ясно, в чем заключается этот вопрос. и я рад, что он еще не закрыт, @Juraj
@Юрай, я пытаюсь понять.... если, например, ОП добавляет в цикл() оператор Serial.print(), то сервер отключается..... как тебе это понятно? ....был ли у вас подобный опыт?, @jsotola
@jsotola, прочитай мой ответ, @Juraj
это конкретная команда, а не "какой-то тип кода".... возможно, виноват перевод с языка ОП, но все равно неясно, о чем спрашивают, @jsotola
@gre_gor, sempaiscuba, VE7JRO, MatsK, per123, вы закрыли этот вопрос без оценки/тестирования. Вопрос говорит: «Если я запущу этот код, esp8266 исчезнет из сети Wi-Fi». и это правда. вопрос "почему?, что мне следует изменить?", @Juraj
@jsotola, да, Аскер не занимался устранением неполадок, чтобы свести код к минимуму. он заслуживает отрицательных голосов, @Juraj
Голосование за повторное открытие и +1 за ваш ответ, Юрай., @VE7JRO