FastBond环境监测之空气指标检测
一个环境检测仪器,使用了BME680空气传感器,max32660评估板,和ADI的AD8531运算放大器实现相关功能。
标签
环境监测
空气指标
exec
更新2021-12-24
884

项目介绍

非常开心能够参加得捷电子和硬禾学堂一起推出的fastbond活动,我设计的是一个环境检测仪器,使用了BME680空气传感器,max32660评估板,和ADI的AD8531运算放大器可以实现以下功能:

  • 对温度的检测;
  • 对湿度的检测;
  • 对空气中有害气体的检测;
  • 对气压的检测。

芯片详情

   美信的MAX32660微控制器,它是一款超低功耗、性价比突出、集成度非常高的32位控制器,非常适合电池供电或是无线传感器的应用。芯片的封装非常小,可以有效减少pcb的面积,它的工作频率是96MHz,同时它还采用了带浮点运算功能的M4内核,并且带有256KB Flash和96KB SRAM。足以满足我们本次的设计要求。

FkyBH5O3Zmp2CVGIUrmJtQm9d95K

  同时在本次设计中我选择的ADI的AD8531芯片,它是高输出的运算放大器,在这里我们把它作为供电芯片使用。

Fh0AK39g823cOevJu6WwMW9g6W8g

   传感器芯片使用的是BME680组合式的传感器,可以测量挥发性的有机物,温度,湿度,气压这四个参数,非常适用于检测空气质量,这个芯片的体积非常小,功耗低,可以适用于低功耗的场合,比如可穿戴设备等。

  FtTO4XjIdJKRPPfwe4zNzL071I9Q

  BME680环境传感器采用I2C接口,板载电源稳压芯片,兼容性非常的好,可直接兼容3.3V和5V系统,同时预留了SPI接口,方便做扩展 ,产品的集成度高,的同时检测四个环境参数,是气象站,智能家居,物联网,可穿戴场景的理想选择。

读取数据

         我将传感器采集的数据通过串口发送到电脑上,解析出数据并画出变化的波形

rslt = bme68x_set_op_mode(BME68X_FORCED_MODE, &bme);
        bme68x_check_rslt("bme68x_set_op_mode", rslt);
        /* Calculate delay period in microseconds */
        rslt = bme68x_get_data(BME68X_FORCED_MODE, &data, &n_fields, &bme);
        bme68x_check_rslt("bme68x_get_data", rslt);
        if (n_fields)
        {
          printf("a:%.2f,%.2f,%.2f,%.2f\n",
                   data.temperature,
                   data.pressure,
                   data.humidity,
                   data.gas_resistance);
}

FjvVjbtbz_ohBJjM5qD8MILyywnU

Fv_9wLYlzbqFwzvSlI5KGQ9T9vzC

我把传感器放在茶杯口处,可以在数据中看出,湿度快速上升,空气的电阻也很快下降,温度没有太多变化。

总结

博世推出的传感器使用起来非常的友好,有关的算法处理已经编写为一个库函数,完善几个函数指针(读取,写入,延时),就可以获取数据,方便了移植过程,在代码中也会弹出各种故障码,方便排查问题。

void bme68x_check_rslt(const char api_name[], int8_t rslt)
{
    switch (rslt)
    {
    case BME68X_OK:

        /* Do nothing */
        break;
    case BME68X_E_NULL_PTR:
        printf("API name [%s]  Error [%d] : Null pointer\r\n", api_name, rslt);
        break;
    case BME68X_E_COM_FAIL:
        printf("API name [%s]  Error [%d] : Communication failure\r\n", api_name, rslt);
        break;
    case BME68X_E_INVALID_LENGTH:
        printf("API name [%s]  Error [%d] : Incorrect length parameter\r\n", api_name, rslt);
        break;
    case BME68X_E_DEV_NOT_FOUND:
        printf("API name [%s]  Error [%d] : Device not found\r\n", api_name, rslt);
        break;
    case BME68X_E_SELF_TEST:
        printf("API name [%s]  Error [%d] : Self test error\r\n", api_name, rslt);
        break;
    case BME68X_W_NO_NEW_DATA:
        printf("API name [%s]  Warning [%d] : No new data found\r\n", api_name, rslt);
        break;
    default:
        printf("API name [%s]  Error [%d] : Unknown error code\r\n", api_name, rslt);
        break;
    }
}
附件下载
bme68x.zip
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号