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

需求来源

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);
}

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

时间: 2024-10-27 19:25:14

arduino uno r3 + SIM900 + USB打火机 实现电话触发的相关文章

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

需求来源 1.儿子过完年6岁,喜欢玩烟花,但是胆子小,于是我就负责点火,从年前26到大年初八,每天晚上要给儿子点鞭炮啊点鞭炮. 2.这边过年要打关门炮跟开门炮,大年初一凌晨还要起来帮老妈点鞭炮,说实在的那个整串的小鞭炮也炸的太快了,每次没跑几步就开响,哥也心脏不好啊. 设计: 根据需求,我们需要个远程点火的打火机,上taobao上逛了一圈,找到了usb打火机,续电器,外加一张SIM900 arduino扩展板,回来简单的一连,就了了了.  代码: #include <SoftwareSerial

[Arduino] Arduino Uno R3 中文介绍

Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板.UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮.UNO已经发布到第三版,与前两版相比有以下新的特点: 在AREF处增加了两个管脚SDA和SCL,支持I2C接口:增加IOREF和一个预留管脚,将来扩展板将能兼容5V和3.3V核心板. 改

订购一套Arduino UNO r3入门套件

若需要arduino套件经济版请点击以下链接跳转: http://item.taobao.com/item.htm?id=36759198826 这就开始了吗?希望有所收获吧-!

基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用

一.前言:  A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluca Martino.David Mellis和Nicholas Zambetti.据说Auduino开发团队的领袖Massimo Banzi 之前是意大利Ivrea 一家高科技设计学校的老师.他的学生们经常抱怨找不到便宜好用的微控制器.2005年冬天,Massimo Banzi 跟David Cua

Arduino Uno 开发简介

Arduino是源于意大利的一套开源硬件开发平台,Arduino Uno是其推出的最为基础的开发板.配合外围器件(传感器,控制开关,LED屏等),任何稍有电子电路基础的人都可以基于这个平台快速搭建出具有各种有趣功能的实用电子电路.首先介绍一下Arduino Uno开发板的基本组成. 图1 ArduinoUno开发板 1.      微处理器:ATmega328,8位微处理器,片内包含32KB Flash(0.5KB由BootLoader使用),2KB SRAM,1KB EEPROM,运行时钟频率

Arduino UNO的原理图

Arduino UNO的原理图是开源的,所以可以从arduino网站上下载它: https://www.arduino.cc/en/Main/ArduinoBoardUno 原理图PDF: https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板.UNO的处理器核心是ATmega328,同时具有14路数字输入/输

Arduino Uno微控制器采用的是Atmel的ATmega328

参考:https://www.yiboard.com/thread-831-1-1.html 在本篇文章中,我们将详细介绍Arduino开发板的硬件电路部分,具体来说,就是介绍Arduino Uno开发板的引脚分配图及定义.Arduino Uno微控制器采用的是Atmel的ATmega328. Arduino Uno开发板的引脚分配图包含14个数字引脚.6个模拟输入.电源插孔.USB连接和ICSP插头.引脚的复用功能提供了更多的不同选项,例如驱动电机.LED.读取传感器等.在这篇文章中,我们将介

如何使用Arduino UNO开发板编程ATtiny85

最近在Youtube上看了一个GreatScott制作的有关如何使用Attiny85的精彩教程,之后我购买了一片Attiny85 IC.但是,我花了很长时间尝试在它上面运行一个简单的LED闪烁的代码.最后经过很多次的搜索,终于找到唯一适用于我的方法.我决定做一个简单的教程,任何人都能理解. 需要的工具 1.    一片attiny85或attiny45 2.     Arduino Uno开发板 3.     几根导线 4.     一个10uF电容 5.     面包板 首先,对于本文介绍的方

Arduino uno + mpu6050 陀螺仪 运用卡尔曼滤波姿态解算实验

MPU6050六轴陀螺仪 作用于四轴无人机,平衡车,机器人等等的电子实作当中,用于姿态判断,掌握了可以发挥自己的想象完成更多更有趣的作品. 本例程输出XYZ的角度,正负90度. 运用卡尔曼滤波算法解算姿态,感觉算是比较稳定,但好像有点偏移.大家好好学习参考,再改进吧. 输出效果 首先看看本例程XYZ轴的输出效果图: (时间曲线的体现是:静止姿态→摆动→恢复原静止姿态→拍动桌子→静止姿态) Bom表 Arduino Uno               *1 mpu6050 陀螺仪模块 *1 跳线