NodeMCU не может подключиться к мобильной точке доступа, когда я включаю коды для считывания датчика температуры

Добрый день.

NodeMCu успешно подключился к мобильной точке доступа, хотя я не вводил никаких других кодов, кроме Wifibegin и т. д.

Тем не менее, когда я добавляю некоторые коды для датчика температуры, он продолжает подключаться, тогда как все остальное, включая SSID и пароль, остается прежним.

Ниже мои коды, перепробовал много, то есть перепробовал практически все что можно (что написано на форумах), читайте форум за форумом. Пожалуйста, дайте мне знать, если я что-то пропустил здесь.

Спасибо!

PS: я прикрепил сюда свои коды

#include <ESP8266WiFi.h>
#include <WifiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>

/* Wi-Fi setting connect to your smartphone Wi-Fi hotspot */
const char *ssid = "Thanks";
const char *password = "​For reading";

/* Variable for taking out LM35 value */
String tempValue;
int analogValue;
int tempPin = A0;
float milliVolts;
float celcius;
/* Variable for sending data to server */
String postData;
int httpCode;
String payload;
void setup(){
// задержка (1000);
Serial.begin(115200);
WiFi.begin(ssid,password);
Serial.println("");
Serial.println("Connecting");
/* If Wi-Fi hotspot is not found, show ..... in serial monitor */
while(WiFi.status()!=WL_CONNECTED){
delay(500);
Serial.println(".");
}
/* If Wi-Fi hotspot is found, show IP address in serial monitor */
Serial.println("");
Serial.println("Connected to ");
Serial.println(ssid);
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop(){
/* Getting value from LM35 */
delay(1000);
analogValue = analogRead(tempPin);
milliVolts = (analogValue/1024.0)*3300;
celcius = milliVolts/10;
tempValue = String(celcius);
Serial.println(tempValue);
/* Sending LM35 value to server */
HTTPClient http;
postData = "tempValue=" + tempValue;
http.begin("http://xxx.xxx.xx.xxx/dbInsert.php");
http.addHeader("Content-Type","application/x-www-form-urlencoded");
httpCode = http.POST(postData);
payload = http.getString();
Serial.println(httpCode); //Выводим код возврата HTTP
Serial.println(payload); //Печать полезной нагрузки ответа на запрос
http.end();
}

, 👍-1

Обсуждение

Ваш код отсутствует в вопросе. Кроме того, какой датчик температуры вы использовали и какие контакты вы использовали для подключения датчика?, @StarCat

@StarCat Привет. Спасибо за ответ.. Отредактировано. Коды во вложении. 3,3 В, ЗАЗЕМЛЕНИЕ, А0, @mocha234


1 ответ


0

Избавьтесь от задержки — эта обработка ПРЕРЫВАЕТ на пять секунд, что не совсем то, что вам нужно в сценарии с Wi-Fi – некоторые маршрутизаторы могут отключить вас в это время, если не приходят пингбэки
Если вам нужен 5-секундный неблокирующий перерыв для ваших подпрограмм, посмотрите на этот пример
ArduinoIDE -> примеры -> 2 Digital -> blinkwithoutdelay.
Для получения дополнительной помощи скопируйте и вставьте свой код в теги кода, а не в виде изображения.

,

Привет . Спасибо за ваш отзыв. Я отредактировал и вставил код в текстовом виде. Я попытался опустить задержку (5000), но все равно не получается... Я пересматриваю коды и не вижу проблемы, пожалуйста, дайте мне знать, что вы можете обнаружить проблему... спасибо!!!, @mocha234

У вас все еще есть задержка в вашем цикле, пока вы используете задержки, отладка бесполезна /* Получение значения от LM35 */ задержка(1000); => избавиться заменить чем-то if(millis() - startTime < timeToWait)... >> см. пример blinkwithoutdelay, @Codebreaker007