Получение смс через щит gprs на Arduino

Я искал по всей сети, пытаясь найти пример кода, чтобы увидеть, как слушать смс и читать его. Я новичок в командах, поэтому я пытаюсь увидеть некоторые примеры. Я намерен слушать смс и читать контент. Если в сообщении содержалось слово «вперед», я хочу, чтобы оно выполняло определенную функцию. Я использую щит seeedstudio GPRS v1.4 с моим arduino uno.

Я нашел библиотеку, но запутался в функции readSMS (). Библиотека находится здесь: https://github.com/Seeed-Studio/Seeeduino_GPRS.

У меня есть текущий код:

GPRS gprsTest(8,7,9,9600,"1818XXXXXXXXX");//TX,RX,PWR,BaudRate,PhoneNumber

void setup() {
Serial.begin(9600);
gprsTest.preInit();
delay(1000);
while(0 != gprsTest.init()) {
delay(1000);
Serial.print("init error\r\n");
}
}

void loop() {
//nothing to do
gprsTest.readSMS();
}

Моя проблема в том, что я не уверен, что указывать в параметрах функции readSMS.

В соответствии с API функция принимает int, string и еще один int.

int readSMS(int messageIndex, char *message, int length);

Есть идеи? Не совсем какая-либо документация по получению смс

1

Решение

Я не знаком с Seeed-studio (чьи комментарии в заголовочных файлах также не очень хорошо поддерживаются, чтобы помочь вам), но вот основная идея:
Полученные текстовые сообщения сохраняются в независимых индексах в выбранной памяти сообщений (SIM-карта или телефон, который будет модемом в вашем случае). Новые сообщения обычно принимают наименьший неиспользованный индекс (индексы, начинающиеся с 1).

Есть два способа обнаружить новое SMS
1) Модем отправляет строку на выходной порт, чтобы указать новое SMS (например, прерывание)
2) Вы должны прочитать количество непрочитанных сообщений самостоятельно (опрос)

Эти методы требуют знания аппаратно-зависимых AT-команд. Если вы хотите понять / узнать, что происходит, дайте AT-команды CMGR а также CMGF чтение

Тем не менее, информация, которую вы явно запросили, может быть найдена в функции readSMS из gprs.cpp.
messageIndex индекс выбранной памяти, в которой хранится сообщение.
*message это буфер, в который будет прочитано сообщение.
length длина байтов для чтения.
Статус возврата всегда 0 (плохая стратегия).

Я бы порекомендовал различать прочитанные и непрочитанные сообщения, используя пользовательский код. Это зависит от вашей заявки

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]