Funpack活动第8期,基于Arduino Nano 33 BLE Sense的环境监测站
Funpack活动第8期,基于Arduino Nano 33 BLE Sense的环境监测站,使用了第7期Mikrobus的OLED显示屏。
标签
Arduino
MPU
Funpack
涵尘者
更新2021-05-17
678

实现功能

利用NANO-33 BLE的传感器,搭建一个小型环境监测站用于监测户外环境。待监测的参数包括:

- 周边环境温度(精度:±0.1°C, ±0.1°F)
- 周边环境湿度(精度:±1%)
- 大气压强(精度:±0.1kPa, ±0.1psi)
- 日照强度(用于判断白天/夜晚)
- 周边平均噪声(精度:±1dB)

并通过对开发板外接显示屏显示所获取的信息。

 

代码展示

所用库

#include <Arduino_LPS22HB.h>
#include <Arduino_HTS221.h>
#include <Arduino_APDS9960.h>
#include <PDM.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

 

传感器数据读取

  pressure = BARO.readPressure();

  f_temperature = HTS.readTemperature(FAHRENHEIT);
  c_temperature = (f_temperature - 32) / 1.8;

  humidity    = HTS.readHumidity();


  while ( APDS.colorAvailable()) {
    APDS.readColor(r, g, b, a);
    Serial.println("a:");
    Serial.println(a);
  }

  //计算周边平均噪声
  while (!samplesRead);
  {
    uint32_t sample_max = 0;
    for (int i = 0; i < samplesRead; i++) {
      if (sampleBuffer[i] < 0)
        sampleBuffer[i] = -sampleBuffer[i];
      if (sampleBuffer[i] > sample_max)
        sample_max = sampleBuffer[i];
    }
    sample = 24 * log10(sample_max * 5);
  }
  samplesRead = 0;

数据打印

  //显示周边环境温度
  display.print(F("Temperature:"));
  display.print(c_temperature);
  display.println(F("C"));

  //显示周边环境湿度
  display.print(F("Humidity:"));
  display.print(humidity);
  display.println(F("%"));

  //显示大气压强
  display.print(F("Atmosphere:"));
  display.print(pressure);
  display.println(F("kPa"));

  //判断白天/夜晚
  display.print(F("Irradiance:"));
  if (a >= 3) {
    display.println(F("day "));
  } else {
    display.println(F("night "));
  }

  //显示周边平均噪声
  display.print(F("Noise:"));
  display.print(sample);
  display.println(F("dB"));

 

# 功能演示结果

本次在OLED屏幕上成功显示了:显示周边环境温度、显示周边环境湿度、显示大气压强、/判断白天/夜晚、显示周边平均噪声。

FmLj42oUKTpfhfrEWC1rLNaB9x3I

# 心得体会

本期的Arduino构架吸引来了很多人,但是一开始的进口清关,以及一些Digi-Key的失误打灭了很多人的热情,我的一个学弟也因此而退款放弃,很是可惜。

从个人来说,我轻视了Arduino,他比我想象中要难。我习惯了那种右键-跳转到申明的过程,Arduino这种近似“黑箱”的内部设计让我无从下手。加上事多,无法很好的进行深入学习,遗憾。

 

 

附件下载
Environmental_Monitor_Station.ino
基于Arduino Nano 33 BLE Sense的环境监测站的源码
团队介绍
仅涵尘一人的苦逼小团队。
团队成员
涵尘者
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号