码迷,mamicode.com
首页 > 其他好文 > 详细

arduino uno r3 + SIM900 + USB打火机 实现电话触发点火

时间:2015-03-19 17:53:15      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

 

 

需求来源

1.儿子过完年6岁,喜欢玩烟花,但是胆子小,于是我就负责点火,从年前26到大年初八,每天晚上要给儿子点鞭炮啊点鞭炮。

2.这边过年要打关门炮跟开门炮,大年初一凌晨还要起来帮老妈点鞭炮,说实在的那个整串的小鞭炮也炸的太快了,每次没跑几步就开响,哥也心脏不好啊。

 

设计:

根据需求,我们需要个远程点火的打火机,上taobao上逛了一圈,找到了usb打火机,续电器,外加一张SIM900 arduino扩展板,回来简单的一连,就了了了。

 代码:

#include <SoftwareSerial.h>
#include <String.h>
 
SoftwareSerial GPRS(7, 8);
String currentLine = ""; // string to hold the text from server
String triggerNo="13616761237";
String mobile = "";  
boolean readingNo=false;
long lastTriggerTime=0;
boolean fireing=false;
int led=4;
void setup()
{
  GPRS.begin(19200);               // the GPRS baud rate   
  Serial.begin(19200);    // the GPRS baud rate 
   pinMode(9, OUTPUT); 
  pinMode(led,OUTPUT);
  digitalWrite(led,LOW);
  delay(500);
  powerUpOrDown();
}
void loop()
{
  if(fireing){
    if(  millis() - lastTriggerTime >= 12 * 1000){
     Serial.println("stop fire!"); 
     digitalWrite(led,LOW);
    fireing=false;
    }else{
     return; 
    }
  }
  
  
  while(GPRS.available()){
     char inChar=GPRS.read();
     currentLine +=inChar;
   
     if(inChar==\n)currentLine="";
     
     if(currentLine.endsWith( "+CLIP: \"")){
       readingNo=true;
       mobile="";
     }
     
     if(readingNo){
       
       if(inChar !=,){
         if(inChar !=")mobile+=inChar;
       }else{
         readingNo=false;
         Serial.println(mobile);
         if(mobile==triggerNo){
           lastTriggerTime=millis();
           Serial.println("fire!!"); 
           fireing=true;
           
           currentLine="";
           mobile="";
           delay(1000);
           digitalWrite(led,HIGH);
           delay(4000);
           
           GPRS.println("ATH");
           while(GPRS.available()){
             GPRS.read(); 
           }
           
         }
         
       }
     }
  } 
}

void powerUpOrDown()
{
 
  digitalWrite(9,LOW);
  delay(1000);
  digitalWrite(9,HIGH);
  delay(2000);
  digitalWrite(9,LOW);
  delay(3000);
}

 

效果图(分待机状态跟触发状态):

技术分享

技术分享

arduino uno r3 + SIM900 + USB打火机 实现电话触发点火

标签:

原文地址:http://www.cnblogs.com/wdfrog/p/4350940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!