Mendapatkan kontak / menyimpan kontak ke kartu SIM

11

Saya memiliki perisai GSM dan apakah ada cara untuk mendapatkan kontak yang tersimpan di kartu SIM? Tampaknya perpustakaan GSM tidak mendukung penulisan data ke / membaca data dari kartu SIM?

Tujuan saya adalah untuk menyimpan nomor telepon kartu SIM dan beberapa variabel ke kartu SIM itu sendiri, sehingga saya tidak perlu mengubah program dari waktu ke waktu.

Yang perlu saya lakukan adalah memasukkan semua variabel dalam kartu SIM melalui ponsel apa pun (mungkin dengan menyimpan variabel sebagai kontak, karena fungsi buku telepon harus sangat umum pada ponsel).

MW_hk
sumber

Jawaban:

6

Apa yang telah Anda teliti sejauh ini? Mengikuti tautan yang telah Anda berikan untuk pelindung, tentang baris ketiga dari deskripsi adalah referensi ke AT Command Set yang digunakan oleh chip.

Saya baru saja melakukan beberapa pencarian cepat dan menemukan:

2.2.4 ATD><n> Memulai panggilan telepon ke nomor dalam memori

3.2.26 AT+CPBF Temukan entri buku telepon

3.2.27 AT+CPBR Baca entri buku telepon saat ini

3.2.28 AT+CPBS Pilih penyimpanan memori buku telepon

mungkin tempat yang bagus untuk memulai.

Madivad
sumber
1

Terima kasih kepada @Madivad untuk inspirasi perintah AT. Saya tidak begitu mengenal GSM dan Arduino. Tapi bagaimanapun, di bawah ini bekerja untuk saya.

Kredit ke @Madivad dan orang - orang dari forum Arduino.

#include <GSM.h>
GSM gsmAccess(true);
int sizer = 200;
char myNumber[200];
int timeout = 5000; // in milli seconds

void setup()
{
  Serial.begin(9600);

  boolean notConnected = true;

  Serial.println("Connecting to the GSM network");

  while(notConnected){
    if(gsmAccess.begin() == GSM_READY) // Note: I do not require PIN #
      notConnected = false;
    else {
      Serial.println("Not connected, trying again");
      delay(1000);
    }
  }

  Serial.println("Connected");

  theGSM3ShieldV1ModemCore.println("AT+CPBS=\"SM\"");  
  int start1 = millis();   
  while((millis() - start1) < timeout){
    Serial.print(theGSM3ShieldV1ModemCore.theBuffer().read());
  }   
  Serial.print("Set to look at SIM card storage");

  // search for contact name "test"
  theGSM3ShieldV1ModemCore.println("AT+CPBF=\"test\"");  
  start1 = 0;
  start1 = millis();   
  while((millis() - start1) < timeout && !theGSM3ShieldV1ModemCore.theBuffer().extractSubstring(",\"", "\",", myNumber, sizer)){
    Serial.print(theGSM3ShieldV1ModemCore.theBuffer().read());
  }   
  Serial.print("Got contact number");

 // print out the phone of "test"
 Serial.println(myNumber);

}

void loop()
{

}
MW_hk
sumber