NodeMcu esp 8266 зависает при подключении
#include <ESP8266WiFi.h>
#include "ThingSpeak.h"
#include <Adafruit_BME280.h>
#include <Adafruit_Sensor.h>
const char* ssid = "REPLACE_WITH_YOUR_SSID"; // SSID вашей сети (имя)
const char* password = "REPLACE_WITH_YOUR_PASSWORD"; // ваш сетевой пароль
WiFiClient client;
unsigned long myChannelNumber = X;
const char * myWriteAPIKey = "XXXXXXXXXXXXXXXX";
// Переменные таймера
unsigned long lastTime = 0;
unsigned long timerDelay = 30000;
// Переменная для хранения показаний температуры
float temperatureC;
// раскомментируйте, если хотите получить температуру в градусах Фаренгейта
//плавающая температураF;
// Создаем объект датчика
Adafruit_BME280 bme; // BME280 подключается к ESP8266 I2C (GPIO 4 = SDA, GPIO 5 = SCL)
void initBME(){
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
}
void setup() {
Serial.begin(115200); //Инициализировать серийный номер
initBME();
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client); // Инициализировать ThingSpeak
}
void loop() {
if ((millis() - lastTime) > timerDelay) {
// Подключаемся или переподключаемся к WiFi
if(WiFi.status() != WL_CONNECTED){
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED){
WiFi.begin(ssid, password);
delay(5000);
}
Serial.println("\nConnected.");
}
// Получить новое значение температуры
temperatureC = bme.readTemperature();
Serial.print("Temperature (ºC): ");
Serial.println(temperatureC);
// раскомментируйте, если хотите получить температуру в градусах Фаренгейта
/*temperatureF = 1.8 * bme.readTemperature() + 32;
Serial.print("Temperature (ºC): ");
Serial.println(temperatureF);*/
// Запись на ThingSpeak. В канале может быть до 8 полей, что позволяет хранить до 8 различных
// фрагменты информации в канале. Здесь мы пишем в поле 1.
int x = ThingSpeak.writeField(myChannelNumber, 1, temperatureC, myWriteAPIKey);
// раскомментируйте, если хотите получить температуру в градусах Фаренгейта
//int x = ThingSpeak.writeField(myChannelNumber, 1, TemperatureF, myWriteAPIKey);
if(x == 200){
Serial.println("Channel update successful.");
}
else{
Serial.println("Problem updating channel. HTTP error code " + String(x));
}
lastTime = millis();
}
}
@Ammin, 👍-2
Обсуждение0
Смотрите также:
- ESP8266 не подключается к Wi-Fi
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Можно ли отключить WiFi на ESP8266?
- Как отключить или остановить точку доступа в ESP8266?
- ESP8266 — действительно ли у него по умолчанию плохой радиус действия Wi-Fi?
- ESP8266 на Wi-Fi без пароля, возможно?
- ESP8266 Аналоговое чтение мешает Wi-Fi?
- Каково использование зарезервированных контактов и контактов SDD2, SDD3 NodeMCU?
какой у вас конкретный вопрос? ... где вы видите слово "подключение"?, @jsotola
Без
WiFi.begin(ssid, password)
вы не пытаетесь подключиться к WiFi., @hcheung@hcheung esp8266 может автоматически присоединяться к точке доступа с сохраненными учетными данными. но OP должен дождаться завершения этого соединения, @Juraj