コンパクト気象ステーション:Arduino Nano & ESP8266 + BMP280 + OLED/Nokia LCD
必要な部品と用品
| Arduino Nano R3 | ×1 |
| BMP280 気圧センサーモジュール(I2C) | ×1 |
| Nokia 5110 LCD(84×48ドット) | ×1 |
| NodeMCU 1.0 (ESP-12E モジュール) | ×1 |
| 0.96インチ OLEDディスプレイ(128×64、I2C/SPI) | ×1 |
必要な工具
- はんだごて(汎用)
プロジェクトについて
このデバイスは1つの筐体に2つの独立したシステムを収めたコンパクトな気象ステーションです。
システム1: Arduino Nano + BMP280 + Nokia 5110 LCD(ローカル気圧計)
- BMP280(またはBMP180互換)で大気圧と温度を測定。
- EEPROMに過去の気圧データを時系列保存し、現在値、1時間前差分、3時間前差分を算出・表示。
- 気圧変化傾向(上昇/下降/変化なし)から短期的な天気予測が可能。
- スリープモード(ウォッチドッグタイマー使用)で消費電力を抑制し、約1分ごとに測定・更新。
- コードは shelvin.de の公開コードをベースに、標高補正(
druck_offset)を追加。
システム2: ESP8266 (NodeMCU) + OLED + Wi-Fi(天気予報表示)
- ESP8266がWi-Fi経由で OpenWeatherMap APIに接続し、3日間の天気予報を取得。
- OLEDディスプレイに予報(天気アイコン、最高/最低気温、降水確率等)を表示。
- 事前にOpenWeatherMapでAPIキーを取得し、スケッチに設定が必要。
- ライブラリ導入と詳細なセットアップ手順は こちらのガイド を参照。
筐体と組み立て
両システムは共通の電源(5V USB等)から給電可能ですが、完全に独立して動作します。Nokia LCDはバックライトなしで視認性が高く、OLEDは夜間も見やすい利点があります。
ソースコード(Arduino Nano側・気圧計)
完全なコードは長いため主要構造のみ示します。EEPROM循環バッファ、BMP180/280生ドライバ、Nokia 5110 LCDドライバ、スリープ制御を含みます。
// 気圧計メインループ(Arduino Nano)
#include <Wire.h>
#include <EEPROM.h>
#include <avr/sleep.h>
// EEPROM循環バッファ設定(1024バイト、4バイト/サンプル = 256サンプル = 256分)
int eepromAddr = 0, eepromMax = 1023;
int eepromDiff1 = 60; // 1時間前(60分)
int eepromDiff3 = 180; // 3時間前(180分)
// BMP180/280 キャリブレーションデータ読み出し・温度気圧測定関数群
// Nokia 5110 LCD 制御関数群(ASCII 5x7フォント内蔵)
// ウォッチドッグタイマーによるパワーダウンスリープ(約1秒×54回 = 54秒)
void setup() {
// EEPROMクリア、I2C初期化、BMPキャリブレーション読み出し
// LCD初期化(コントラスト設定等)
// ウォッチドッグ有効化、ADC/アナログコンパレータ無効化で省電力化
}
void loop() {
// 温度・気圧測定 → 移動平均フィルタ
// 現在気圧をEEPROMに記録(アドレス循環)
// 1時間前・3時間前の気圧をEEPROMから読み出し、差分計算・表示
// 温度表示
// 次スロットへアドレス進める
// パワーダウン睡眠(約54秒)
}
ESP8266側コードについて
ESP8266用スケッチは ThingPulse/esp8266-weather-station 等の公開ライブラリ・サンプルをベースに、APIキーと表示レイアウトを設定して使用します。Arduino IDEでESP8266ボードパッケージを導入後、必要ライブラリ(ESP8266WiFi, HTTPClient, ArduinoJson, SSD1306Wire 等)をインストールしてください。
回路図
全体配線図を参照。Arduino Nano側:BMP280(SDA/SCL) → A4/A5、Nokia 5110 → D8〜D12。ESP8266側:OLED(SDA/SCL) → D1/D2 (GPIO5/4)。共通GND、各々5V/3.3V給電。
製造プロセス
- カズー:古代ミルリトンから現代プラスチック玩具へ — 歴史、製造、未来
- Giftduino: ホビイストと教育者向け究極のArduinoギフトボックス
- BME280 温湿度・気圧データを Nextion タッチスクリーンに表示
- 高性能 Arduino 気象観測気球データロガーの製作ガイド
- 10ドルで作る携帯型Arduino気象観測ステーション – Nano、DHT22、BMP180、LCDで簡単DIY
- eDOT:高精度Arduino時計・気象ステーション(IRリモコン・自動輝度調整内蔵)
- ArduinoとThingSpeakで作るリアルタイム気象モニタリングシステム
- MKR GSM 1400で実現するリアルタイムIoT圧力監視:Arduino Cloud+Google Sheets連携
- DHT センサで作る信頼性の高い Arduino 気象ステーション
- Arduino Nano搭載レゴアーケードゲームボックス - バッテリー、LCD、5種類のゲーム内蔵
- ジャンパワイヤを排除:BreadShieldでArduinoをブレッドボードに直接接続