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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10270|回复: 5

SIM808打造的提醒工具

[复制链接]
发表于 2017-2-11 23:46 | 显示全部楼层 |阅读模式
手机是现代人无法离开的设备。至少从现在来说,父母再不会说让我放下手机之类的话,因为对于他们来说,检查手机的频率已经接近5分钟一次。
如果能把一些监视事件直接发送到手机,会很方便使用。比如,孩子在屋里睡觉,房门紧闭的情况下如何及时听到孩子醒来时呼喊声是严重的问题。使用传统设计需要有发射端和接收端,需要考虑穿墙后的信号问题会比较麻烦。
这次我仍然使用 DFRobot出品的 SIM808模块外加 Arduino Uno来实现。
image001.jpg
因为涉及到拨打电话,需要插入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,未来可以接入一个按钮,即可实现按键直接拨打指定号码。
代码如下:

[mw_shl_code=c,true]#include <DFRobot_sim808.h>
#define PHONE_NUMBER  "123456789011"

#define POWERONPIN    12
#define CALLINGBUTTON 4
#define SENSORBUTTON  7

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);
}
[/mw_shl_code]
image004.jpg
先说说缺点:
1.   整体响应有一个延时,至少有5秒以上。如果是用来监视实时性很强的事件,比如说,核电站的朋友设计自动检查装置,一定要考虑这个问题;
2.   测试中有碰到无法接通的情况,从串口上来看命令已经下达,但是没有响应,不清楚是设备的问题,还是网络的问题,测试中我使用的是 170的号码,走的是移动的网络,并非亲妈;
说说优点:
1.   通知本身无花费,电话拨过去,看到消息直接挂掉就好,不会有费用产生;
2.   布置方便,用2节18650即可驱动整体;
SIM808电话方面的功能还是非常强大的,后面还会介绍更有趣的玩法。
参考:
2.   本文使用的 DFRobot库可以在这里下载 DFRobot_SIM808-master.zip (729.46 KB, 下载次数: 46)


发表于 2017-2-12 21:13 | 显示全部楼层
两节18650按照标的2S电压应该是7.4V,但是充满会有8.2~8.4之间的电压,但是我们一般讲是讲7.4V
发表于 2017-2-14 13:50 | 显示全部楼层
想法很赞~SIM808的确像Zoologist老师说的,还有很多可玩性~~
SIM卡是不是还得配电信的会比较亲妈?这一部分我没有看得懂,求科普一下,谢谢
 楼主| 发表于 2017-2-14 17:51 | 显示全部楼层
dfrobot 发表于 2017-2-14 13:50
想法很赞~SIM808的确像Zoologist老师说的,还有很多可玩性~~
SIM卡是不是还得配电信的会比较亲妈?这一部分 ...

我的意思是:可能如果走移动的网络最好直接上移动的卡会比较好吧~
发表于 2018-2-17 09:39 | 显示全部楼层
调用库文件不怎么好,局限性太大,而且他们得这个库文件有一部分都有小错误的
 楼主| 发表于 2018-2-17 16:00 | 显示全部楼层
GGG1101 发表于 2018-2-17 09:39
调用库文件不怎么好,局限性太大,而且他们得这个库文件有一部分都有小错误的 ...

是嘛,哪里有错?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 02:42 , Processed in 0.128854 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表