Nodemcu Ota ile dosya attığımda çalışmaz oluyor?

Burakco

Üye
Katılım
3 Eki 2024
Mesajlar
5
Puanları
1
Yaş
39
Merhaba;

Nodemcu güncellemelerimi usb üstünden yaparsam hiç sorun yaşamıyorum. ama ota ile update yaptığımda programda Uploading..... şeklinde yazıyor. baya bir nokta nokta devam ediyor. Sonra upload işlemi bitmiş gibi öylece bekliyor. Cihaz ise açılmıyor mavi led sürekli yanık olarak kalıyor. Usb üzerinden tekrar yüklemek zorunda kalıyorum.

kodumun için de delay() vardı tamamını kaldırdım. onun yerine blynk.timer() kullandım.

sorun nerede olabilir?

Kod:
#define BLYNK_TEMPLATE_ID "XXX"
#define BLYNK_TEMPLATE_NAME "XXXXXXXXXXXXXXXXXXXXXXXX"
#define BLYNK_FIRMWARE_VERSION "3.0"
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DallasTemperature.h>
#include <OneWire.h>
#include <WiFiManager.h>
#include <ArduinoOTA.h>

WidgetTerminal terminal(V7);

bool baglan; //wifimanager oto bağlantı durumu takibi için
char blynk_token[] = "XXXXXXXXXXXXXXXXXXXXXX";

int pin1 = 5; // V1 LED
int pin2 = 4; // V2 FAN
              // V3 ISI ÖLÇER
int pin4 = 14; // V4 POMPA
float sicaklik = 25; // V5 default fan çalışma sıcaklığı
int pin5 = 13; // Yedek V6 - D7-13 pin -Relay 4
              // V7 TERMİNAL

#define DS18B20 12    // V3 ISI
OneWire ourWire(DS18B20);
DallasTemperature sensor(&ourWire);
BlynkTimer timer;
WiFiManager wm;

BLYNK_WRITE(V1)
{
    int value = param.asInt();
    if(value == 1)
      digitalWrite(pin1, HIGH);
    else
      digitalWrite(pin1, LOW);
}

BLYNK_WRITE(V2)
{
    int value = param.asInt();
    if(value == 1)
      digitalWrite(pin2, HIGH);
    else
      digitalWrite(pin2, LOW);
}

BLYNK_WRITE(V4)
{
    int value = param.asInt();
    if(value == 1)
      digitalWrite(pin4, HIGH);
    else
      digitalWrite(pin4, LOW);
}

BLYNK_WRITE(V5)
{
    sicaklik = param.asInt();
    Blynk.virtualWrite(V5, sicaklik);   
}

BLYNK_WRITE(V7)
{
  if (String("wifireset") == param.asStr()) {
    terminal.clear();
    terminal.println("Komut: 'wifireset' Kayıtlı wifi bilgisi silindi.");
    terminal.println("IP: 192.168.4.1");
    terminal.println("AquaControlV2");
    terminal.println("12345678");
    wm.resetSettings();
    ESP.restart();
  }
  else if (String("espreset") == param.asStr()) {
    terminal.clear();
    terminal.println("Komut: 'espreset' Nodemcu yeniden başlayacak.") ;
    ESP.restart();
  } else {
    terminal.clear();
    terminal.print("Komut: ");
    terminal.write(param.getBuffer(), param.getLength());
    terminal.println(" - Geçersiz komut girdiniz.");
    terminal.println(F("wifireset - Wifi ağ bilgilerini siler."));
    terminal.println(F("espreset - cihazı baştan başlatır."));
  }
  terminal.flush();
}

BLYNK_CONNECTED()
{
  Blynk.syncVirtual(V1);
  Blynk.syncVirtual(V2);
  Blynk.syncVirtual(V4);
  Blynk.syncVirtual(V5);
}

void sendSensor()
{
  sensor.requestTemperatures();
  float tempC=sensor.getTempCByIndex(0); 
  Blynk.virtualWrite(V3, tempC);
  if (tempC>=sicaklik){
    digitalWrite(pin2, LOW);
    Blynk.virtualWrite(V2, LOW);}
  else { digitalWrite(pin2, HIGH);
    Blynk.virtualWrite(V2, HIGH);}
    digitalWrite(BUILTIN_LED, LOW);
    timer.setTimeout(1000L , []()
    { 
      digitalWrite(BUILTIN_LED, HIGH);
    });
    Serial.print("Sıcaklık : "); Serial.println(tempC);
}
 
void setup() {
  Serial.begin(115200);
  pinMode(BUILTIN_LED, OUTPUT);
  pinMode(pin1, OUTPUT);
  pinMode(pin2, OUTPUT);
  pinMode(pin4, OUTPUT);
 
  WiFi.mode(WIFI_STA); // Özellikle modu station'a ayarlıyoruz.
  baglan = wm.autoConnect("AquaControlV2", "12345678"); // Wifimanager bağlanma satırı. Ağ adı olarak görünmesini istediğimiz
  if (!baglan) {
    Serial.println("Bağlantı Sağlanamadı");
    timer.setTimeout(60000L , []()
    { 
      ESP.restart();
    });
  }
  else {
    Serial.println("Ağ Bağlantısı Kuruldu");
    Blynk.config(blynk_token);
    bool result = Blynk.connect();
    if (result != true)
    {
      Serial.println("BLYNK'e bağlanamadı");
      digitalWrite(BUILTIN_LED, LOW);
      timer.setTimeout(60000L , []()
      { 
        ESP.restart();
      });
    }
    else
    {
      Serial.println("BLYNK'e bağlandı");
    }
  }
  terminal.clear();
  terminal.print(WiFi.localIP());
  terminal.println(F(" - Sistem Aktif"));
  terminal.println(F("-------------"));
  terminal.println(F("wifireset - Wifi ağ bilgilerini siler."));
  terminal.println(F("espreset - cihazı baştan başlatır."));
  terminal.flush();

  ArduinoOTA.setPassword("12345678");
  ArduinoOTA.onStart([]() {
    String type;
    if (ArduinoOTA.getCommand() == U_FLASH) {
      type = "sketch";
    } else {  // U_FS
      type = "filesystem";
    }
    Serial.println("Start updating " + type);
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) {
      Serial.println("Auth Failed");
    } else if (error == OTA_BEGIN_ERROR) {
      Serial.println("Begin Failed");
    } else if (error == OTA_CONNECT_ERROR) {
      Serial.println("Connect Failed");
    } else if (error == OTA_RECEIVE_ERROR) {
      Serial.println("Receive Failed");
    } else if (error == OTA_END_ERROR) {
      Serial.println("End Failed");
    }
  });
  ArduinoOTA.begin();

  sensor.begin();
  timer.setInterval(5000L, sendSensor);
}

void loop() {
  Blynk.run();
  timer.run();
  ArduinoOTA.handle();
}
 

Forum istatistikleri

Konular
129,498
Mesajlar
927,393
Kullanıcılar
452,072
Son üye
Matwel

Yeni konular

Geri
Üst