Funpack第八期-Arduino nano 33 ble sense环境监测站
Funpack第八期活动,用Arduino nano 33 ble sense板子做一个环境监测站,监测的数据有周边环境温度,湿度,大气压强,噪声。
标签
显示
xbreeze
更新2021-05-18
647

任务二介绍

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

  • 周边环境温度(精度:±0.1°C, ±0.1°F)

  • 周边环境湿度(精度:±1%)

  • 大气压强(精度:±0.1kPa, ±0.1psi)

  • 日照强度(用于判断白天/夜晚)

  • 周边平均噪声(精度:±1dB)

任务分析

  • 环境温度,湿度使用温湿度传感器HTS221获取。

  • 大气压强使用板LPS22气压传感器获取。

  • 日照强度由于精度要求不高,使用颜色传感器APDS9960获取颜色后和阈值比较后判断白天/夜晚。

  • 平均噪声使用MP334DT05- A 麦克风,经过运算得到。

  • 显示方式通过oled屏显示。

核心代码

 //读取气压
  float pressure = BARO.readPressure();
  //读取温度
  float temperature = HTS.readTemperature();
  //读取湿度
  float humidity    = HTS.readHumidity(); 
  //读取光强
  while (! APDS.colorAvailable()) {//如果没有值 一直读取
    delay(100);
  }
  int r, g, b, a;
  APDS.readColor(r, g, b, 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];
  }
  
  uint32_t sample = 24*log10(sample_max*5); //转换分贝
  samplesRead = 0;

  display.clearDisplay(); //清空屏幕
  display.setCursor(0,0); //设置起点
  display.setTextSize(3); //设置字体
  display.setTextColor(SSD1306_WHITE); //设置字体颜色
  //显示气压
  display.print(pressure);
  display.println(F("kPa"));
  //显示温度
  display.println(temperature);
  display.drawBitmap(60,16,c,16,16,WHITE);
  //显示湿度
  display.print(humidity);
  display.println(F("%"));
  //显示分贝
  display.print(sample);
  display.print(F("dB"));
  //显示光暗
  if(a>2){
    display.print(F(" day"));
  }else{
    display.print(F(" night"));
  }
  //刷新屏幕
  display.display(); 

演示

Fu9thDgiOkimZRlgA_onnVS82robFl9CTfieIcv6aePjjkg4icEoWTZN

因为0.96的屏幕太小了,所以我用了两次显示。

  1. Pres是大气压
     
  2. Tempe是当前温度
     
  3. Humi是湿度
     
  4. Sound是噪声分贝
     
  5. 当判断是白天的时候显示“day”,当判断是晚上显示“night

   速度是5秒刷新一次。

心得体会

通过本次活动让没有接触过arduino的我快速上手,Arduino的的简单快捷,有庞大的用户群体,还有非常多的库让arduino变得更加快速入门,最后感谢硬禾学堂和得捷电子.

附件下载
1.ino
完整代码
团队介绍
xbreeze。
团队成员
xbreeze
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号