极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14182|回复: 2

uno+Sim900整合板GBoard MQ2煤气泄漏报警器

[复制链接]
发表于 2014-7-16 14:35:10 | 显示全部楼层 |阅读模式
本帖最后由 ITEAD创易工作室 于 2014-11-25 17:54 编辑

前两天给小伙伴们介绍了sim900扩展板ICOMSAT,反响一般,所以今天决定给大家介绍升级整合板GBoard:集mega328和sim900模块于一体的arduino开发板。



今天我们用GBoard来做一个有毒气体检测报警器。(PIR人体红外传感器用的太多了,想要用PIR的小伙伴可以看这个帖子:http://www.geek-workshop.com/thread-10357-1-1.html

制作有毒气体检测报警器需要用到的配件有:



GBoard跟sim900扩展板ICOMSAT一样,需要9V/2A的供电。所以还需要加一个适配器, 还有手机sim卡(仅支持联通/移动2G卡):


  
代码如下:

  1. #include <SoftwareSerial.h>

  2. SoftwareSerial mySerial(2, 3); // RX, TX 使用软串口看数值

  3. const int thresholdvalue=700; //MQ2目标值,一般空气环境是100左右。

  4. void setup()
  5. {

  6.   pinMode(6, OUTPUT); //D6是Gboard的sim900模块启动脚,使用软件自启动
  7.   pinMode(A1, OUTPUT);
  8.   digitalWrite(6,HIGH);
  9.   delay(1000);
  10.   digitalWrite(6,LOW);
  11.   delay(10000);
  12.   delay(5000);  

  13.   Serial.begin(9600);
  14.   mySerial.begin(9600);
  15. }

  16. void loop()
  17. {
  18.   int sensorValue = analogRead(A0); //使用AO读取MQ2的值
  19. if((sensorValue-thresholdvalue)>0)
  20.   {
  21.   digitalWrite(A1,HIGH);//使用A1显示LED状态,HIGH是点亮

  22.   Serial.println("ATD12345678900;\r");//12345678900改成你要拨打的电话号码
  23.   mySerial.print("ATD12345678900;\r");//串口显示拨打出号码

  24.   delay(5000);
  25. //以下是避免重复拨打号码,当值超过700,只打一次。等降到650以下才进入主程序继续监测
  26.   while((analogRead(A0)-thresholdvalue)>0)
  27.   Serial.println(analogRead(A0));
  28.   while((thresholdvalue-analogRead(A0))<50)
  29.   Serial.println(analogRead(A0));
  30. }

  31.   else
  32.   {
  33.     Serial.println(analogRead(A0));     
  34.     digitalWrite(A1,LOW);//MQ2的值没有超过700,LED灭
  35.   }

  36. }
复制代码


烧写前,确定GBoard跳帽如下图:(关于跳帽,在这里下载GBoard产品手册、原理图和库文件:http://pan.baidu.com/s/1gdDuBn1



MQ2接在A0,LED接在A1。接上9V/2A适配器和FOCA转串板,插入手机sim卡,最终如图:



用foca转串板把代码烧写进GBOARD,如图插入:(板子背面有引脚定义,foca开关拨到3.3V那边)



Foca驱动安装跟uno一样,这里略过不谈。GBoard烧写时“board类型”选择Arduino Duemilanove w/atmega328

程序烧写进去后,GBoard的sim900模块自动开启,可以打开串口监视窗口查看MQ2的值。MQ2需要有一个通电加热过程,需要1分钟左右达到稳定状态,所以刚打开串口监视窗口的时候是没有数据的,稍等片刻即可。

现在,我们就可以用一个打火机来测试了。



演示视频:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2014-7-17 10:35:30 | 显示全部楼层
ITEAD sim900 ICOMSAT 家居安全防盗报警
http://www.geek-workshop.com/thread-10357-1-1.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-28 11:33:18 | 显示全部楼层
不好意思,帖子上的代码少了一行if,所以else编译不过。
void loop()
{
  int sensorValue = analogRead(A0); //使用AO读取MQ2的值
if((sensorValue-thresholdvalue)>0)//漏掉的一行if加在这里
  {
  digitalWrite(A1,HIGH);//使用A1显示LED状态,HIGH是点亮

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 15:12 , Processed in 0.038817 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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