SIM 카드에 연락처 가져 오기 / 연락처 저장


11

나는이 GSM 방패 와 SIM 카드에 저장된 연락처를 얻을 수있는 방법이 있나요? GSM 라이브러리 는 SIM 카드에 데이터를 쓰거나 SIM 카드에서 데이터를 읽는 것을 지원하지 않는 것 같습니다 .

내 목표는 SIM 카드의 전화 번호와 일부 변수를 SIM 카드 자체에 저장하는 것이므로 프로그램을 수시로 변경할 필요가 없습니다.

휴대 전화를 통해 SIM 카드에 모든 변수를 입력하기 만하면됩니다 (전화 번호부 기능은 전화에서 매우 일반적이어야하므로 변수를 연락처로 저장하면됩니다).

답변:


6

지금까지 무엇을 연구 했습니까? 쉴드에 대한 링크 다음에 설명의 세 번째 줄은 칩이 사용 하는 AT 명령 세트에 대한 참조 입니다.

방금 몇 가지 빠른 검색을 수행하고 발견했습니다.

2.2.4 ATD><n> 메모리에서 전화 번호로 발신

3.2.26 AT+CPBF 전화 번호부 항목 찾기

3.2.27 AT+CPBR 현재 전화 번호부 항목 읽기

3.2.28 AT+CPBS 전화 번호부 메모리 저장 장치 선택

시작하기에 좋은 곳일 것입니다.


1

AT 명령에 영감을 준 @Madivad에게 감사드립니다. 나는 GSM과 Arduino에 익숙하지 않습니다. 그러나 어쨌든 아래는 나를 위해 일했습니다.

@Madivad와 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()
{

}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.