新闻  |   论坛  |   博客  |   在线研讨会
同事都羡慕的多功能神器!告别甲醛、PM2.5,预防烟雾火焰
智能物联研习社 | 2021-04-19 17:11:03    阅读:4521   发布文章

在快节奏的都市生活下,大多数人 90% 的时间被“封印”在室内,要么在办公室,要么在家。殊不知,看不见、摸不着的室内安全危机可能潜伏在四周。近年来,我们逐渐对室内环境的健康与安全提出了更精细化、智能化的需求,环境检测仪则扮演了家居、办公等场景的“安全小卫士”

但据调查发现,现有市面上的环境检测仪存在如下痛点:

  • 功能单一,检测结果不精准;

  • 无法与空气净化器/燃气阀等其他设备智能联动;

  • 无法手机 App远程查看;

  • 价格太高,无法接受;


怎么办?怎么办?怎么办?

为了解决上述这些痛点,我们设计了一款新的个人健康空气管理智能硬件方案,环境安全卫士

该方案功能强大,可以检测当前环境中甲醛,PM2.5 的浓度,并且将这两个数值在涂鸦 App 中实时显示。还可以实时监控烟雾,燃气,火焰这三种物质的浓度,当检测对象的浓度超过一定值时,会触发报警,联动其他智能设备,保障用户自身和财产安全。

戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  


物料清单硬件 (7)软件 (3) 其它 (6)

  • WB3S 云模组 数量:1由涂鸦智能开发的一款低功耗嵌入式Wi-Fi+BLE 双协议模组。它由一个高集成度的无线射频芯片BK7231T和少量外围器件构成,内置了Wi-Fi网络协议栈和丰富的库函数。


  • 四通道模拟多路复用/解复用器芯片 RS2255 数量:1一款是数字控制的模拟开关,它的导通电阻只有24欧姆,漏电流只有1nA。


  • ZE08-CH2O 甲醛传感器模组 数量:1模组利用电化学原理,对空气中存在的CH2O进行探测,具有良好的选择性,稳定性。


  • ZPH02 空污粉尘传感器数量:1整合了红外 PM2.5 检测原理和较为成熟的 VOC 检测技术,能够同时检测环境中 PM2.5 和 VOC。


  • MQ-2 烟雾传感器数量:1可用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。


  • 火焰检测红外接收管数量:1探测火源或波长在 700 ~ 1000 nm 范围内的热源。


  • (可选)一路继电器数量:1当异常发生时,自动断开 220V 市电,降低损失。


该方案运用涂鸦智能 Wi-Fi+Bluetooth LE 模组,通过模组与多种环境传感器进行交互,采集对应物质的数据,例如甲醛与 PM2.5 浓度等物质,并将数据上传至涂鸦云平台。用户通过手机 App 即可查看当前空气中甲醛和 PM2.5,以及燃气、火焰、烟雾等有害物质的实时情况,一旦出现数据超标情况,App 会迅速报警提示。


步骤第一步:选择硬件方案一:主控方案

主控单元选择 WB3S 模组。WB3S 模组是一款低功耗嵌入式 Wi-Fi+BLE 双协议模组。它由一个高集成度的无线射频芯片 BK7231T 和少量外围器件构成,内置了 Wi-Fi 网络协议栈和丰富的库函数。

由于模组的 ADC 口资源不足,我们还需对其进行适当修改,拓展 ADC 接口。在电路中增加一款四通道模拟多路复用/解复用器芯片 RS2255,这是一款是数字控制的模拟开关,导通电阻只有 24 Ω,漏电流只有 1nA。

本方案使用了较多传感器,为了减少走线,使整体更加简洁美观,主控板需要引出各种传感器接口,而且各个模块与主控板的通信接口电平存在不匹配的现象,模块供电电压也存在差异。为了解决上述问题:

戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  

1:甲醛检测传感器方案

本方案采用通用型、小型化的 ZE08-CH2O 型电化学甲醛模组。

模组利用电化学原理,对空气中存在的CH2O进行探测,具有良好的选择性,稳定性。内置温度传感器,可进行温度补偿。同时具有数字输出与模拟电压输出,方便使用。


戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  

PM 2.5 检测采用 ZPH02 空污粉尘传感器。它整合了红外 PM2.5 检测原理和较为成熟的 VOC 检测技术,能够同时检测环境中 PM2.5 和 VOC。

该传感器中 PM2.5 检测采用粒子计数原理,可灵敏检测直径 1μm 以上灰尘颗粒物,VOC 传感器对有机挥发气体具有极高的灵敏度。


3:烟雾检测传感器方案

烟雾检测采用MQ-2烟雾传感器,该传感器可用于家庭和工厂的气体泄漏监测装置,适宜于液化气、苯、烷、酒精、氢气、烟雾等的探测。


4:燃气检测传感器方案

燃气检测采用MQ-4气体传感器。该传感器对甲烷,天燃气有很高的灵敏度,广泛适用于家用气体泄漏报警器、工业可燃气体报警器、便携式气体检测器。

5:火焰检测方案

火焰检测采用红外接收管。该管可以探测火源或波长在 700 ~ 1000 nm 范围内的热源。

  • 当无红外光照时,有很小的饱和和反向漏电流(暗电流),此时光敏管不导通。

  • 当有红外光照时,饱和反向漏电流马上增加,形成光电流,在一定的范围,它随入射光强度的增大而增大。

为了减少开发周期,本次采购了市面上常见的火焰传感器模组:



六:拓展应用场景

为了增加产品的可使用性,我们选择了一款带台灯的插座,对其进行改造。

将环境安全卫士固定在台灯支架上,在检测房间空气质量的同时,还可以检测插座上的设备是否出现火灾等危险情况。例如,对手机等锂电池设备供电引发的安全问题进行提前通知。


当然,您也可以根据自身需求,将本环境安全卫士和其他设备进行关联。

台灯内可增加一路继电器控制,当异常发生时,自动断开 220V 市电,降低损失。


第二步:硬件搭建一:组合传感器

由于之前已经设计了转接板,因此该步骤比较简单,只需要根据结构空间要求,将各个传感器模组安插在对应的位置上,并完成焊接固定。

为了使走线更加精简,可直接将甲醛传感器的VCC,GND,TXD 焊到 P5 的VCC、GND、RXD,其他传感器同理。



二:整机搭建

  1. 将台灯的灯罩拆开,可以看到里面的 LED 灯板和两根正负电源线,用电烙铁等工具将 LED 灯板拆除。

  2. 将台灯底座的四个海绵垫拆除,卸下螺丝,可以拆除底座。

  3. 将主控板固定在灯罩区域适当位置,将两根正负电源线分别焊到主控板上的 P6 端。这样,当按下插座上的 台灯 按钮时,插座就可以给主控板提供 5V 电压,注意区分正负极。

  4. 修改台灯电路,在火线电路中串入一个继电器,并引出继电器控制线。

  5. 将上一步引出的控制线焊于主控板 P2 的 Sig 处,并安装灯罩,底座。

当然,您也可以激发自己创意,给它穿上不同外衣。


这样,整机搭建基本完成。

另外,也可以根据自己的创意,设计出其他外观,如下所示

戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  


第三步:在涂鸦 IoT 平台创建产品

  1. 进入 涂鸦 IoT 平台,点击创建产品。分类:选择 传感 > 多功能传感器方案:选择 自定义方案协议:选择 WIFI+蓝牙

  2. 根据自身需要选择功能。若缺少自身需要的功能,可自定义功能,根据实际需求进行配置。


  1. 选择 App 面板,开始调试时可选择调试面板,后面可根据自身需要进行自由配置面板。

  2. 选择开发方式,下载 SDK 和相关文件。我们选择 SDK 开发,使用 WB3S 模组进行开发。

第四步:固件开发

戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  


本 Demo 代码 是基于 1.0.2 协议版本的 SDK 进行开发的。如果您第一次接触 SoC 开发,可以在 涂鸦 GitHub Repo 上拉取代码进行学习和开发。该代码中的 apps/template-demo 相对简单,可在其基础上进行开发。

本 Demo 主要是通过串口、ADC、检测引脚高低电平三种方式获取传感器信息的。下面将以这三种方式进行简单的介绍。

一:串口类传感器(甲醛和 PM 2.5)
  • 甲醛传感器相关资料

  • PM2.5传感器资料

通过阅读甲醛传感器的资料我们可以发现,传感器数据上传格式和计算方法如下:

 /***********************************************************
 *   Function:  get_ch2o_sensor_value
 *   Input:     none
 *   Output:    none
 *   Return:    none
 *   Notice:    得到并上传甲醛的数据
 ***********************************************************/
static VOID get_ch2o_sensor_value(VOID)
{
    UINT_T  buff_ret, find_head_index = 0;
    // 甲醛数据高位,低位
    UCHAR_T ch2o_data_high, ch2o_data_low;
    // 校验和
    UCHAR_T check_sums = 0x00;
    // 串口数据缓存区
    UCHAR_T ch2o_receive_buffer[CH2O_BUFFER_SIZE];
    // 指向甲醛数据头部
    UCHAR_T *p_ch2o_value = NULL;

    memset(ch2o_receive_buffer, 0, sizeof(ch2o_receive_buffer));

    // 读取串口数据
    bk_uart_recv(CH2O_SENSOR_UART, ch2o_receive_buffer, CH2O_BUFFER_SIZE, 0xFFFF);

    // for (find_head_index = 0; find_head_index<CH2O_BUFFER_SIZE; find_head_index++) {
    //     PR_NOTICE("ch2o_receive_buffer[%d] = %02x", find_head_index, ch2o_receive_buffer[find_head_index]);
    // }

    //寻找 ch2o 传感器发送过来的头部
    for (find_head_index = 0; find_head_index<CH2O_BUFFER_SIZE; find_head_index++) {
        if (ch2o_receive_buffer[find_head_index] == 0xff && \
            ch2o_receive_buffer[find_head_index+1] == 0x17 && \
            ch2o_receive_buffer[find_head_index+2] == 0x04){
            //PR_NOTICE("find head is %d", find_head_index);
            break;
        }
    }

    //本次采集数据不完整
    if (find_head_index > 11) {
        PR_ERR("ch2o get uart data no complete!");
        return;
    }

    //将指针指向 ch2o 数据中的头部
    p_ch2o_value = ch2o_receive_buffer + find_head_index;

    //检验和,确认读取的数据的准确性
    check_sums = ch2o_check_sum(p_ch2o_value, 9);
    if (check_sums != *(p_ch2o_value + 8)) {
        PR_ERR("ch2o check_sums error");
        return;
    }

    ch2o_data_high = *(p_ch2o_value+4);
    ch2o_data_low = *(p_ch2o_value+5);

    gs_air_box.ch2o_value = ch2o_data_high * 256 + ch2o_data_low;

    //PR_NOTICE("ch2o value is : %d .", gs_air_box.ch2o_value);

    //上传 ch2o 数据到涂鸦云
    updata_dp_single(gs_air_box.dp_ch2o_value, PROP_VALUE, gs_air_box.ch2o_value);

    return;
}

校验和的计算方式为:

校验和 = (取反(Byte1+Byte2+......+Byte7))+1

 /***********************************************************
 *   Function:  ch2o_check_sum
 *   Input:     none
 *   Output:    none
 *   Return:    none
 *   Notice:    甲醛数据校验和
 ***********************************************************/
static UCHAR_T ch2o_check_sum(UCHAR_T *data, UCHAR_T len)
{
    UCHAR_T i, tempq = 0;
    data += 1; //指向data[1]

    for(i=0; i<(len-2); i++)
    {
        tempq += *data;
        data++;
    }

    tempq = (~tempq) + 1;

    return (tempq);
}

PM 2.5 数据的获取方法和甲醛数据很相似,这里不再过多介绍。

戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  


第五步:整机演示一:实时显示当前空气状况

烧录授权完成后,设备就可以正常配网了。有关模组烧录授权的详情,请参考 WB 系列模组烧录授权。

连接 Wi-Fi,打开蓝牙,按照配网流程成功配网后,即可使用涂鸦智能 App 控制设备。已经配网成功的设备,可长按按键再次进入配网模式。环境安全卫士在 App 上的显示界面:


二:报警

当烟雾,燃气或者火焰三者中有一种的浓度大于设定值,则涂鸦智能 App 会显示报警状态,并且断开 220V 电压。环境安全卫士在 App 上的显示界面:


到此,就完成“安全小卫士”咯~是不是很心动,快来DIY属于自己的多功能环境检测仪吧~

戳以下链接,回复“环境检测仪2”,即可获取50元模组券以及详细开发者资料,手慢无!!

 https://www.wjx.cn/vj/wFXuAGU.aspx  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客