内容介绍
内容介绍
任务二介绍
利用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();
演示
因为0.96的屏幕太小了,所以我用了两次显示。
-
Pres是大气压
-
Tempe是当前温度
-
Humi是湿度
-
Sound是噪声分贝
- 当判断是白天的时候显示“day”,当判断是晚上显示“night”
速度是5秒刷新一次。
心得体会
通过本次活动让没有接触过arduino的我快速上手,Arduino的的简单快捷,有庞大的用户群体,还有非常多的库让arduino变得更加快速入门,最后感谢硬禾学堂和得捷电子.
附件下载
1.ino
完整代码
团队介绍
xbreeze。
团队成员
xbreeze
评论
0 / 100
查看更多
猜你喜欢
Funpack第八期-Arduino nano 33 ble sense环境监测站任务二:环境监测站利用NANO-33 BLE的传感器, 搭建一个小型环境监测站用于监测户外环境。
2t _2t
1612
Funpack第八期 — Arduino Nano 33 BLE Sense 环境监测站利用 Arduino Nano 33 BLE Sense 的板载传感器,搭建一个小型环境监测站用于监测户外环境,待监测的参数包括温湿度、大气压强、日照强度、周边平均噪声等信息。
枫雪天
1148
Funpack 第八期 Arduino Nano 33 BLE Sense 环境监测站使用Arduino Nano 33 BLE Sense检测环境参数,并通过OLED显示屏显示
tinysheeep
1181