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

使用 Arduino UNO、BMP280 传感器与 LCD 构建简易气象站

元器件与物料

元器件 数量 备注
Arduino UNO 1 主控板
Adafruit 标准 LCD - 16x2 白字蓝底 1 显示屏
GY-BM E/P 280 (BMP280 模块) 1 气压/温度传感器
电阻 221 欧姆 1 LCD 对比度/背光调节
跳线 (通用) 17 连接用
UTSOURCE 电子元器件 1 赞助商提供

软件与在线服务

项目简介

这是一个基于 Arduino UNO、BMP280 传感器和 16x2 LCD 的简易气象站首个版本。该项目由 UTSOURCE 赞助,作者表示正在开发 v2.0 无线版本,敬请关注更新。

使用 Arduino UNO、BMP280 传感器与 LCD 构建简易气象站
使用 Arduino UNO、BMP280 传感器与 LCD 构建简易气象站

代码

Arduino 代码 (C/C++)

以下代码可将传感器数据发送至 LCD 显示:

#include <LiquidCrystal.h> // LCD 库
#include <BMP280.h>      // BMP280 传感器库

BMP280 bmp;                          // 初始化传感器
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 初始化 LCD,请确保接线正确

#define P0 1013.25        // 标准大气压 (hPa)
#define contrast 9        // 对比度调节引脚
#define brightness 10     // 背光亮度调节引脚

double T = 0;             // 温度初值
double P = 0;             // 气压初值
char measure = 0;

void collectData() {
  measure = bmp.startMeasurment();
  if (measure != 0) {
    delay(measure);
    measure = bmp.getTemperatureAndPressure(T, P);
    if (measure != 0) {
      P = P + 17;         // 传感器误差修正:+17 hPa
      T = T - 0.8;        // 传感器误差修正:-0.8°C
      lcd.clear();
      lcd.print("T: ");
      lcd.print(T);
      lcd.print(" C");
      lcd.setCursor(0, 1);
      lcd.print("P: ");
      lcd.print(P);
      lcd.print(" hPa");
    } else {
      lcd.print("Error.");
    }
  } else {
    lcd.print("Error.");
  }
}

void setup() {
  lcd.begin(16, 2);
  pinMode(contrast, OUTPUT);
  pinMode(brightness, OUTPUT);
  analogWrite(contrast, 100);   // 对比度建议值,可自行调整
  analogWrite(brightness, 255); // 亮度建议值,可自行调整

  if (!bmp.begin()) {
    delay(1000);
    lcd.print("Init. failed.");
    lcd.setCursor(0, 1);
    delay(1000);
    lcd.print("Check wiring.");
    while (1); // 初始化失败则停在此处
  } else {
    lcd.print("Init. OK.");
  }
  bmp.setOversampling(4); // 设置过采样率
  delay(2000);
  collectData();
}

void loop() {
  collectData();
  delay(2000); // 每 2 秒刷新一次
}

原理图

按以下接线图连接即可避免问题:

使用 Arduino UNO、BMP280 传感器与 LCD 构建简易气象站

制造工艺

  1. 树莓派 2 搭建户外气象站:接入 ADS‑WS1 串口气象站
  2. 树莓派自制气象站:每日邮件推送温湿雨数据
  3. 高级气象站 v2.0:BME280 实时监测温度/气压/湿度/海拔 (Windows 10 IoT Core)
  4. Arduino驱动的六发鸡尾酒自动调配站 – 打造你的专属智能调酒机
  5. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  6. DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
  7. Pixel Chaser:Arduino Nano 单键 NeoPixel 追逐小游戏
  8. 高性能 Arduino 气象气球数据记录器
  9. 自制 10 美元便携 Arduino 气象站 - Nano + DHT22 + BMP180 + LCD
  10. eDOT:基于 Arduino 的精密时钟与气象站,内置红外遥控
  11. Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
  12. Arduino + ThingSpeak 实时气象监测站