ESP8266 arızası

cyberman

Yeni Üye
Katılım
20 Eylül 2023
Mesajlar
9
Merhaba arkadaşlar,
Kartımın modeli Nodemcu Amica, CP2102 chipsetli. Arduino IDE ile yazılımlarımı yükleyip kullanıyordum. Şimdi kodlarımı çalıştırmıyor. Serial monitor'de de tuhaf karakterler görünüyor. AT ya da Lua komutları da çalışmıyor. Bu durumu düzeltmek için pek çok firmware yükleyip denedim. Sadece nodemcu_float_0.9.6-dev_20150704.bin adlı firmwarele lua kodu çalıştırmayı başarabildim. Anladığım kadarıyla donanım olarak bir sorunu yok. Ama içinde yüklü gelen yazılımı zarar gördüğünü düşünüyorum. Fabrika çıkışında içinde hangi firmware yüklü geliyor onu bulup yüklemek istiyorum ama doğrusunu bir türlü bulamadım. Bana yardımcı olursanız çok makbule geçer. Şimdiden teşekkür ederim.
serial monitordeki görüntü.
1695235525935.png
 
Merhaba arkadaşlar,
Kartımın modeli Nodemcu Amica, CP2102 chipsetli. Arduino IDE ile yazılımlarımı yükleyip kullanıyordum. Şimdi kodlarımı çalıştırmıyor. Serial monitor'de de tuhaf karakterler görünüyor. AT ya da Lua komutları da çalışmıyor. Bu durumu düzeltmek için pek çok firmware yükleyip denedim. Sadece nodemcu_float_0.9.6-dev_20150704.bin adlı firmwarele lua kodu çalıştırmayı başarabildim. Anladığım kadarıyla donanım olarak bir sorunu yok. Ama içinde yüklü gelen yazılımı zarar gördüğünü düşünüyorum. Fabrika çıkışında içinde hangi firmware yüklü geliyor onu bulup yüklemek istiyorum ama doğrusunu bir türlü bulamadım. Bana yardımcı olursanız çok makbule geçer. Şimdiden teşekkür ederim.
serial monitordeki görüntü.
25575 eklentisine bak
baud değeri doğru mu?
sık kullanılan 9600-115200-56 bin küsür olan vardı.

Programının tamamını paylaşırsan kesin bişey diyebiliriz
 
9600 baud rate 8 bit işlemcilerde sık kullanılan bir değerdi 8266 32 bit bir çekirdek içeriyor diye hatırlıyorum 32 bitler genelde 115200 baud rate kullanıyor öncelikle seri monitörün sağ altındaki kututucuktan 115200 deneyin olmaz ise sırayla hepsini deneyin muhtemelen düzelecektir
 
İlginiz için çok teşekkür ederim. Yurt dışındaki forumlara üyelik bile kapatılmışken burada ilgili ve yardım sever arkadaşlar görmek ne güzel.
Firmware yüklerken genelde 9600 baud kullandım. Arkasındaki yazıda tavsiye edilen hız da 9600. Ama Arduino IDE'den yazılım yüklerken 115200 kullandığımda sıkıntı yaşamadım. Dediğinizi denedim serial monitordeki baud ratei değiştirdim. 9600 - 115200 arasındaki tüm hızları denedim. Karakterler değişiyor ama sonuç aynı.
 
Kodum böyle. Daha önce sorunsuz çalışıyordu. Bir süre uğraşmadım. Sonra tekrar adaptörle fişe takıp denediğimde çalışmaz oldu. Tabi sadece kodum değil nodemcu tamamen çalışmaz oldu. Sadece yukarıda adını verdiğim firmwarei yükledikten sonra Lua koduyla üzerindeki ledi kontrol edebildim. Kart bozuk olsa onu da yapamam diye düşünerek buraya yazdım.

C++:
#define BLYNK_TEMPLATE_ID "TMPL6bG8Kgfem"

#define BLYNK_TEMPLATE_NAME "otoSulama"

#define BLYNK_AUTH_TOKEN "RFe93oKZ2bA0kvBqZLpXTSDueTHe5ep2"



#include <ESP8266WiFi.h>

#include <ESP8266WebServer.h>

#include <ArduinoJson.h>

#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager

#include <BlynkSimpleEsp8266.h>

#include <Wire.h>  // Only needed for Arduino 1.6.5 and earlier

#include "SSD1306Wire.h" // legacy include: `#include "SSD1306.h"`



SSD1306Wire  display(0x3c, D3, D5);

char* ssid     = "otoSulama";

char* password = "12345678";

char* blynkServer = "blynk-cloud.com";

char* blynkToken = "RFe93oKZ2bA0kvBqZLpXTSDueTHe5ep2";

int resetButton = 5;

int buttonState = 0;

unsigned long buttonCheckOld = 0;

unsigned long displayRefreshOld = 0;

unsigned long connCheckOld = 0;

const long buttonCheckFreq = 1000;

const long displayRefreshFreq = 10000;

//One hour in miliseconds

const long connCheckFreq = 3600000;



//WiFiManager, Local intialization. Once its business is done, there is no need to keep it around

WiFiManager wm;



String IpAddress2String(const IPAddress& ipAddress)

{

  return String(ipAddress[0]) + String(".") +\

  String(ipAddress[1]) + String(".") +\

  String(ipAddress[2]) + String(".") +\

  String(ipAddress[3]);

}



bool wifiConnect(){

  bool res;

  res = wm.autoConnect("otoSulama","12345678"); // password protected ap

  if(!res) {

      Serial.println("Failed to connect");

  }

  else {

      Serial.println("connected");

  }

  return res;

}



char* strToChr(String str){

  char chr[str.length()+1];

  str.toCharArray(chr, str.length()+1);

  return chr;

}



void setup() {

  pinMode(resetButton, INPUT);

  //pinMode(LED_BUILTIN, OUTPUT);

 

  display.connect();

  display.init();

  display.flipScreenVertically();

  display.setFont(ArialMT_Plain_16);

 

  Serial.begin(115200);

  WiFiManagerParameter blynk_token("blynktoken", "Blynk token", blynkToken, 30);

  wm.addParameter(&blynk_token);

  bool res = wifiConnect();

 

  char* _SSID = strToChr(WiFi.SSID());

  char* _PASS = strToChr(WiFi.psk());

  Blynk.begin(BLYNK_AUTH_TOKEN, _SSID, _PASS);

}



void loop() {

  Blynk.run();

  unsigned long connCheckNew = millis();

  if(connCheckNew - connCheckOld >= connCheckFreq){

    connCheckNew = connCheckOld;

    if(WiFi.status() != WL_CONNECTED){

      bool res = wifiConnect();

    }

  }

 

  unsigned long buttonCheckNew = millis();

  if(buttonCheckNew - buttonCheckOld >= buttonCheckFreq){

    buttonCheckOld = buttonCheckNew;

    buttonState = digitalRead(resetButton);

    if (buttonState == 1)

    {

      Serial.println("Rebooting!");

      display.clear();

      wm.resetSettings();

      ESP.eraseConfig();

      ESP.restart();

    } 

  }

 

  unsigned long displayRfresNew = millis();

  if(displayRfresNew - displayRefreshOld >= displayRefreshFreq){

    displayRefreshOld = displayRfresNew;

    display.clear();

    display.setTextAlignment(TEXT_ALIGN_LEFT);

    display.drawString(10, 10, (WiFi.status() == WL_CONNECTED) ? "connected" : "disconnected");

    display.drawString(10, 25, IpAddress2String(WiFi.localIP()));

    display.display();

  }
}
 
Son düzenleme:
Program kodunu böyle eklersen anlaşılması çok zor oluyor. Onun yerine editör'deki "kod" butonunu kullanarak ekle. Dili de C++ olarak seç

1695291498907.png
 
115200 baud ile çalışması lazım programda 115200 set edilmiş
 
Kullandığınız serial monitör de çok eski gözüküyor belki o zamandan bu zamana bazı standartlar değişmiştir mesela eclipse tabanlı bir seri monitorde daha detaylı ayarlar gormuştüm bu serial monitör ile daha önce basarılı islem yapabildiniz mi bir de arduino idenin serial monitörünü deneyin isterseniz
 
Bu ekran görüntüsü Arduino IDE'ninki zaten. ESPlorer'ın son sürümüyle de komut göndermeyi denedim. Sadece Lua firmwarei ile başarabildim. O rimwarele de yazdığım C++ kodunu çalıştıramıyorum. Eski firmwareini bilsem de deneyebilsem keşke. Ya da aynı kütüphaneleri Lua'da da bulabilir miyim kodu çevirsem. Ne dersiniz?
 
Bir de başka bir soru daha sormak istiyorum. Arduino IDE'deki kodu Nodemcu'ya yüklediğim zaman üzerindeki firmwarei de değiştiriyor mu? Yoksa firmware duruyor da kodu başka bir adrese mi yazıyor?
 
1- Serial Monitor uygulamasını 9600 baud olarak ayarlayın
2- Kart bilgisayara bağlıyken kartın Boot/Program yazan düğmesine basıp basılı tutun.
3- Boot/Program düğmesini bırakmadan Reset düğmesine basıp bırakın
3- Serial Monitor uygulamasında birşey yazıyorsa buraya ne yazdığını yazın.
4- Serial Monitor uygulamasını kapatın. Boot/Program düğmesini basılı tutmaya devam ederek program atmayı deneyin. 5- Başarılı şekilde atabiliyor mu?

Not: Arduino IDE'nin 1.8.x (en son hangisi ise) sürümünü kullanın. 2 ile başlayan sürümlerde stabilite problemi daha sık yaşanıyor
 
Dediğiniz tuş kominasyonunu dediğiniz şekilde yaptım. Sonuç değişmedi, saçma karakterler görünüyor. Arduino IDE'nin sürümü 1.8.19.
 
Arkadaşlar herkese teşekkür ederim. Nodemcu ve yazılımım çalıştı. Nasıl olduğunu bilemiyorum ama Arduino IDE'deki kart ayarlarında NodeMCU 0.9 (ESP-12 Module) yerine NodeMCU 0.9 (ESP-12E Module) seçmişim. Anladım ki bir cevap önce yazdığım sorunu cevabı burada yatıyor. Yani Arduino IDE sadece yazdığımız kodu yüklemiyor aynı zamanda seçilen donanıma uygun kendi firmwareini de yüklüyor. Şimdi kartlar kısmında NodeMCU 0.9 (ESP-12 Module) seçmemle doğru olarak çalıştı. Ancak daha önce neden çalışmadığını anlamak için bilgisayara bağlayıp serial monitor'de saçma karakterleri neden görüdüğümü gerçekten anlamadım. İşte bu sorun tam olarak baud rate olabilir. Ama o ayarla oynadığımı da hatırlamıyorum. Neyse sözün özü tecrübe satın alınamayan tek olgu. Vakit ayırıp okuduğunuz, cevap yazdığınız için hepinize çok teşekkür ederim.
 
Çalıştığına sevindim. NodeMCU 0.9(ESP-12) ve NodeMCU 1.0 (ESP-12E) demek istediniz sanırım.

Aslında iki modül (ESP-12, ESP-12E) arasında belirgin bir fark yok. İki türlü de yükleyebilmesi lazım.
Karta göre ayrı firmware yüklemek gibi bir durum da yok. Aynı grup altındaki kartlar için kseçtiğiniz karta göre bazı compiler tanımları değişebiliyor. Günün sonunda yüklenen o değerlerle derlenmiş C kodu.

Kart tanımlarında bir de o kart üzerinde led varsa hangi GPIO pinine bağlı, kaç megabit flash var, nasıl bölümlendirsin, CPU hızı ne olsun gibi bir çok seçim var. Bunların başlıcalarını zaten Araçlar menüsünde görebilir ve değiştirebilirsiniz.

Ancak, bazı klon kartlarda Flash Mode (QIO, DIO) uyumsuzluğu olabiliyor.

Büyük ihtimalle problem bundan kaynaklıdır.

Mesela özel bir kart seçmeden Generic ESP8266 Module seçeneği, ile de derleyip yükleseniz büyük ihtimalle çalışacaktır. Ancak kodunuzda kullandığınız LED_BUILTIN gibi değişkenler/makrolar varsa derlenmeyebilir veya yanlış pine bağlanabilir. Yoksa çok birşey farketmez.

Test etmek için Generic ESP8266 Module seçeneğini seçip aşağıdaki gibi ayarlayın ve yükleme yapmayı deneyin:

1695479297997.png



Sonra "Flash Mode" seçeneğini DOUT, DIO, QIO arasında değiştirerek deneyin.
 
Bende neden o kadar seçenek yok? Sizde ek paket mi yüklü? ESP-12 kartlarından birini seçtiğim zaman flash mode default olarak belirlenmiş oluyor. O ayar kalkıyor menüden. Ama dediğiniz doğru ayarları bu şekilde yaptığımda bu da çalışır diye düşünüyorum. Benim asıl anlamadığım hiç ayarlarla oynamadan sadece aradan bir süre geçtikten sonra tekrar pcye bağladığımda hata almış olmam. Daha doğrusu baud uyuşmazlığına işaret eden karakterler görmem.
1695559224368.png
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,847
Mesajlar
99,734
Üyeler
2,482
Son üye
ilker29

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top