Получение контактов/сохранение контактов на SIM-карту
У меня есть GSM Shield, и есть ли способы получить сохраненные контакты на SIM-карте? Кажется, что библиотека GSM не поддерживает запись данных на SIM-карту/чтение данных с SIM-карты?
Моя цель — сохранить номер телефона SIM-карты и некоторые переменные на самой SIM-карте, чтобы мне не нужно было время от времени менять программу.
Все, что мне нужно сделать, это ввести все переменные на SIM-карте с любого мобильного телефона (возможно, сохранив переменные в виде контактов, поскольку функция телефонной книги должна быть очень распространена на телефонах).
@MW_hk, 👍11
2 ответа
Что вы уже исследовали? По ссылке, которую вы дали для щита, примерно в третьей строке описания находится ссылка на Набор команд AT используется чипом.
Я только что сделал пару быстрых поисков и нашел:
2.2.4 ATD><n>
Инициировать телефонный звонок на номер в памяти
3.2.26 AT+CPBF
Поиск записей в телефонной книге
3.2.27 AT+CPBR
Чтение текущих записей телефонной книги
3.2.28 AT+CPBS
Выбрать место в памяти телефонной книги
вероятно, это хорошее место для начала.
Спасибо @Madivad за вдохновение для AT-команд. Я не очень хорошо знаком с GSM и Arduino. Но в любом случае, нижеприведенное сработало для меня.
Спасибо @Madivad и людям с форума arduino.
#include <GSM.h>
GSM gsmAccess(true);
int sizer = 200;
char myNumber[200];
int timeout = 5000; // в миллисекундах
void setup()
{
Serial.begin(9600);
boolean notConnected = true;
Serial.println("Connecting to the GSM network");
while(notConnected){
if(gsmAccess.begin() == GSM_READY) // Примечание: 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");
// поиск имени контакта "тест"
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");
// распечатать телефон "теста"
Serial.println(myNumber);
}
void loop()
{
}
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- SIM900 3G? Или SIM900A умеет подключаться к 3G?
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Как проверить, работает ли GSM-модуль?
- Как отправлять сообщения на несколько номеров с помощью модуля Arduino uno и SIM800?