SIM808打造的提醒工具-Arduino中文社区 - Powered by Discuz! Archiver

Zoologist 发表于 2017-2-11 23:46

SIM808打造的提醒工具

手机是现代人无法离开的设备。至少从现在来说,父母再不会说让我放下手机之类的话,因为对于他们来说,检查手机的频率已经接近5分钟一次。如果能把一些监视事件直接发送到手机,会很方便使用。比如,孩子在屋里睡觉,房门紧闭的情况下如何及时听到孩子醒来时呼喊声是严重的问题。使用传统设计需要有发射端和接收端,需要考虑穿墙后的信号问题会比较麻烦。这次我仍然使用 DFRobot出品的 SIM808模块外加 Arduino Uno来实现。因为涉及到拨打电话,需要插入SIM卡,我选择的是淘宝购买的阿里通讯的170卡(电讯诈骗专用卡),移动制式。拿到手之后建议先将SIM808上的开关拨到 Debug模式上,然后使用IDE进行测试。具体方法【参考1】1.    将SIM卡插在扩展板上,并把SIM808扩展板插上ArduinoUNO,同时接上接上外接电源(这是必须的,我用的是2节18650电池串联 8V)。2.    拨动功能切换开关至None档,下载一个样例代码Blink来确保串口不被占用(其他不占用串口的代码也可以)。3.    按下Boot开机键,等待SIM卡网络注册正常,既Net状态指示灯进入慢闪状态(3s一次)4.    拨动功能切换开关至USB_DBG档,此时我们就可以通过串口助手直接与SIM808芯片进行通信。 拨打的命令是 ATD电话号码;,特别注意最后是分号结尾,并且检查波特率115200.测试结束后,就可以继续代码设计了。我选择了一个口哨开关,当外界有声音时(阈值可调),会输出低电平;同时我还预留D4,未来可以接入一个按钮,即可实现按键直接拨打指定号码。代码如下:
#include <DFRobot_sim808.h>
#define PHONE_NUMBER"123456789011"

#define POWERONPIN    12
#define CALLINGBUTTON 4
#define SENSORBUTTON7

DFRobot_SIM808 sim808(&Serial);

// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(115200);
pinMode(POWERONPIN, OUTPUT);
pinMode(CALLINGBUTTON, INPUT_PULLUP);
pinMode(SENSORBUTTON, INPUT_PULLUP);
   
digitalWrite(POWERONPIN,HIGH);

    //********Initialize sim808 module*************
    while(!sim808.init()) {
      delay(1000);
      Serial.print("Sim808 init error\r\n");
    }
    Serial.println("Sim808 init success");
}

// the loop function runs over and over again forever
void loop() {
if (LOW==digitalRead(CALLINGBUTTON)) {
      Serial.println("Calling by button");   
      sim808.callUp(PHONE_NUMBER);
    }
if (LOW==digitalRead(SENSORBUTTON)) {
      Serial.println("Calling by Sensor A");         
      delay(500);
      if (LOW==digitalRead(SENSORBUTTON)) {
             Serial.println("Calling by Sensor B");         
            sim808.callUp(PHONE_NUMBER);
            delay(10000);
      }
    }
   Serial.println("Wating for event");   
   delay(500);
}
先说说缺点:1.   整体响应有一个延时,至少有5秒以上。如果是用来监视实时性很强的事件,比如说,核电站的朋友设计自动检查装置,一定要考虑这个问题;2.   测试中有碰到无法接通的情况,从串口上来看命令已经下达,但是没有响应,不清楚是设备的问题,还是网络的问题,测试中我使用的是 170的号码,走的是移动的网络,并非亲妈;说说优点:1.   通知本身无花费,电话拨过去,看到消息直接挂掉就好,不会有费用产生;2.   布置方便,用2节18650即可驱动整体; SIM808电话方面的功能还是非常强大的,后面还会介绍更有趣的玩法。参考:1.   http://wiki.dfrobot.com.cn/index.php?title=(SKU:TEL0097)SIM808_GPS/GPRS/GSM_Shield_V1.0%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9D%972.   本文使用的 DFRobot库可以在这里下载

PPeach 发表于 2017-2-12 21:13

两节18650按照标的2S电压应该是7.4V,但是充满会有8.2~8.4之间的电压,但是我们一般讲是讲7.4V

dfrobot 发表于 2017-2-14 13:50

想法很赞~SIM808的确像Zoologist老师说的,还有很多可玩性~~
SIM卡是不是还得配电信的会比较亲妈?这一部分我没有看得懂,求科普一下,谢谢

Zoologist 发表于 2017-2-14 17:51

dfrobot 发表于 2017-2-14 13:50
想法很赞~SIM808的确像Zoologist老师说的,还有很多可玩性~~
SIM卡是不是还得配电信的会比较亲妈?这一部分 ...

我的意思是:可能如果走移动的网络最好直接上移动的卡会比较好吧~

GGG1101 发表于 2018-2-17 09:39

调用库文件不怎么好,局限性太大,而且他们得这个库文件有一部分都有小错误的

Zoologist 发表于 2018-2-17 16:00

GGG1101 发表于 2018-2-17 09:39
调用库文件不怎么好,局限性太大,而且他们得这个库文件有一部分都有小错误的 ...

是嘛,哪里有错?
页: [1]
查看完整版本: SIM808打造的提醒工具