查看: 6933|回复: 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,未来可以接入一个按钮,即可实现按键直接拨打指定号码。
代码如下:

kittenblock中小学创客名师推荐的图形化编程软件

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

2人打赏

  • TA的每日心情
    开心
    2016-11-3 13:00
  • 签到天数: 52 天

    [LV.5]常住居民I

    发表于 2017-2-12 21:13 | 显示全部楼层
    两节18650按照标的2S电压应该是7.4V,但是充满会有8.2~8.4之间的电压,但是我们一般讲是讲7.4V
    打赏作者鼓励一下!
  • TA的每日心情

    2018-1-11 13:58
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 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
    调用库文件不怎么好,局限性太大,而且他们得这个库文件有一部分都有小错误的 ...

    是嘛,哪里有错?
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【项目】基于Arduino Nano的多功能桌面感应垃圾桶
    【项目】基于Arduino Nano
    基于Arduino Nano的多功能桌面感应垃圾桶随着大学生活不断往前迈进,宿舍桌面上的杂物
    智能物联网花盆
    智能物联网花盆
    打坏了一个费时5小时 3D打印的花盆,耗时22小时 下载:Kittenblock软件,安装、运
    呼吸灯实验
    呼吸灯实验
    本文节选自《Arduino程序设计基础》 之前的章节已经介绍了多种方法控制LED,但单是开
    为开发板 Generic ESP8266 Module 编译时出错
    为开发板 Generic ESP8266
    第一次尝试Arduino UNO软串口通信,编译一直通不过,错误信息 “开发板 generic (平
    Arduino Uno 无法上传程序
    Arduino Uno 无法上传程序
    原来可以正常使用的Arduino Uno 板子突然不能上传程序了,硬件驱动正常,TX和RX指示灯
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表