工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino MegaとNextion HMIで作る高機能ウェザーステーション

必要なパーツと材料

パーツ数量備考
Arduino Mega 25601メモリ容量が大きいため必須
Arduino Mega Proto Shield1配線用
Nextion HMIディスプレイ 2.4インチ1シリアル通信で制御
SDカードリーダー1データログ用
DHT22 温湿度センサー1室内用
BME280 気圧・温湿度センサー1大気圧測定用
DS3231 RTCモジュール1高精度リアルタイムクロック
RXB6 433MHz受信機1外部センサー受信用
抵抗 10kΩ1
抵抗 475Ω1
NE555タイマーIC1ウォッチドッグ回路用
AC-DC 5V電源1

必要なツール

使用ソフトウェア

プロジェクト概要

Nextionディスプレイを選んだ理由

Arduino UNOではメモリ不足でリッチなグラフィック表示が困難ですが、Nextionディスプレイなら画像データをディスプレイ側に保持するため、Arduinoのメモリを大幅に節約できます。コントローラーから見れば単なるシリアルデバイスとして扱えます。

ただしUNOでは履歴グラフなどの高度な機能は実装困難です。そこでArduino Mega 2560を採用し、複数の無線センサーからデータを受信し、美しいグラフィックで表示する本格的なウェザーステーションを構築しました。

システムの核心アイデア

市販の無線ウェザーセンサー(オレゴンTHGN123Nなど)からデータを受信し、温度・湿度・気圧を表示。SDカードに定期記録し、履歴グラフを描画。気圧変化から天気予報(晴れ/曇り/雨・雪)を行い、背景画像全体で表現します(小さなアイコンではなく)。

ディスプレイ設計の工夫

Nextionは透過画像非対応のため、テキストウィジェットの背景を画面ごとに用意する必要があります。天気(晴/曇/雨・雪)× 時間帯(昼/夜)の6パターン、さらに雪の昼夜で計8画面をNextion Editorで作成。すべての画面でウィジェット名(温度、湿度、気圧)を統一し、Arduinoからは画面切り替え後に値を書き込むだけで済む設計です。

メイン画面の構成

上部: 室内温湿度、気圧、時刻・日付
左半分: メイン屋外センサーの温湿度(センサーIDは設定画面で選択)
右半分: 全センサー(内部含む)のデータを順次表示(最大4台の外部センサー対応)

DS3231 RTCにより正確な時刻を取得し、データログのタイムスタンプ、昼夜判定、ディスプレイ輝度制御に使用。

その他の画面

履歴データ画面

1日モードと8日モードをグラフ領域タップで切替。左ツールバーでセンサーID選択(内部はID=0)、上ツールバーでデータ種別(気圧/温度/湿度)選択。

設定画面

ウォッチドッグ回路でハングアップ対策

NE555タイマーを用いた外部ウォッチドッグ回路を実装。ArduinoのA2ピンから定期的にパルスが出ない場合、2〜3分で自動リセットします。この回路は他プロジェクトにも応用可能です。

結論

約半年間安定稼働。美しいグラフィックと豊富な機能を両立したウェザーステーションが実現できました。

ソースコードと回路図

GitHubリポジトリ:sfrwmaker/Weather_nextion

製造プロセス

  1. Arduino UNOとOLEDディスプレイでクラシックPongゲームを自作:ステップバイステップチュートリアル
  2. スマート貯金箱を作ろう:Arduino Nanoでコインアクセプターを制御
  3. Arduino Dueと3.2インチTFTで作る温度監視付きリアルタイムクロック
  4. ArduinoでBluetooth経由でLEDを制御 – シンプルDIYガイド
  5. Arduino MegaとNEO-6M GPSモジュールの接続:ステップバイステップガイド
  6. ArduinoとNokia 5110ディスプレイで自作電圧計:ステップバイステップガイド
  7. BME280 温湿度・気圧データを Nextion タッチスクリーンに表示
  8. Arduino Mega 2560搭載 総合トレーニングキット – センサー、モーター、カスタムPCB完備
  9. NextionディスプレイでFridgeyeアプリを構築:ステップバイステップガイド
  10. Arduino UNOとEthernetシールドで太陽放射を測定する自作ピラノメーター
  11. Arduino GPS+TFTタッチシールドで作るリアルタイム位置表示デバイス