内容介绍
内容介绍
根据要求完成如下任务:
任务二:环境监测站
利用NANO-33 BLE的传感器,搭建一个小型环境监测站用于监测户外环境。待监测的参数包括:
· 周边环境温度(精度:±0.1°C, ±0.1°F)
· 周边环境湿度(精度:±1%)
· 大气压强(精度:±0.1kPa, ±0.1psi)
· 日照强度(用于判断白天/夜晚)
· 周边平均噪声(精度:±1dB)
并通过对开发板外接显示屏显示采集到的数据。
我所使用显示屏幕是 ssd1306 SPI 接口的 OLED 屏幕,显示采集到的环境数据。
本次实现功能的主要代码如下所示
初始化传感器、OLED 显示屏相关函数:
//初始化相关配置
u8g2.begin(); //选择U8G2模式,或者U8X8模式
u8g2.enableUTF8Print();
//配置串口
Serial.begin(9600);
PDM.setGain(20);
PDM.onReceive(onPDMdata);
//初始化麦克风传感器
if (!PDM.begin(channels, frequency)) {
Serial.println("PDM 启动失败\r\n");
while (1);
}
//初始化温湿度传感器
if (!HTS.begin()) {
Serial.println("无法初始化湿度温度传感器\r\n");
while (1);
}
//初始化环境光照传感器
if (!APDS.begin()) {
Serial.println("初始化APDS-9960传感器时出错\r\n");
}
//初始化压力
if (!BARO.begin()) {
Serial.println("无法初始化压力传感器\r\n");
while (1);
}
下边是采集到的传感器值并进行显示:
// 读取光照传感器的值
while (! APDS.colorAvailable()) {
delay(5);
}
int r, g, b;
APDS.readColor(r, g, b);
float gray = 0.3*r+0.6*g+0.1*b; //计算光照值
// 读取温湿度传感器的值
float temperature = HTS.readTemperature();
float humidity = HTS.readHumidity();
u8g2.clearBuffer(); // 清除内部缓冲区
//使用个GB2312 字体
u8g2.setFont(u8g2_font_wqy12_t_gb2312a ); // choose a suitable font
//光照值大于 20 就显示白天
if (int(gray) > 20 )
{
u8g2.setCursor(0,12);
u8g2.print("day!");
}
//否则就显示晚上
else
{
u8g2.setCursor(0,12);
u8g2.print("night!");
}
// 显示温度传感器的值
u8g2.setCursor(0,25);
u8g2.print("temp = ");
u8g2.print(temperature);
u8g2.print("°C");
// 显示湿度传感器的值
u8g2.setCursor(0,35);
u8g2.print("Humiy = ");
u8g2.print(humidity);
u8g2.print("%");
// 显示气压传感器值
float pressure = BARO.readPressure();
u8g2.setCursor(0,45);
u8g2.print("pres = ");
u8g2.print(pressure);
u8g2.print("kPa");
//读取声音传感器的值
dB = get_sam();
u8g2.setCursor(0,55);
u8g2.print("dB = ");
u8g2.print(dB);
u8g2.print("dB");
活动的心得体会:作为一个嵌入式开发人员,熟练掌握Arduino开发技能是必须的,这也是我参加本次活动的初衷;当然对这次的开发学习的过程来说,用 Arduino 硬件可以快速搭建原型,并用于测试、验证,这点对嵌入式工程师来说,太友好了,给 Arduino 点个赞。
意见:希望 Funpack 活动,多出一些基础并有趣的活动,这样小白可以快速入门参与进来,老鸟可以学习一些新的东西。
附件下载
33ble.ino
团队介绍
评论
0 / 100
查看更多
猜你喜欢
Funpack第八期-Arduino nano 33 ble sense环境监测站Funpack第八期活动,用Arduino nano 33 ble sense板子做一个环境监测站,监测的数据有周边环境温度,湿度,大气压强,噪声。
xbreeze
898
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