Здравствуйте!
Я использую Arduino 1.8.16
NodeMCU WeMos, DS18B20 И такой скэтч:
Summary
#define BLYNK_TEMPLATE_ID ""
#define BLYNK_DEVICE_NAME "TempMonit"
#define BLYNK_FIRMWARE_VERSION "0.1.3"
#define BLYNK_PRINT Serial
//#define BLYNK_DEBUG
#define APP_DEBUG
#define USE_NODE_MCU_BOARD
//libs
#include "BlynkEdgent.h"
#include <SimpleTimer.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//Fonts
#include <Fonts/FreeSans18pt7b.h>
#include <Fonts/WeatherIcon.h>
//Param display
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//
SimpleTimer timer;
//Param DS18B20
#define ONE_WIRE_BUS 10
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature DS18B20(&oneWire);
//
float temp;
void getdata() // получение данных с датчика и отправка их на сервер blynk
{
DS18B20.requestTemperatures();
temp = DS18B20.getTempCByIndex(0);
Blynk.virtualWrite(V1, temp);
}
void getdisplay() // вывод информации на дисплей
{
if (temp == -127)
{
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(35, 50);
display.setFont(&Weathericon);
display.setTextSize(2);
display.write(41);
display.setFont();
display.display();
} else {
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, 48);
display.setFont(&Weathericon);
display.setTextSize(2);
display.write(39);
display.display();
display.setTextSize(1);
display.setFont(&FreeSans18pt7b);
display.setCursor(33, 41);
display.println(temp, 1);
display.setFont(&Weathericon);
display.setTextSize(2);
display.setCursor(99, 41);
display.write(42 );
display.setFont();
display.display();
}
}
void setup()
{
Serial.begin(115200);
delay(100);
BlynkEdgent.begin();
DS18B20.begin();
delay(100);
timer.setInterval(1000L, getdata); //старт функции сбора данных с датчика
delay(100);
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
{
Serial.println(F("SSD1306 allocation failed"));
for (;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.drawPixel(10, 10, SSD1306_WHITE);
display.display();
timer.setInterval(5000L, getdisplay); //старт функции вывода данных на дисплей
}
void loop() {
timer.run();
BlynkEdgent.run();
}
Если во время нормальной работы устройства выключить wifi к которому оно подключено, то имеем цикличную перезагрузку устройства а в мониторе порта следующую информацию:
Summary
>[391]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v1.0.1 on ESP8266
[393] --------------------------
[396] Product: TempMonit
[398] Firmware: 0.1.3 (build Oct 23 2021 15:21:42)
[402] Token: ...Moa-
[405] Device: ESP8266 @ 80MHz
[407] MAC: 48:3F:DA:02:76:E3
[410] Flash: 4096K
[412] ESP core: 3.0.2
[414] ESP SDK: 2.2.2-dev(38a443e)
[418] Boot Ver: 6
[419] Boot Mode:1
[421] FW info: 491952/1601536, MD5:0bca9d0638c7fff9381b784d98542122
[638] Free mem: 30056
[639] --------------------------
[639] INIT => CONNECTING_NET
[3447] Connecting to WiFi: Keenetic-8695
[7571] Using Dynamic IP: 192.168.1.36
[7571] CONNECTING_NET => CONNECTING_CLOUD
[8196] Current time: Sat Oct 23 08:22:43 2021
[8196] Connecting to blynk.cloud:443
[10014] Ready (ping: 12ms).
[10173] CONNECTING_CLOUD => RUNNING
[43291] RUNNING => CONNECTING_NET
[43347] Connecting to WiFi: Keenetic-8695
[73352] CONNECTING_NET => ERROR
[83921] Restarting after error.
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 3460, room 16
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4
tail 4
chksum 0xc9
csum 0xc9
v000781b0
~ld
>[391]
___ __ __
/ _ )/ /_ _____ / /__
/ _ / / // / _ \/ '_/
/____/_/\_, /_//_/_/\_\
/___/ v1.0.1 on ESP8266
[393] --------------------------
[396] Product: TempMonit
[398] Firmware: 0.1.3 (build Oct 23 2021 15:21:42)
[403] Token: ...Moa-
[405] Device: ESP8266 @ 80MHz
[408] MAC: 48:3F:DA:02:76:E3
[411] Flash: 4096K
[413] ESP core: 3.0.2
[415] ESP SDK: 2.2.2-dev(38a443e)
[418] Boot Ver: 6
[419] Boot Mode:1
[421] FW info: 491952/1601536, MD5:0bca9d0638c7fff9381b784d98542122
[639] Free mem: 30056
[639] --------------------------
[639] INIT => CONNECTING_NET
[3447] Connecting to WiFi: Keenetic-8695
[33456] CONNECTING_NET => ERROR
[44024] Restarting after error.
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x4010f000, len 3460, room 16
tail 4
chksum 0xcc
load 0x3fff20b8, len 40, room 4
tail 4
chksum 0xc9
csum 0xc9
v000781b0
~ld
Если wifi включить то устройство работает нормально, помогите пожалуйста это исправить!