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

    文章

    71

    浏览量

    19691
收藏 人收藏

    评论

    相关推荐

    储能消防用一氧化碳和感温复合火灾探测装置中传感器选型

    优势以及在实际应用中的重要作用。 一氧化碳,作为火灾过程中的常见有毒气体,其无色、无味、无刺激性的特性往往使得火灾在初期难以被察觉。然而,一氧化碳
    的头像 发表于 12-04 09:32 122次阅读
    储能消防用<b class='flag-5'>一氧化碳</b>和感温复合<b class='flag-5'>火灾</b>探测装置中传感器选型

    云南恩田智能隧道有毒有害气体检测系统具提高了隧道施工安全管理

    检测功能方面 多种气体检测:能精准检测多种有毒有害气体,包括常见的一氧化碳、二氧化碳、硫化氢,以及较为罕见但极具危险性的
    的头像 发表于 11-27 16:06 137次阅读
    云南恩田智能隧道<b class='flag-5'>有毒</b>有害<b class='flag-5'>气体</b>检测系统具提高了隧道施工安全管理

    云南恩田智能隧道有毒有害气体检测系统的优势

    检测精度高:   气体识别准确:能够精准检测多种有毒有害气体,无论是常见的一氧化碳、二氧化碳、硫化氢,还是其他较为罕见但极具危险性的
    的头像 发表于 10-18 11:08 120次阅读
    云南恩田智能隧道<b class='flag-5'>有毒</b>有害<b class='flag-5'>气体</b>检测系统的优势

    FLIR光学气体成像热像仪的高灵敏度模式

    FLIR光学气体成像 (OGI) 热像仪,专为发现VOC/碳氢化合物,氟化硫制冷剂,一氧化碳等有害气体的泄漏而设计,其可检测数百米外的气体泄漏,当遇到特别小的或特别远的
    的头像 发表于 09-06 15:40 381次阅读

    程斯-一氧化碳防护性能测试仪-视频解说

    测试仪仪器仪表
    jf_62302303
    发布于 :2024年05月30日 15:38:16

    诚卫-一氧化碳防护性能测试仪-视频解说

    测试仪仪器仪表
    chenweizwg
    发布于 :2024年05月30日 09:24:32

    气体浓度监测系统能否利用485远传模块与中控室进行无线监测?

    工业之。钢铁冶炼般以工业煤气作为燃料,因涉及一氧化碳含量很高的高炉煤气、转炉煤气、焦炉煤气。主要产生气体一氧化碳,天然气,氢气,甲烷,
    的头像 发表于 05-24 09:30 220次阅读
    <b class='flag-5'>气体</b>浓度监测系统能否利用485远传模块与中控室进行无线监测?

    MQ-7之类的可燃气体传感器,防电火花怎么做到的?

    如题,我想给厨房加个智能系统,想用一氧化碳检测模块,但是直有个问题不明白,这个东西是怎么防电火花的?因为是检测可燃气体,但是电路工作不会因为些信号产生火花吗?实际应用中是怎么解决的
    发表于 05-16 07:00

    氧化碳气体5g网络监测面包棚

    是否有人在安装二氧化碳气体发生器后仍无法看到结果?在这篇文章中,我们将讨论二氧化碳气体的有效应用方法和回顾要点。二氧化碳浓度不均匀的原因在于
    的头像 发表于 05-11 11:18 334次阅读

    工厂车间里可燃性气体浓度监测系统如何实现无线技改?

    行业,是国家重要的原材料工业之。钢铁冶炼般以工业煤气作为燃料,因涉及一氧化碳含量很高的高炉煤气、转炉煤气、焦炉煤气。主要产生气体一氧化碳
    的头像 发表于 05-09 15:51 271次阅读
    工厂车间里可燃性<b class='flag-5'>气体</b>浓度监测系统如何实现无线技改?

    氧化碳储能的原理 二氧化碳储能的应用

    氧化碳储能(CDES)是种新兴的储能技术,它基于压缩气体储能的原理,使用二氧化碳(CO2)作为工作介质,通过压缩和膨胀过程实现电能的存储与释放。
    的头像 发表于 04-25 16:06 3283次阅读

    可燃气体检测警报

    、产品简介 款基于MQ-2传感器及NE555设计的可燃气体检测警报仪。 二、应用场景 DIY,适用于检测封闭或者半封闭环境中可燃气体的浓
    的头像 发表于 04-18 14:22 387次阅读
    可燃<b class='flag-5'>气体</b>检测<b class='flag-5'>警报</b>仪

    HarmonyOS开发案例:【智能煤气检测】

    智能煤气检测系统通过实时监测环境中烟雾浓度,当一氧化碳浓度超标时,及时向用户发出警报
    的头像 发表于 04-16 17:28 852次阅读
    HarmonyOS开发案例:【智能煤气检测】

    以二氧化碳为原料的清洗方式在工业中的应用(

    以二氧化碳为基础原料的清洗正在经历前所未有的迅猛发展,基于二氧化碳的特性,目前在清洗领域中二氧化碳被用于以下4个方面:1、将二氧化碳预制成高密度干冰粒或干冰粉(以下统称干冰粒)的干冰清
    的头像 发表于 03-07 13:09 391次阅读
    以二<b class='flag-5'>氧化碳</b>为原料的清洗方式在工业中的应用(<b class='flag-5'>一</b>)

    如何预防配电柜电气火灾的发生?

    保证配电室环境的稳定安全,奥松电子提供配电室安全监测终端解决方案,旨在实时监控和管理配电设备的运行状态,确保电力系统的稳定运行。 多种气体传感器:监测二氧化碳一氧化碳、氧气、六氟化硫等气体
    的头像 发表于 01-18 17:11 842次阅读
    如何预防配电柜电气<b class='flag-5'>火灾</b>的发生?