亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino Nano 多传感器气象站:BMP280 + DHT11 + GUVA-S12SD + DS3231 + OLED

传感器套件

传感器 测量量程/接口 引脚映射
BMP280 气压 300~1100 hPa / 温度 -40~85°C / SPI CS→D10, MOSI→D11, MISO→D12, SCK→D13
DHT11 温度 0~50°C / 湿度 20~90% RH / 单总线 DATA→D2
GUVA-S12SD UV 指数 0~11+ / 模拟电压 OUT→A0
DS3231 RTC 时钟/日历 / I2C SDA→A4, SCL→A5
0.96″ SSD1306 OLED 128×64 白色 / I2C SDA→A4, SCL→A5(与 RTC 共用总线)

机箱设计

Autodesk Fusion 360 建模,Ender 3 打印(绿色 PLA,20% 填充,70 mm/s,需支撑),STL 文件随项目提供。机箱预留传感器探头窗口、OLED 透明窗、USB 供电口、复位键孔。

Arduino Nano 多传感器气象站:BMP280 + DHT11 + GUVA-S12SD + DS3231 + OLED

关键库安装

软件流程与显示页面

主循环按 5 秒轮询切换 4 个页面:

  1. 时钟页:DS3231 读取时/分/秒、AM/PM、年/月/日、星期(中文/英文均可)。
  2. 气压页:BMP280 读取气压(hPa)、海拔(基于当地基准气压 1005.47 hPa 计算)。
  3. 温湿度页:BMP280 温度 + DHT11 湿度,底部装饰位图条。
  4. UV 指数页:GUVA-S12SD 模拟电压换算 UV_index = (Vout / 0.1),整数显示。
Arduino Nano 多传感器气象站:BMP280 + DHT11 + GUVA-S12SD + DS3231 + OLED

核心代码片段

// UV 指数计算
float sensorValue = analogRead(A0);
float sensorVoltage = sensorValue / 1024.0 * 5.0;
int UV_index = sensorVoltage / 0.1;

// OLED 显示封装
display.clearDisplay();
display.setFont(&FreeSans9pt7b);
display.setCursor(x, y);
display.print(value);
display.display();

完整代码见 Code 栏,已整理为单 .ino 文件,含位图数组、字体设置、页面切换逻辑。

校准与注意事项

BMP280 海拔基准
代码中 bmp.readAltitude(1005.47) 的参数需替换为你所在地标准大气压(可查气象局网站)。
DS3231 首次授时
先运行库自带 DS3231_set.ino 通过串口写入当前时间,再烧录主程序。
DHT11 读取间隔
规范要求 ≥1 s,本项 5 s 切页自动满足。
I2C 总线共用
RTC 与 OLED 共用 A4/A5,需确保上拉电阻到位(模块板载通常已有)。

原理图

Arduino Nano 多传感器气象站:BMP280 + DHT11 + GUVA-S12SD + DS3231 + OLED

制造工艺

  1. 树莓派太阳能气象站DIY指南
  2. 树莓派 2 搭建户外气象站:接入 ADS‑WS1 串口气象站
  3. 树莓派自制气象站:每日邮件推送温湿雨数据
  4. 高级气象站 v2.0:BME280 实时监测温度/气压/湿度/海拔 (Windows 10 IoT Core)
  5. Arduino驱动的六发鸡尾酒自动调配站 – 打造你的专属智能调酒机
  6. 多位置温度传感器系统,助力智能家居集成
  7. 高性能 Arduino 气象气球数据记录器
  8. 自制 10 美元便携 Arduino 气象站 - Nano + DHT22 + BMP180 + LCD
  9. Arduino + ThingSpeak 实时气象监测站
  10. ESP8266 WiFi气象站:DHT22温湿度传感器 + ThingSpeak云端记录
  11. 基于 Arduino MKR GSM 1400 和 Hologram IoT 的智能腕带
  12. 智能健康监测站:Arduino、蓝牙与传感器实现远程生理指标监测