五月的风 发表于 2013-4-22 16:05:14

求助arduino控制GTM发短信

我想将arduino采集到的温湿度通过GTM发送到特定的手机上,不知道大家谁做过??可以教教我吗附件中有GSM的资料

caodingguang 发表于 2013-4-22 16:51:27

很简单的,毕业设计刚好是做这个的
贴一个子函数给你用吧,亲测是可以的、
void gsm_sms(String text)
{
    Serial.println("AT");//测试GTM900-B是否正常通信,正常情况返回OK
    delay(100);
    Serial.println("AT+CMGF=1");//测试发送字符的格式为TEXT格式
    delay(100);
    Serial.println("AT+CMGS=\"618975\""); //发送短信号码
    delay(100);
    Serial.print(text);//发送短信内容
    Serial.write(0x0D);
    delay(100);
    Serial.write(0x1A);//十六进制1A发送信息
    Serial.write(0x0D);
    delay(100);
}
接线只需要接TX和RX就行了

五月的风 发表于 2013-4-22 17:15:32

caodingguang 发表于 2013-4-22 16:51 static/image/common/back.gif
很简单的,毕业设计刚好是做这个的
贴一个子函数给你用吧,亲测是可以的、
void gsm_sms(String text)


这个不需要设置短信中心号码嘛

xxx 发表于 2013-4-22 19:28:08

每个卡的中心号码一般在你拿到手时就有

xxx 发表于 2013-4-22 19:30:06

String meg="314123312,658";
void setup()
{
Serial.begin(9600);
Serial1.begin(9600);
Serial1.println("AT");
delay(100);
while(Serial1.available())
{
    char c=Serial1.read();
    Serial.write(c);
    if(c=='K')
    {
      Serial1.println("AT+CMGF=1");
      delay(100);
      while(Serial1.available())
      {
      char c=Serial1.read();
      delay(50);
      Serial.write(c);
      if(c=='K')
      {
          Serial1.println("AT+CSCS=\"GSM\"");
          while(Serial1.available())
          {
            char c=Serial1.read();
            delay(50);
            Serial.write(c);
            if(c=='M')
            {
            Serial1.println("AT+CSMP=17,167,0,0");
            while(Serial1.available())
            {
                char c=Serial1.read();
                delay(50);
                Serial.write(c);
                if(c=='K')
                {
                  Serial1.println("AT+CPIN?");
                  while(Serial1.available())
                  {
                  char c=Serial1.read();
                  delay(50);
                  Serial.write(c);
                  if(c=='K')
                  {
                      Serial1.println("AT+CMGF=1");
                      while(Serial1.available())
                      {
                        char c=Serial1.read();
                        delay(50);
                        Serial.write(c);
                        if(c=='K')
                        {
                        Serial1.println("AT+CMGS=\"187********\"");
                        while(Serial1.available())
                        {
                            char c=Serial1.read();
                            delay(50);
                            Serial.write(c);
                            if(c=='>')
                            {
                              Serial1.println(meg);
                              while(Serial1.available())
                              {
                              char c=Serial1.read();
                              delay(50);
                              Serial.write(c);
                              if(c=='>')
                              {
                                  Serial1.println("meg");
                                  while(Serial1.available())
                                  {
                                    char c=Serial1.read();
                                    Serial.write(c);
                                  }               
                              }
                              }
                            }
                        }
                        }
                      }
                  }
                  }
                }
            }
            }
          }
      }
      }
    }
}
}
void loop()
{
}

caodingguang 发表于 2013-4-22 21:34:23

五月的风 发表于 2013-4-22 17:15 static/image/common/back.gif
这个不需要设置短信中心号码嘛

不用设置的,如果你的手机卡在手机中已经设置好的话。
页: [1]
查看完整版本: 求助arduino控制GTM发短信