arduino ile esp8266 arasında serial port okuma sorunu

Başlatan istek61, 07 Ağustos 2020, 21:44:45

mufitsozen

Alıntı yapılan: istek61 - 10 Ağustos 2020, 04:18:29üstatlara son bir sorum daha var.

115200 baud la Esp den arduino ya şu veriyi yolluyorum. string olarak 90 karakter sanırım.

#01#03:15#02#03:15#03#03:15#04#03:15#05#03:15#06#03:15#07#03:15#08#03:15#09#10/08/2020#10#


fakat arduino seriale gelen bilgi

#01#03:15#02#03:15#03#03:15#06#03:15#05#03:15#06#03:15#07#03:15#01

normalde arduino saniyede 11520 karakter okumuyor mu? neden eksik karakter geliyor ?


dinleme kodum ;

void loop() {
while(esp8266.available() > 0){ 
char veri = esp8266.read();
Serial.write(veri);
delay(1);
}


Google'dan ARA!


Increasing the length of Serial Buffer in Arduino
Go to "arduino\hardware\arduino\avr\cores\arduino"
Edit "HardwareSerial.cpp" in Notepad.
Search for "#define SERIAL_BUFFER_SIZE 64"
Change it to "#define SERIAL_BUFFER_SIZE 256"
Save
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

mustafacan

#16
Çözüm şu
Sorunu bende yaşadım
Hızı ,9600 e çek ve 2 okuma arası 1 saniye boşluk ver
Şuan dediğin sistemin benzerini 6 aydır çalıştırıyorum. Tık yok
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!

istek61

Alıntı yapılan: mufitsozen - 10 Ağustos 2020, 13:01:17Google'dan ARA!


Increasing the length of Serial Buffer in Arduino
Go to "arduino\hardware\arduino\avr\cores\arduino"
Edit "HardwareSerial.cpp" in Notepad.
Search for "#define SERIAL_BUFFER_SIZE 64"
Change it to "#define SERIAL_BUFFER_SIZE 256"
Save

sanırım yeni sürüm ide lerde bu dediginiz yok. aşagıda ki tanımlama yapılmış.
SERIAL_TX_BUFFER_SIZE>256
zaten  256 olarak ayarlı.
google da 10 gündür araştırma yapıyorum 500 site gezmişimdir. :) google öyle herşeyi çözemiyor. bu işte deneyim önemli.
birtek 9600 baud u denemedim.
esp 115200 ye ayarlı oldugu için sorun çıkarırmı onu deneyecektim. eger çıkarırsa 9600 e config ediliyor ama boot un yanma ihtimali var... bakalım deniyoruz:) yardımların için tşkler
Meraklı Acemi

istek61

neyse buraya kadarmış, sanırım esp yandı :)

9600 baud u denedikten bir süre sonra "Connection refused" hatası almaya başladım. wifi'ye de bağlanıyor fakat ne yaptıysam web sayfasından veriyi çekemiyor.
yeni esp alana kadar projeye ara veriyorum.
emegi gecen herkese teşekkür ederim.

konuyu özetlersek de;

standartlara göre
* Espden 64 byte 'ın üstünde bir veri softwareserial port üzerinden arduinoya gönderilirse. buffer fazlasını atıyor ve veri eksik gözüküyor. çözüm olarak softwareserial.cpp nin içindeki 64 değerini 128 yada 256 ya çıkarabiliriz.
ben yine de gönderilecek veriyi 32 byte lık parçalara bölerek göndermeyi daha mantıklı buluyorum. yeni esp gelirse kodu yazdıktan sonra test edip buraya atarım.

* espden gelen veride arada karakter sapması sorununa bir çözüm bulamadık. muhtemel sebebi kablolardan gelen verinin parazitlenmesi olabilir. 1117 regülatörünün yetersiz gelmesi olabilir. breadboard üzerinden test ettigim için bu konuda bir bilgi veremeyecegim. çin menşeili çakma esp de almış olabilirim...

Meraklı Acemi