การรับรายชื่อ / จัดเก็บรายชื่อไปยังซิมการ์ด


11

ฉันมีระบบป้องกัน GSMและมีวิธีใดในการรับรายชื่อที่เก็บไว้ในซิมการ์ด ดูเหมือนว่าห้องสมุด GSMไม่สนับสนุนการเขียนข้อมูลลงใน / อ่านข้อมูลจากซิมการ์ด?

เป้าหมายของฉันคือเก็บหมายเลขโทรศัพท์ของซิมการ์ดและตัวแปรบางอย่างลงในซิมการ์ดเช่นฉันไม่จำเป็นต้องเปลี่ยนโปรแกรมเป็นครั้งคราว

สิ่งที่ฉันต้องทำคือป้อนตัวแปรทั้งหมดในซิมการ์ดผ่านโทรศัพท์มือถือ (อาจเก็บตัวแปรไว้ในที่อยู่ติดต่อเพราะฟังก์ชั่นสมุดโทรศัพท์ควรเป็นเรื่องธรรมดามากในโทรศัพท์)

คำตอบ:


6

คุณวิจัยอะไรจนถึงตอนนี้? ตามลิงก์ที่คุณให้ไว้กับตัวป้องกันเกี่ยวกับบรรทัดที่สามของคำอธิบายเป็นการอ้างอิงถึงชุดคำสั่ง AT ที่ใช้โดยชิป

ฉันเพิ่งค้นหาผ่านไปสองสามครั้งแล้วพบว่า:

2.2.4 ATD><n> กำเนิดการโทรไปยังหมายเลขในหน่วยความจำ

3.2.26 AT+CPBF ค้นหารายการสมุดโทรศัพท์

3.2.27 AT+CPBR อ่านรายการสมุดโทรศัพท์ปัจจุบัน

3.2.28 AT+CPBS เลือกหน่วยความจำในสมุดโทรศัพท์

อาจเป็นจุดเริ่มต้นที่ดี


1

ขอบคุณ @Madivad สำหรับแรงบันดาลใจคำสั่ง AT ฉันไม่คุ้นเคยกับ 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.