求助arduino控制GTM发短信
我想将arduino采集到的温湿度通过GTM发送到特定的手机上,不知道大家谁做过??可以教教我吗附件中有GSM的资料 很简单的,毕业设计刚好是做这个的贴一个子函数给你用吧,亲测是可以的、
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就行了 caodingguang 发表于 2013-4-22 16:51 static/image/common/back.gif
很简单的,毕业设计刚好是做这个的
贴一个子函数给你用吧,亲测是可以的、
void gsm_sms(String text)
这个不需要设置短信中心号码嘛 每个卡的中心号码一般在你拿到手时就有 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()
{
} 五月的风 发表于 2013-4-22 17:15 static/image/common/back.gif
这个不需要设置短信中心号码嘛
不用设置的,如果你的手机卡在手机中已经设置好的话。
页:
[1]