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();
}
@mocha234, 👍-1
Обсуждение1 ответ
Избавьтесь от задержки — эта обработка ПРЕРЫВАЕТ на пять секунд, что не совсем то, что вам нужно в сценарии с Wi-Fi – некоторые маршрутизаторы могут отключить вас в это время, если не приходят пингбэки
Если вам нужен 5-секундный неблокирующий перерыв для ваших подпрограмм, посмотрите на этот пример
ArduinoIDE -> примеры -> 2 Digital -> blinkwithoutdelay.
Для получения дополнительной помощи скопируйте и вставьте свой код в теги кода, а не в виде изображения.
Привет . Спасибо за ваш отзыв. Я отредактировал и вставил код в текстовом виде. Я попытался опустить задержку (5000), но все равно не получается... Я пересматриваю коды и не вижу проблемы, пожалуйста, дайте мне знать, что вы можете обнаружить проблему... спасибо!!!, @mocha234
У вас все еще есть задержка в вашем цикле, пока вы используете задержки, отладка бесполезна /* Получение значения от LM35 */ задержка(1000); => избавиться заменить чем-то if(millis() - startTime < timeToWait)... >> см. пример blinkwithoutdelay, @Codebreaker007
- Как связать MPU9250 и NodeMcu?
- ESP8266 не подключается к Wi-Fi
- Простой запрос GET с ESP8266HTTPClient
- Каково использование зарезервированных контактов и контактов SDD2, SDD3 NodeMCU?
- Обнаружение ESP8266 в сети
- Чтение данных из Google Таблиц с помощью Nodemcu
- NodeMCU продолжает отключаться
- Соединение сетей Wi-Fi на nodemcu: как настроить esp8266 в качестве расширителя Wi-Fi, простейший случай
Ваш код отсутствует в вопросе. Кроме того, какой датчик температуры вы использовали и какие контакты вы использовали для подключения датчика?, @StarCat
@StarCat Привет. Спасибо за ответ.. Отредактировано. Коды во вложении. 3,3 В, ЗАЗЕМЛЕНИЕ, А0, @mocha234