Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何将来自gsm模块的输入字符转换为字符串?_String_Arduino_Gsm_Arrays - Fatal编程技术网

String 如何将来自gsm模块的输入字符转换为字符串?

String 如何将来自gsm模块的输入字符转换为字符串?,string,arduino,gsm,arrays,String,Arduino,Gsm,Arrays,这是我第一次在我的arduino上使用gsm屏蔽,所以我有点困惑,所以我需要指引方向。我的目标是读取发送到gsm屏蔽的消息,然后将该消息比较为特定字符串。如果他们是一样的,arduino会做点什么。例如,GSM屏蔽收到一条包含状态的文本消息,arduino将执行某些操作。我现在遇到的问题是如何将gsm模块输入的字符读入一个字符串,然后将该字符串与一个特定的单词进行比较。我现在有这个代码 #include <SoftwareSerial.h> #include <

这是我第一次在我的arduino上使用gsm屏蔽,所以我有点困惑,所以我需要指引方向。我的目标是读取发送到gsm屏蔽的消息,然后将该消息比较为特定字符串。如果他们是一样的,arduino会做点什么。例如,GSM屏蔽收到一条包含状态的文本消息,arduino将执行某些操作。我现在遇到的问题是如何将gsm模块输入的字符读入一个字符串,然后将该字符串与一个特定的单词进行比较。我现在有这个代码

    #include <SoftwareSerial.h>
    #include <String.h>
    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);
        }
        }
        }

inchar是一个字符串,所以请尝试使用strcmp(inchar,command)来比较这两个字符串。

inchar看起来应该这样吗?如果是,您确定可以仅用“=”与数组进行比较吗?(我不知道,我只是看到这样有点惊讶)@MortenSickel我意识到这是错的。但是我仍然找不到一个方法来实现这一点。我希望你能帮我。它看起来像什么这只是一个随机的字符组合,还是你能识别出你想看到的字符串?不,事实上我没有(也许你能帮我修改代码?谢谢。你能举个例子吗?每次都是一样的还是改变了?
      while(cell.available() >0)
      {
          inchar[i]=cell.read();
          i++;
          inchar[i] = '\0';
          Serial.print(inchar);
        if (inchar==command)