NodeMCU ESP8266 - Seri Port Ekranında -1 Hatası Veriyor! Okuma Yapıyor Ama Hayali

Kurdoglu

Yeni Üye
Katılım
8 Nisan 2024
Mesajlar
6
Merhaba Değerli Ekip,
Sistemin kodları ile ilgili herhangi bir yükleme hatası bulunmamaktadır fakat Seri Port Ekranında RFID kart okutunca -1 hatası ile karşılaşıyorum.Normalde çalıştığı zaman 200 yazması gerekiyor
Yardımcı Olabilecek varmı ?
Medw.jpg
 
Son düzenleme:
@Kurdoglu foruma hoşgeldin.

Bu şekilde kodları paylaşmadan sorarsan cevap verme ihtimalini sıfıra yaklaştırırsın. Hatayı görebiliyoruz ama hayata sebep olan kodu göremiyoruz.

Ekran görüntüsü yerine kod olarak eklersen daha okunabilir ve yorum yapılabilir olur.

1709072772318.png
 
RFID:
/*
  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
  # RFID MFRC522 / RC522 Library :                                      #
  #                                                                     #
  #                 Installation :                                      #
  # NodeMCU ESP8266/ESP12E    RFID MFRC522 / RC522                      #
  #         D2       <---------->   SDA/SS                              #
  #         D5       <---------->   SCK                                 #
  #         D7       <---------->   MOSI                                #
  #         D6       <---------->   MISO                                #
  #         GND      <---------->   GND                                 #
  #         D1       <---------->   RST                                 #
  #         3V/3V3   <---------->   3.3V                                #
  # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
*/


//----------------------------------------NodeMCU ESP8266 Kütüphanesini Dahil Et---------------------------------------------------------------------------------------------------------------//

#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//

//----------------------------------------SPI ve MFRC522 kütüphanelerini Dahil Et-------------------------------------------------------------------------------------------------------------//

#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//

#define SS_PIN D2  //--> SDA / SS, D2 pinine bağlı
#define RST_PIN D1  //--> RST, D1 pinine bağlı
MFRC522 mfrc522(SS_PIN, RST_PIN);  //--> MFRC522 oluştur

#define ON_Board_LED 2  //--> On Board LED tanımlandı, bir wifi yönlendiricisine bağlanma işlemi sırasında göstergeler için kullanılır

//----------------------------------------WiFi yönlendiricinizin SSID ve Parolası-------------------------------------------------------------------------------------------------------------//
const char* ssid = "Destannet_M";
const char* password = "0336030";
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//

ESP8266WebServer server(80);  //--> Port 80 üzerinde sunucu

int readsuccess;
byte readcard[4];
char str[32] = "";
String StrUID;

//-----------------------------------------------------------------------------------------------SETUP--------------------------------------------------------------------------------------//
void setup()
{
    Serial.begin(9600); //--> PC ile seri iletişimi başlat
    SPI.begin();      //--> SPI veri yolunu başlat
    mfrc522.PCD_Init(); //--> MFRC522 kartını başlat
    delay(500);  // 500 ms bekle
    Wire.begin(2,0);
    WiFi.begin(ssid, password); //--> WiFi yönlendiricinize bağlanma
    Serial.println("");

    pinMode(ON_Board_LED, OUTPUT);   // On Board Led OUTPUT tanımlama
    digitalWrite(ON_Board_LED, HIGH); //--> On Board Led'i kapat

    //----------------------------------------Bağlantıyı bekle
    Serial.print("Connecting");
    while (WiFi.status() != WL_CONNECTED) {
      Serial.print(".");
      //----------------------------------------Wifi yönlendiricisine bağlanma işlemi sırasında On Board Flaşör LED'i yapın..
      digitalWrite(ON_Board_LED, LOW);
      delay(250);
      digitalWrite(ON_Board_LED, HIGH);
      delay(250);
    }
    digitalWrite(ON_Board_LED, HIGH); //--> Wifi yönlendiricisine bağlanıldığında On Board LED'i kapatın.
    //----------------------------------------Bağlandığınız wifi yönlendiricisine başarılı bir şekilde bağlanırsanız, ziyaret edilecek IP Adresi seri monitörde görüntülenir.
    Serial.println("");
    Serial.print("Successfully connected to : ");
    Serial.println(ssid);
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());

    Serial.println("Please tag a card or keychain to see the UID !");
    Serial.println("");
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
//-----------------------------------------------------------------------------------------------LOOP---------------------------------------------------------------------------------------//
void loop()
{
  readsuccess = getid(); // id okuma işlemi başarılı ise 1 döner
   WiFiClient client;

  if (readsuccess) {
    digitalWrite(ON_Board_LED, LOW);  // ON_Board_LED LOW yapma
    HTTPClient http;     //HTTPClient sınıfından nesne bildirimi

    String UIDresultSend, postData; // 1 adet string tanımlama
    UIDresultSend = StrUID;
    
    //Post Data
    postData = "UIDresult=" + UIDresultSend;

    http.begin(client, "http://192.168.16.110/NodeMCU-and-RFID-RC522-IoT-Projects/getUID.php");  //İstek hedefini
    http.addHeader("Content-Type", "application/x-www-form-urlencoded"); //İçerik türü başlığı

    int httpCode = http.POST(postData);   //İsteği gönder
    String payload = http.getString();    //Yanıt yükünü al
   Serial.println(UIDresultSend);
   Serial.println(httpCode);   //Print HTTP return code
   Serial.println(payload);    //Print request response payload

    http.end();   //Bağlantıyı kapat
    delay(1000);  // 1 sn bekleme
    digitalWrite(ON_Board_LED, HIGH);  // ON_Board_LED HIGH yapma

  }
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//

//----------------------------------------Bir kart veya anahtarlık okuma ve bir UID elde etme işlemi için prosedür---------------------------------------------------------------------------------//
int getid() {
  if (!mfrc522.PICC_IsNewCardPresent()) {
    return 0;
  }
  if (!mfrc522.PICC_ReadCardSerial()) {
    return 0;
  }

  for (int i = 0; i < 4; i++) {
    readcard[i] = mfrc522.uid.uidByte[i]; //etiketin UID'sini readcard'a depola
    array_to_string(readcard, 4, str);
    StrUID = str;
  }
  Serial.println(StrUID); // arduıno ya UART uzerinden data gönderme her ıd okuduğunda gönderir
  mfrc522.PICC_HaltA();
  return 1;
}
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//

//----------------------------------------Diziden string UID okuma sonucunu değiştirme işlemi için prosedür------------------------------------------------------------------------------//
void array_to_string(byte array[], unsigned int len, char buffer[]) {
  for (unsigned int i = 0; i < len; i++)
  {
    byte nib1 = (array[i] >> 4) & 0x0F;
    byte nib2 = (array[i] >> 0) & 0x0F;
    buffer[i * 2 + 0] = nib1  < 0xA ? '0' + nib1  : 'A' + nib1  - 0xA;
    buffer[i * 2 + 1] = nib2  < 0xA ? '0' + nib2  : 'A' + nib2  - 0xA;
  }
  buffer[len * 2] = '\0';
}

Kusura bakmayın hocam. Kod bu şekilde hocam
 
-1 responsu http ile alakalı sanıyorum ve servere bağlantı sağlayamamasıyla ilgili serverin ayakta olduğundan ve port yönlendirmesi yapıldığından ilgili portların açık ve firewall üzerinden engellenmediğini kontrol edin. Ayrıca serial ekranda espnin ip aldığı gözüküyor fakat aldıktan sonra routerdan düşüp düşmediğine bakın veya trafik engeli olabilir bunlarıda kontrol edin. Serveri çalıştırdığınız cihazın ip adresinin doğru olup olmadığını kontrol edin.


Bu arada bu kod çok kötü yazılmış. Karman çorman biraz düzenleyin.
 
Furkan Bey şimdi şöyle birşey yaşadım. Masaüstü bilgisayara kurdum sistemi ve çalıştı lakin notebook üzerinden denediğimde çalışmıyor. Bununla ilgili biraz araştırma yapmam gerekecek sanırım.
 
Notebook cihazınızın ip adresine bakın bakalım doğrumu ve yapabiliyorsanız statik ip verin notebook cihazınıza ki yarın bir gün denediğinizde yine çalışmamazlık yapmasın. Birde notebook üzerinde firewalldan belki 80. Port vs engellidir bunlarıda açmak lazım.
 
Furkan Bey Notebook üzerinden 80.port kapalı olsa internete erişimimde sıkıntılı olmazmıydı ? Yoksa ikisi ayrı şeyler mi ?
Statik olanı denedim yine problem yaşadım. Port açma işlemi ile ilgili yardımcı olabilirmisiniz ?
Ayrıca şimdi her iki bilgisayardada çalıştı fakat sök tak yapıp diğer bilgisayarlara geçince yine aynı sorunla karşılaştım. Kablo temassızlığı olmamasına rağmen bu şekilde. Yukarıda yazdığınız kod karmaşası notunuz dikkatimi çekti ! Bu bir sorun teşkil edermi sizce ?

Teşekkürler
 
Son düzenleme:
İnternete çıkarken sen ilgili adresin 80.veya 443. Portuna gidiyorsun burada sıkıntı olmaz ama sana istek gelicekse bu portlara o zaman sıkıntı olur.

Anladığıma göre lokal ağ da test yapıyorsun port yönlendirmeye gerek yok sadece hangi pc lere istek atıcaksa nodemcu o pc nin firewall ayarlarından 80.port engelini kaldırmak gerekir.

Bu arada istek attığın dosya php uzantılı yani pc lerde apache server calışıyor onun ayarlarıyla ilgilide bir problem yaşıyor olabilirsin her iki pc de çalıştı demişsin hedef ip adresi nodemcu da bir tane her iki pc de çalışması için iki pc nin de aynı ip adresine sahip olması lazım ki buda imkansız. Aynu ağ üzerinde aynı ip adresine sahip iki device olamaz.


Bence sen bir şeyleri atlıyorsun gibime geldi istersen özel mesajdan anydesk verirsen girip bir bakarım problemin ne olduğuna.
 
Konu çözüme kavuştu mu?
 
Furkan Bey aslında her bilgisayarın kendine ait IP adresleri ile deneme yapıyorum ama sabah çalışan sistemi bilgisayardan ayırdığımda nedense tekrar devreye girmiyor... Dediğiniz gibi bir yerde birşeyleri atlıyorum ama neyi bilemedim açıkçası.... Şimdi ofisten geliyorum kabloları ne olur ne olmaz diye lehimledim. Soru işaretlerini kaldırmak istedim yani.
Peki sizinle ne zaman anydesk üzerinden iletişim kurabiliriz Furkan Bey ?
Teşekkürler
 

Çevrimiçi personel

Forum istatistikleri

Konular
5,878
Mesajlar
100,183
Üyeler
2,488
Son üye
ilter

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