我arduino控制烟雾传感器、火焰传感器、温度传感器收集周...-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3959|回复: 6

[未解决] 我arduino控制烟雾传感器、火焰传感器、温度传感器收集周...

[复制链接]
发表于 2021-3-25 22:58 | 显示全部楼层 |阅读模式
我用arduino控制烟雾传感器、火焰传感器、温度传感器收集周围环境的数据,如果传感器返回的模拟电压值超出预先设定的阈值,就触发蜂鸣器报警,GSM也自动发短信通知用户。但程序好像运行不了。


  1. #include <U8g2lib.h>
  2. #include <DallasTemperature.h>
  3. #include <OneWire.h>
  4. #define ONE_WIRE_BUS A1//定义温度引脚
  5. #include <SoftwareSerial.h>        // 采用软件的串口

  6. SoftwareSerial A9G(0,1);     // Serial RX, TX
  7. U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, SCL, SDA, U8X8_PIN_NONE);
  8. /*这是定义oled屏幕的信息*/
  9. OneWire onewire(ONE_WIRE_BUS);
  10. DallasTemperature sensors(&onewire);
  11. //定义温度串口
  12. float Gas = 0;
  13. float Fire = 0;
  14. float T = 0;
  15. float val=0;//定义浮点 二氧化碳;空气质量;温度
  16. int buzzer = 8;       //设置蜂鸣器的数字引脚为8
  17. int LED = 13;         //设置LED灯的数字引脚为13

  18. void setup()
  19. {
  20.   u8g2.begin();
  21.   sensors.begin();
  22.   Serial.begin(9600);
  23.   A9G.begin(9600);
  24.   A9G.listen();
  25. }

  26. void loop()
  27. {
  28.   Gas = analogRead(A3);
  29.   Fire = analogRead(A2); //这两个数据直接读取数值就好
  30.   val=analogRead(A1);
  31.   sensors.requestTemperatures();
  32.   T = (val*0.0048828125*100-6); //获取温度


  33.   u8g2.clearBuffer();//清除缓存
  34.   u8g2.firstPage();
  35.   u8g2.setFont(u8g2_font_ncenB14_tr);//字体

  36.   //火焰
  37.   u8g2.drawStr(0, 15, "Fire:");
  38.   u8g2.setCursor(55, 15); //位置
  39.   u8g2.print(Fire);

  40.   //空气中有害气体
  41.   u8g2.drawStr(0, 35, "Gas:");
  42.   u8g2.setCursor(50, 35);
  43.   u8g2.print(Gas);

  44.   //温度
  45.   u8g2.drawStr(0, 55, "T:");
  46.   u8g2.setCursor(20, 55);
  47.   u8g2.print(T);
  48.   u8g2.drawCircle(75, 45, 2, U8G2_DRAW_ALL);
  49.   u8g2.setCursor(80, 55);
  50.   u8g2.print("C");
  51.   u8g2.sendBuffer();//显示

  52.   if(Fire>200||T>30||Gas>70){
  53.     digitalWrite(buzzer, HIGH);
  54.     tone(8,1000);//将8号数字引脚的输出设置为1000Hz频率,蜂鸣器触发
  55.     digitalWrite(LED, HIGH);

  56.   A9G.println("AT");
  57.   delay(2000);
  58.   A9G.println("AT+CMGF=1");
  59.   delay(2000);
  60.   A9G.println("AT+CMGS="19120714409"");//这里改成你的号码
  61.   delay(2000);
  62.   A9G.print("Danger!your house is on fire!");//这里写内容
  63.   delay(2000);
  64.   A9G.write(0x1A);
  65.   }

  66.   else
  67.   {  
  68.     digitalWrite(buzzer, LOW);
  69.     noTone(8);
  70.     digitalWrite(LED, LOW);
  71.   }
  72.   delay(1000);
  73. }

复制代码


发表于 2021-4-20 14:18 | 显示全部楼层
博主你好 请问你这个电路图还有嘛
发表于 2021-4-20 15:47 | 显示全部楼层
大佬,请问这个头文件可以分享一下吗:U8g2lib.h
发表于 2021-4-20 17:25 | 显示全部楼层
南友 发表于 2021-4-20 15:47
大佬,请问这个头文件可以分享一下吗:U8g2lib.h

库管理 直接下载就行
 楼主| 发表于 2021-5-10 22:20 | 显示全部楼层
南友 发表于 2021-4-20 15:47
大佬,请问这个头文件可以分享一下吗:U8g2lib.h

直接在arduino IDE“管理库”搜索“U8g2lib.h”下载就好了
 楼主| 发表于 2021-5-10 22:21 | 显示全部楼层
786899068 发表于 2021-4-20 14:18
博主你好 请问你这个电路图还有嘛

你指的是整个系统的电路图吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 06:43 , Processed in 0.103821 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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