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).

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.


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()
{

}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.