Как преобразовать входящие символы из модуля gsm в строку?

Его мой первый раз использовать gsm-щит для моего arduino, поэтому я немного смущен, поэтому мне нужны указания. Моя цель - прочитать сообщение, отправленное на экран gsm, а затем сравнить это сообщение с определенной строкой. если они будут одинаковыми, ардуино что-то сделает. Например, экран GSM получил текстовое сообщение, содержащее STATUS, ардуино что-то сделает. Проблема, с которой я сейчас сталкиваюсь, - это прочитать входящие символы из модуля gsm в одну строку, а затем сравнить эту строку с конкретным словом. У меня есть этот код на данный момент.

    #include 
    #include 
    char inchar[255];
    SoftwareSerial cell(2,3); 
    int led1 = 22;
    #define powerOn 4
    int i;
    //char comparestring[160];
    char command[]={'S','T','A','T','U','S','\0'};//this is a string for command                                               ended with null terminator
    void setup()
    {
     //ilagay sa loob ng setup
      digitalWrite(powerOn, HIGH);  
      delay(1500);
      digitalWrite(powerOn, LOW);
      delay(5000);

      pinMode(led1, OUTPUT);
      digitalWrite(led1, LOW);

      Serial.begin(9600);
      cell.b-egin(9600);
      delay(30000);
      cell.println("AT+CMGF=1");//set SMS mode to text
      delay(200);
      cell.println("AT+CNMI=1,2,0,0,0 ");//set module to send SMS data to serial out         upon receipt
      delay(200);
      Serial.println("GSM SHIELD IS NOW OK AND READY");

    }
    void loop()
    {
      while(cell.available() >0)
      {
          inchar[i]=cell.read();
          i++;
          inchar[i] = '\0';
          Serial.print(inchar);
        if (inchar==command)
        {
          digitalWrite(led1, HIGH);
          cell.write("AT+CMGS=\"");
          cell.write("09267955775");
          cell.write("\"\r");
          delay(1000);
          cell.write("\nTerminal Monitoring System");
          delay(1000);
          cell.write(0x1A);//End the SMS with a control-z
        }
        else
        {
          Serial.println("\nInvalid Keyword! Type ?");
  dig-italWrite(led1, LOW);
        }
        }
        }

эти коды являются кодами, которые должны были сделать трюк, но я думаю, что он не работает. Надеюсь, ты сможешь научить меня правильному пути. Спасибо!

      while(cell.available() >0)
      {
          inchar[i]=cell.read();
          i++;
          inchar[i] = '\0';
          Serial.print(inchar);
        if (inchar==command)
0
nl ja de
Кажется, что «дюймовый» выглядит так? Если это так, вы уверены, что можете сравнить с массивами только с «==»? (Я не знаю, я просто немного удивлен, увидев это так)
добавлено автор MortenSickel, источник
На что это похоже? - это просто случайный микс, или вы каким-то образом узнаете строку, которую хотите увидеть?
добавлено автор MortenSickel, источник
Можете ли вы опубликовать пример - было ли это одно и то же каждый раз или это изменилось?
добавлено автор MortenSickel, источник
Есть ли примеры с библиотекой gsm-shield? Они часто являются отличной отправной точкой.
добавлено автор MortenSickel, источник
@MortenSickel я понял, что это неправильно. Но я все еще не могу найти способ сделать эту работу. Я надеюсь, что вы можете мне помочь.
добавлено автор jpvisto, источник
На самом деле я этого не делал. :( может быть, вы можете помочь мне изменить мои коды? спасибо.
добавлено автор jpvisto, источник

1 ответы

inchar - это строка, поэтому попробуйте использовать strcmp (inchar, command) для сравнения двух.

0
добавлено
Анархическая электроника
Анархическая электроника
1 510 участник(ов)

[около] электронные темы. без переходов на личности, стен стикеров, политики, непрошенной рекламы и всякого такого Основной чат у нас в @ru_electronics Общий информационный канал @ru_electronics_feed

Про электронику
Про электронику
1 461 участник(ов)

QA чат для решения вопросов, связанных с электроникой. без стикеров, непрошенной рекламы и игр в русский форум оформляйте вопрос в одно сообщение вопросы со словом «кто» игнорируются don't ask for ask Правила http://telegra.ph/ru-electronics-rulz-11-11

Embedded Group
Embedded Group
873 участник(ов)

Все про Embedded и электронику. Осторожно, бывают нотификейшены. #вопросподелу - Для поиска вопросов и ответов #devtools - фотки рабочих железок Работа: @rabotaembedded http://embedded.group http://vk.com/embedded_space

Hardware & Radio
Hardware & Radio
155 участник(ов)

Разговоры об электронике, микроконтроллерах, низкоуровневом программировании, реверс-инжиниринге, FPGA, квадрокоптерах, 3D-печати, Software Defined Radio, любительском радио, и всяком таком.

ARDUINO [RU]
ARDUINO [RU]
60 участник(ов)

Обсуждение Электронного конструктора Arduino. Проблемы и их решения. Ссылки на интересные статьи и проекты. ВК: https://vk.com/arduino_esp Realtek: http://vk.com/rtl8711 Чаты: IOT https://t.me/ProIOT esp8266 https://t.me/Proesp8266