Funpack第八期 - 环境监测站
Funpack第八期 - 环境监测站。利用 Arduino Nano 33 BLE Sense 的传感器,搭建一个小型环境监测站用于监测户外环境。
标签
Arduino
传感器
创酷乐
更新2021-05-18
794

任务目的

  • 搭建一个小型环境监测站用于监测户外环境
  • 监测周边环境温度(精度:±0.1°C)
  • 周边环境湿度(精度:±1%)
  • 大气压强(精度:±0.1kPa, ±0.1psi)
  • 日照强度(用于判断白天/夜晚)
  • 周边平均噪声(精度:±1dB)

 

任务分解

  • 通过板载传感器HTS221来获温度和湿度取值
  • 通过板载传感器LPS22HB来获取气压值
  • 通过板载传感器APDS9960来获取RGB读数,使用亮度公式计算亮度值
  • 通过板载传感器MP34DT05来获取PDM读数,通过RMS算法计算分贝值

 

作业完成展示

我使用了一块SSD1306双色OLED来显示数据。屏幕比较小,没有加上数据单位。

FoVHt7eJQkqweHhWAVICqrNYa8E4

 

主要代码片段及解释

为了代码高亮利于阅读,我把主要代码摘选在IDE里做了注释并截图

FrhnyuXCP6H6tEFIVnYId3Z1x6sf

任务历程

采购

经过漫长的10多天等待,终于在51节尾拿到了Arduino Nano33 BLE Sense开发板,小小的个头很是精致。

FoqkAfX7ylw-8GlfAUS4A1-2ZKghFv9YOuAZH36KLsKCroJdXjQgegkR

任务算法说明

开发板上,温湿度和气压读数都是直接量,读取出来直接显示就可以。自带传感器示例就有RGB读取转亮度公式,可以使用。PDM传感器读取出来的是声音采样时间点的幅值,需要寻找公式转化为分贝。

维基百科的分贝页面给出了三个转换公式,经过试用选择了CPU负载最小的。

FiCO1hWullsVx2uLSPUk_7E9M2Ae

编程调试

最后的编程调试就比较简单了,读完读数,然后显示在显示屏上。

FjNjoC_7h48qxClRqi2IAR6D95bF

 

几点吐槽

  • 得捷购物的时间真的是太长了,不仅发货用了10来天,货到了海关又卡了5天。
  • Nano33板子的排针位置有很多助焊剂残留,可能是主控芯片上有丝印无法洗板。
  • 温湿度传感器摆放位置在板子中央,PCB没有物理隔离槽,导致温度读数偏高许多。
附件下载
Funpack8_EcoMonitor_Le.zip
Arduino 源代码
团队介绍
来自杭州的个人创客,第一次参加Funpack项目。
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号