Получить массив символов с помощью модуля SIM900

Я пытался получить массив символов с помощью SIM900, но не смог. Я могу получить только один символ, например 'G', но я хочу получить строку "abcd". Когда я использовал char* для сохранения SMS, у меня не получилось.

Кто-нибудь знает как?

Мой код:

#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);

void setup()
{
    pinMode(3,OUTPUT);
    Serial.begin(19200); // для последовательного монитора
    SIM900.begin(19200); // для GSM шилда
    SIM900power(); // включить щит
    delay(20000); // дать время для входа в сеть. `
    SIM900.print("AT+CMGF=1\r"); // установить режим SMS на текст
    delay(100);
    SIM900.print("AT+CNMI=2,2,0,0,0\r");
    // выпалить содержимое нового СМС при получении на последовательный выход GSM шилда
    delay(100);
} 

void SIM900power()
// программный эквивалент нажатия кнопки "питание" на GSM шилде24
{
    digitalWrite(9, HIGH);
    delay(1000);
    digitalWrite(9, LOW);
    delay(7000);
}

void loop()
{
    // Теперь мы просто отображаем любой текст, который GSM-шилд отправляет на последовательный монитор
    if(SIM900.available() >0)
    {
        char *in = SIM900.read();
        if (in =="abcd") digitalWrite(3,HIGH);
        if (in == "00") digitalWrite(3,LOW);
    }
}

, 👍0


2 ответа


Лучший ответ:

0

Решено. Я использовал другую библиотеку, которая манипулировала файлами . И просто поддержите sim900 Вы можете получить его по этой ссылке ниже и включить в свою IDE Arduino. Эта библиотека написана группой digispark

,

Каким было это решение?, @Aiapaec

Правильно и стабильно @Aiapaec, @Reza Qasemi

Я имел в виду, не могли бы вы опубликовать код решения?, @Aiapaec

Коды решений есть в библиотеке в ответе. Вы должны скачать библиотеку и включить ее в свой arduino ide @Aiapaec, @Reza Qasemi


0
#use this code and then inform me"
#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);

void setup()
{
    pinMode(3,OUTPUT);
    Serial.begin(19200); // для последовательного монитора
    SIM900.begin(19200); // для GSM шилда
    SIM900power(); // включить щит
    delay(20000); // дать время для входа в сеть. `
    SIM900.print("AT+CMGF=1\r"); // установить режим SMS на текст
    SIM900.write(0x22);
    SIM900.write(0x0D);
    SIM900.write(0x0A);
    delay(100);
    SIM900.print("AT+CNMI=2,2,0,0,0\r");
    // выпалить содержимое нового СМС при получении на последовательный выход GSM шилда
    delay(100);
} 

void SIM900power()
// программный эквивалент нажатия кнопки "питание" на GSM шилде24
{
    digitalWrite(9, HIGH);
    delay(1000);
    digitalWrite(9, LOW);
    delay(7000);
}

void loop()
{
    // Теперь мы просто отображаем любой текст, который GSM-шилд отправляет на последовательный монитор
    if(SIM900.available() >0)
    {
        char *in = SIM900.read();
        if (in =="abcd") digitalWrite(3,HIGH);
        if (in == "00") digitalWrite(3,LOW);
    }
}
,

Привет. Спасибо . Но это не сработало. Мне нужно выбрать память и сохранить смс в стороне и открыть ее (для этого нам нужно использовать AT-команды), @Reza Qasemi

Объяснение того, что вы изменили, было бы полезно., @gre_gor

Это решило. Я использовал другую библиотеку gsm и работал. @gre_gor, @Reza Qasemi