Wpis z mikrobloga

Mam zerowe doświadczenie z pisaniu takich rzeczy. Potrzebuje termometr 4 kanałowy z wyświetlaczem i kontrolą przez blynk. Skleiłem z kilku projektów w jeden i działa, ale tylko online jeżeli nie znajdzie wifi wyświetlacz nie podaje wartości wyświetla 00.00, po podłączeniu do wifi wszystko działa prawidłowo.
Gdzie robie błąd?

#define BLYNK_PRINT Serial

#include
#include

#include
#include

#include
#include
LiquidCrystal_I2C lcd(0x27, 16, 2 );

#define ONE_WIRE_BUS D5 // temperatura
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

char auth[] = "O-FmE4dwpUXzzdXiNIIBuy7zLgTxL_Fe";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "domowy2";
char pass[] = "12345678";

BlynkTimer timer;
float temp_zbiornik = 0;
float temp_bufor = 0;
float temp_10p = 0;
float temp_OLM = 0;
float temp_UFO = 0;
float temp_woda = 0;
float temp_dnia = 80;

void BlynkLedWidget() //co 1 sek
{
sensors.requestTemperatures(); //Pobranie temperatury czujnika
Serial.print("Aktualna temperatura: ");
Serial.println(sensors.getTempCByIndex(0)); //Wyswietlenie informacji
delay(500);

sensors.requestTemperatures();
temp_zbiornik = sensors.getTempCByIndex(0);
temp_bufor = sensors.getTempCByIndex(1);
temp_10p = sensors.getTempCByIndex(2);
temp_OLM = sensors.getTempCByIndex(3);
temp_UFO = sensors.getTempCByIndex(4);

Blynk.virtualWrite(50,temp_zbiornik);
Blynk.virtualWrite(51,temp_bufor);
Blynk.virtualWrite(52,temp_10p);
Blynk.virtualWrite(53,temp_OLM);

lcd.setCursor(0, 0);
lcd.print("K:"); lcd.print(temp_10p); lcd.print("B:"); lcd.print(temp_bufor);
lcd.setCursor(0, 1);
lcd.print("Z:"); lcd.print(temp_zbiornik);lcd.print("W:"); lcd.print(temp_OLM);
}
void setup()
{
Wire.begin(D1,D2);
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("K:"); lcd.print(temp_10p); lcd.print("B:"); lcd.print(temp_bufor);
lcd.setCursor(0, 1);
lcd.print("Z:"); lcd.print(temp_zbiornik);lcd.print("W:"); lcd.print(temp_OLM);

// Debug console
Serial.begin(9600);

Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
sensors.setResolution(12);
sensors.begin();

}

void loop()
{
Wire.begin(D1,D2);
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("K:"); lcd.print(temp_10p); lcd.print("B:"); lcd.print(temp_bufor);
lcd.setCursor(0, 1);
lcd.print("Z:"); lcd.print(temp_zbiornik);lcd.print("W:"); lcd.print(temp_OLM);

sensors.requestTemperatures(); //Pobranie temperatury czujnika
Serial.print("Aktualna temperatura: ");
Serial.println(sensors.getTempCByIndex(0)); //Wyswietlenie informacji
delay(500);

sensors.requestTemperatures();
temp_zbiornik = sensors.getTempCByIndex(0);
temp_bufor = sensors.getTempCByIndex(1);
temp_10p = sensors.getTempCByIndex(2);
temp_OLM = sensors.getTempCByIndex(3);

Blynk.virtualWrite(50,temp_zbiornik);
Blynk.virtualWrite(51,temp_bufor);
Blynk.virtualWrite(52,temp_10p);
Blynk.virtualWrite(53,temp_OLM);

lcd.setCursor(0, 0);
lcd.print("K:"); lcd.print(temp_10p); lcd.print("B:"); lcd.print(temp_bufor);
lcd.setCursor(0, 1);
lcd.print("Z:"); lcd.print(temp_zbiornik);lcd.print("W:"); lcd.print(temp_OLM);

Wire.begin(D1,D2);
lcd.begin(16,2);

lcd.setCursor(0, 0);
lcd.print("K:"); lcd.print(temp_10p); lcd.print("B:"); lcd.print(temp_bufor);
lcd.setCursor(0, 1);
lcd.print("Z:"); lcd.print(temp_zbiornik);lcd.print("W:"); lcd.print(temp_OLM);

// Debug console
Serial.begin(9600);
Blynk.run();
timer.run();
}

#arduino #mikrokontrolery #elektronika #nodemcu #esp8266
  • 3