0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

火灾警报和有毒一氧化碳气体警报的制作

454398 来源:wv 2019-10-15 11:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:必需的硬件

1。粒子光子

光子是一种微型Wi-Fi IoT设备,用于为物联网创建连接的项目和产品。它易于使用,功能强大且已连接到云。该开发板本身使用赛普拉斯Wi-Fi芯片(可在Nest Protect,LIFX和Amazon Dash中找到该芯片)以及功能强大的STM32 ARM Cortex M3微控制器

2。 I2C端口朝外的粒子电子或光子I2C屏蔽

使用PEI2C扩展,使用粒子电子/光子为扩展控制器世界提供云连接。

PEI2C提供了一个5伏I2C扩展端口,允许您的粒子电子或光子连接到不同的I2C设备。连接用于光度监视,气体水平检测,温度和湿度监视的传感器,以及多种类型的运动,加速度和方向传感器。

3。一路继电器(5V)

4。 MQ9

使用我们的I2C迷你模块形状因子,MQ-9气体传感器可轻松监控一氧化碳和可燃气体浓度。 MQ9连接到ADC121C 12位模数转换器,该转换器只需使用两个地址跳线即可充分扩展到每个I2C端口9个气体传感器(充分利用了浮动地址系统)。

MQ-9能够检测介于10和1,000ppm之间的一氧化碳空气浓度水平以及介于100和10,000ppm之间的可燃气体浓度。 MQ9的理想感测条件是在65%±5%的湿度下20°C±2°C

5。 SHT30

SHT30是Sensirion的下一代温度和湿度传感器

与之前的产品相比,SHT30具有更高的智能性,可靠性和改进的精度指标。其功能包括增强的信号处理,以便可以使用I2C通信读取温度和湿度。

步骤2:与粒子光子的连接

必要的连接(参见图片)如下:

1。这将在I2C上工作。取一个用于粒子光子的I2C屏蔽,然后将其轻轻地连接到粒子光子的引脚上。

2。将I2C电缆的一端连接到SHT30的端口,另一端连接到I2C屏蔽。

3。使用I2C电缆将MQ9传感器入口连接到SHT30上。

4。要打开继电器电源,请使用光子的3V和GND引脚。将光子的D7引脚连接到继电器的IN引脚。

5。最后,使用USB电缆为粒子光子供电。您还可以使用光子的力量之盾来提供外部电源。

步骤3:使用粒子Webhooks将粒子光子连接到Ubidots

了解您可以访问以下链接的Particle Webhook功能。

1。要开始使用您的粒子光子设备,请单击此处。

2。安装完设备后,请执行以下步骤:

登录到您的粒子帐户,转到粒子控制台,将鼠标指针移到集成。

单击“新集成”

选择“ Webhook”

将事件命名为Ubidots。

添加URL

https://industrial.api.ubidots.com/api/v1.6/devices/{{{PARTICLE_DEVICE_ID}}}

选择请求类型 POST,请求格式“自定义正文”, 设备任意。

转到“高级设置”并插入文本“ {{{PARTICLE_EVENT_VALUE}}} ” ”。

现在移至 HTTP头并插入:

Host | industrial.api.ubidots.com X-Auth-Token | YOUR_UBIDOTS_TOKEN_HERE Content-Type | application/json

单击创建网络并确认数据正在流式传输到Ubidots。

步骤4:对光子进行编程

使用Webhooks成功将您的Particle帐户连接到Ubidots之后,就可以对Photon进行编程了。

1。创建新应用,单击 Particle IDE 。

2。为您的应用命名。

3。将Ubidots库添加到新项目中:

转到“粒子IDE”右侧面板上的“库”选项,然后单击它。

在社区图书馆中搜索Ubidot,单击它。

单击包含在项目中。

单击您的应用名称,确认,然后将插入库。

4。复制并粘贴以下“火灾-一氧化碳(CO)警报系统.ino”代码。

// This #include statement was automatically added by the Particle IDE.

// This code is designed for Particle Photon to work with the SHT30 and MQ9 I2C Mini Module available from dcubestore.com

// This code is written for Fire and Carbon Monoxide Alert System

// Ubidots using Particle Webhooks.

/****************************************

Include Libraries

****************************************/

#include

#include

#include

/****************************************

Define Instances and Constants

****************************************/

#define interval 1000

#define Addr 0x44

#define Addr2 0x50

double cTemp = 0.0, fTemp = 0.0, humidity = 0.0;

int raw_adc_MQ9 = 0;

double ppm_MQ9 = 0.0;

int relay = D7;

int i = 0;

const char* WEBHOOK_NAME = “Ubidots”;

Ubidots ubidots(“webhook”, UBI_PARTICLE);

/****************************************

Main Functions

****************************************/

void setup() {

Serial.begin(115200);

ubidots.setDebug(true); // Uncomment this line for printing debug messages

// Set variable for SHT30

Particle.variable(“i2cdevice”, “SHT30”);

Particle.variable(“cTemp”, cTemp);

Particle.variable(“humidity”, humidity);

// Initialise I2C communication as MASTER

Wire.begin();

// Initialise serial communication, set baud rate = 9600

Serial.begin(9600);

delay(300);

// Set variable for MQ9

Particle.variable(“i2cdevice”, “ADC121C_MQ9”);

Particle.variable(“PPM”, ppm_MQ9);

// Initialise I2C communication as MASTER

Wire.begin();

// Initialise serial communication, set baud rate = 9600

Serial.begin(9600);

delay(300);

pinMode(relay, OUTPUT);

}

void loop() {

// SHT30

unsigned int data[6];

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Send 16-bit command byte

Wire.write(0x2C);

Wire.write(0x06);

// Stop I2C transmission

Wire.endTransmission();

delay(300);

// Start I2C Transmission

Wire.beginTransmission(Addr);

// Stop I2C Transmission

Wire.endTransmission();

// Request 6 bytes of data

Wire.requestFrom(Addr, 6);

// Read 6 bytes of data

// temp msb, temp lsb, crc, hum msb, hum lsb, crc

if (Wire.available() == 6)

{

data[0] = Wire.read();

data[1] = Wire.read();

data[2] = Wire.read();

data[3] = Wire.read();

data[4] = Wire.read();

data[5] = Wire.read();

}

delay(500);

// Convert the data

cTemp = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45;

fTemp = (cTemp * 1.8) + 32;

humidity = ((((data[3] * 256.0) + data[4]) * 100) / 65535.0);

// Output data to dashboard

Particle.publish(“Temperature in Celsius: ”, String(cTemp));

Particle.publish(“Temperature in Fahrenheit: ”, String(fTemp));

Particle.publish(“Relative Humidity: ”, String(humidity));

float value2 = humidity ;

float value1 = cTemp ;

if (cTemp 》= 60)

{

digitalWrite(relay, HIGH);

delay(interval);

digitalWrite(relay, HIGH);

delay(interval);

} else {

digitalWrite(relay, LOW);

delay(interval);

digitalWrite(relay, LOW);

delay(interval);

}

delay(1000);

// MQ9

unsigned int data2[2];

// Start I2C transmission

Wire.beginTransmission(Addr2);

// Select data register

Wire.write(0x00);

// Stop I2C transmission

Wire.endTransmission();

// Request 2 bytes of data

Wire.requestFrom(Addr2, 2);

// Read 2 bytes of data

// raw_adc msb, raw_adc lsb

if (Wire.available() == 2)

{

data2[0] = Wire.read();

data2[1] = Wire.read();

}

delay(300);

// Convert the data to 12-bits

raw_adc_MQ9 = ((data2[0] & 0x0F) * 256) + data2[1];

float sensor_voltage = raw_adc_MQ9 / 1024.0 * 5.0;

float RS_gas = (5.0 - sensor_voltage) / sensor_voltage;

float ratio = RS_gas / 3.78;

// Output data to dashboard

Particle.publish(“Carbon Monoxide Concentration : ”, String(ratio));

float value3 = ratio;

delay(1000);

ubidots.add(“Variable_Name_One”, value1); // Change for your variable name

ubidots.add(“Variable_Name_Two”, value2);

ubidots.add(“Variable_Name_Three”, value3);

bool bufferSent = false;

bufferSent = ubidots.send(WEBHOOK_NAME, PUBLIC); // Will use particle webhooks to send data

if (bufferSent) {

// Do something if values were sent properly

Serial.println(“Values sent by the device”);

}

delay(5000);

}

5。验证代码并刷新它。

步骤5:创建Ubidots事件

一旦使用粒子IDE将代码刷新到Photon,数据便开始出现在Ubidots。

Ubidots支持已经集成的事件,使您可以将事件,警报和通知发送给需要知道的人。您可以在创建条件事件和警报中了解有关它们的更多信息。

创建事件的步骤:

1。登录到您的Ubidots仪表板。

2。转到 DATA ,然后选择事件。

3。单击Ubidots控制台左侧的 + 符号以创建事件。

4。选择如果触发器标签,以组织事件逻辑或条件。

5。单击选择变量:温度和湿度。

6。创建条件:如果“温度”或“湿度”的值在0分钟内大于或等于60。

7。选择然后采取行动标签以执行计划的事件或警报,在本例中,我们将使用语音和短信警报。

8。确定要执行的动作以及发送给接收者的消息。

9。确定时间。

10。确认事件

步骤6:输出

步骤7:应用

该系统允许您在Ubidots平台中分析实时数据。

火灾产生的热量和烟雾会严重损坏或完全破坏无法维修的物品。这种带有自动继电器控制的紧急警报可以连接到洒水系统,可以挽救许多生命和财产。

我们还可以连接GPS以获取实时位置,该位置可以与附近的消防局和医院共享,以便它们可以及时到达。

该系统可用于多种用途,例如火灾警报和有毒一氧化碳气体警报。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 警报器
    +关注

    关注

    2

    文章

    72

    浏览量

    20224
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    奥松电子推出全新气体检测传感器解决方案

    在工业安全、环境监测与健康防护领域,精准、快速、可靠的气体检测是保障人员健康与生产安全的关键。奥松在广受好评的AOX3000无铅氧传感器、ACM3000一氧化碳传感器及AHS3000硫化氢传感器
    的头像 发表于 10-23 11:23 578次阅读

    一氧化碳(CO)监控控制系统,空气质量监控系统,沃思智能

    车库一氧化碳(CO)监控控制系统的控制策略,核心是围绕 **“实时监测数据→与预设阈值对比→触发分级响应动作”** 形成闭环逻辑,兼顾 安全性、节能性与可操作性 。其本质是通过精细化的规则设计,在
    的头像 发表于 09-22 17:05 576次阅读
    <b class='flag-5'>一氧化碳</b>(CO)监控控制系统,空气质量监控系统,沃思智能

    空气质量控制器,一氧化碳监控系统,车库CO监控,沃思智能

    随着城市化进程加快和私家车保有量持续攀升,地下车库已成为现代建筑的标配设施。然而,这个相对封闭的空间却潜藏着致命的健康威胁——一氧化碳(CO)中毒风险。据中国疾病预防控制中心统计,我国每年因
    的头像 发表于 09-22 15:40 335次阅读
    空气质量控制器,<b class='flag-5'>一氧化碳</b>监控系统,车库CO监控,沃思智能

    船舶气体安全监测:EtherCAT转DeviceNET网关的实战应用

    在船舶密闭空间中,货舱挥发性气体、机舱燃油蒸汽、一氧化碳以及泵房易燃易爆气体时刻威胁人员与航行安全。传统气体监测系统常面临协议多样、数据割裂的困境——PLC(如倍福)普遍采用实时以太网
    的头像 发表于 08-14 10:48 461次阅读
    船舶<b class='flag-5'>气体</b>安全监测:EtherCAT转DeviceNET网关的实战应用

    STM32项目分享:智能家居(机智云)升级版

    01—项目简介1.功能详解STM32智能家居(机智云)升级版功能如下:检测功能:监测环境温湿度、烟雾浓度、一氧化碳、空气质量、光照强
    的头像 发表于 07-02 18:04 619次阅读
    STM32项目分享:智能家居(机智云)升级版

    烟气检测仪是如何工作的?工作原理大揭秘

    含有特定气体的烟气通过透气膜进入传感器内部时,气体在电极表面发生化学反应,产生与气体浓度成正比的电流或电压信号。通过测量这个电信号的大小,就可以确定烟气中目标气体的浓度。例如,对于常见
    发表于 06-16 16:10

    华盛昌GD-3806便携式四合一气体检测仪的应用案例

    GD-3806便携式四合一气体检测仪可快速检测多种气体浓度,进行温湿度测量,并具有超标报警功能。其配置的2.8寸LCD彩屏可实时显示检测项目浓度,如硫化、一氧化碳、氧气、甲烷/可燃气体
    的头像 发表于 05-28 11:03 1164次阅读

    烟气检测仪是什么?这里为你精准揭秘!

    检测仪是种用于检测烟气中各种成分和参数的设备。它就像是环境和工业生产的“健康卫士”,能够实时、准确地测量烟气中的多种物质,如一氧化碳、二氧化碳、二氧化硫、氮
    发表于 05-26 13:59

    呼气末二氧化碳监测中的传感器应用

    01呼气末二氧化碳呼气末二氧化碳(ETCO2)是指呼气终末期呼出的混合肺泡气体中含有的二氧化碳压(PETCO2)或二氧化碳浓度(CETCO2
    的头像 发表于 05-19 13:20 737次阅读
    呼气末二<b class='flag-5'>氧化碳</b>监测中的传感器应用

    打破国外垄断!合顺CO传感器已在储能探测器标杆企业全面量产

    安全防护设备的核心供应商,合顺传感一氧化碳传感器订单的落地,标志国产高端一氧化碳传感器首次在储能安全领域打破海外技术垄断,为行业国产化替代树立标杆。 储能系统是新能源产业的关键基础设施,但其电池热失控引发的火灾风险始终
    的头像 发表于 04-01 15:01 657次阅读

    汽车排气管内置的传感器种类解析

    燃油车汽车尾气中所含的一氧化碳、二氧化碳以及碳氢化合物等已成为大气污染的个重要来源。那么如何检测尾气的成分呢?   国六排气管载体采用DOC(柴油机氧化催化剂)+DPF(柴油机颗粒过
    的头像 发表于 02-18 10:20 1.8w次阅读
    汽车排气管内置的传感器种类解析

    独立型一氧化碳探测器,安全守护新升级

    在安全防护领域,一氧化碳泄漏的检测至关重要。广州艾礼富电子推出的独立型一氧化碳探测器WS-988,以其卓越的性能和可靠性,为用户提供了种高效的安全解决方案。 产品优势: 1、内置温度补偿模块
    的头像 发表于 01-24 14:36 706次阅读
    独立型<b class='flag-5'>一氧化碳</b>探测器,安全守护新升级

    松柏传感发布H4系列高端一氧化碳传感器

    近日,松柏传感凭借研发团队的不懈努力与持续创新,成功推出了全新H4系列高端一氧化碳传感器。这产品的问世,标志着松柏传感在气体传感技术领域的又次重大突破。 H4系列
    的头像 发表于 01-23 14:30 842次阅读

    地下车库一氧化碳监测及风机控制系统方案

    的尾气不易排出,十分容易积累大量的CO气体,造成异味并损害人体监控。因此,地下车库通常会配置有通风系统,实现定时、稳定的新风循环。 为加强地下车库的安全管理水平,物通博联提供一氧化碳监测及风机远程控制系统方案。通过
    的头像 发表于 01-08 17:21 999次阅读
    地下车库<b class='flag-5'>一氧化碳</b>监测及风机控制系统方案

    红外 CO2(二氧化碳气体传感器和分析模组

    随着科技的进步,人们对于生活以及身体健康关注越来越高。CO2(二氧化碳)是地球大气的重要组成部分,与人类生活息息相关。关注CO2(二氧化碳气体,监测CO2(二氧化碳
    的头像 发表于 01-07 17:01 1116次阅读
    红外 CO2(二<b class='flag-5'>氧化碳</b>) <b class='flag-5'>气体</b>传感器和分析模组