EEPROM veri kaydetme ve okuma hakkında?

Arduinonun EEPROMuna kodda gömülü veri değil dışardan değiştirilebilir (özellikle gsm yoluyla) bir veri kaydetmek ve okumak istiyorum.Bunu gsm kullandığım için AT komutları ile yapmam gerektiğinin farkındayım fakat nerde hata yaptığımı bir türlü anlayamıyorum.Hata büyük ihtimalle AT komutlarında o konuya pek hakim değilim hakim olan birisi varsa ve yardımcı olursa sevinirim ilginiz için şimdiden teşekkür ederim.

 

Yazdığım kodun ilgili kısmı :

 

 

kayitAdresi = 10;
 kaydedilecekVeri = GsmSerial.println("AT + CMGR =");
  EEPROM.write(kayitAdresi, kaydedilecekVeri);
 delay(10);
 okunacakAdres = 10;
 okunanVeri = EEPROM.read(okunacakAdres );
 delay(10);
  
 
  
  
  GsmSerial.println( "AT" ); // Modül ile iletişime geç
  delay(200);
  GsmSerial.println("AT+CMGS=\" Serial.println(okunanVeri)\""); 
  delay(20);
  GsmSerial.println(smsText); 
  delay(20);
  GsmSerial.write(0x1A); 
  delay(200);

    0

    TURGUT

    02 Ağustos 2018

    Sadece AT komutları hakkında: Ekteki kodunuzda gördüğüm kadar bazı yanlışlar var: GsmSerial.println("AT + CMGR ="); Burada AT komutun arkasındaki + etrafında boşluk bırakmışsınız. Bu doğru değil. AT komutlarını boşluksuz yazın: ("AT+CMGR=") Kullandığınız +CMGS komutunun uygulaması yanlış. Bu komutun sözdizimi: AT+CMGS="+90cepnumarası"<CR>yollayacağınız mesaj<Ctrl+z> <CR> = 0x0D <Ctrl+z> = 0x1A Yukarıdakilere göre kodda kullandığınız  GsmSerial.println("AT+CMGS=\" Serial.println(okunanVeri)\"");   doğru değil. Bir de Serial.println komutunu başka bir Serial.println komutunun içine koymuşsunuz. Bu da doğru değil. Devamlı println kullanıyorsunuz ve bundan dolayı her satır arkasına bir CRLF ekleniyor. Bu kurmak istediğiniz komut düzenini bozabilir. println yerine print kullanın ki bütün dizgileriniz istediğiniz gibi aralıksız peşpeşe olsun.  Gereken kontrol karakterlerini de gösterilen hex kodlarla dizginize ekleyin. Yazdığınız kod yalnız SIM karta komutları yolluyor, fakat geri gelen cevaplara bakmıyor. Bu iki yönlü iletişim bakımından doğru değil. EEPROM yazıp okuma hakkında: yazmak istediğiniz veri tipine göre uygun olan yazma komutunu kullanmanız gerekir.  WRITE / READ tek bayt yazar ve okur. PUT / GET değişik veri tipleri yazıp okuyabilir. https://www.teachmemicro.com/arduino-gsm800l-tutorial/ linkindeki örnek projenizi kütüphane kullanarak daha kolay yapmanızı sağlayabilir. İyi çalışmalar.    

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.