Nextionディスプレイで遊ぶ
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> ![]() |
|
アプリとオンラインサービス
> ![]() |
| |||
|
このプロジェクトについて
nextionディスプレイはArduinoのプログラムスペースを節約できますか?
カラフルなグラフィックを使用して、より魅力的なプロジェクトを作成したい場合があります。残念ながら、美しいグラフィックには、グラフィカルライブラリルーチン用のコントローラメモリや、画像を保存するためのSDカードメモリなどの外部ストレージなど、大量のリソースが必要です。一方、Arduinoコントローラーはリソースの量が限られており、豊富なグラフィカルプロジェクトには完全には適していません。リソース要件を減らすために、nextionディスプレイを使用できます。この場合、画像用の外部ストレージは必要なく、メモリ要件を大幅に削減できます。
コントローラの観点から見ると、nextionディスプレイは単なるシリアルデバイスであり、通常の白黒液晶ディスプレイよりもリソースが高価ではありません。では、Arduino UNOとnextion画面に気象観測所を構築することは可能ですか?
答えは正確ではありません。ビルドすることはできますが、コントローラーのメモリが不足しているため、機能が非常に制限されます。履歴グラフなどを含めることはできません。豊富な機能を備えた気象観測所を構築するには、より高度なマイクロコントローラーが必要です。
この記事では、多くのワイヤレス気象センサーから気象データを受信する魅力的なグラフィックスとデータロギングを備えた注目の気象観測所を構築する方法を紹介します。この気象観測所は、nextiondislayとarduinomega2560に基づいています。
主なアイデア
このような外部気象センサーがすでにあるか、有名なメーカーであるオレゴン、THGN123Nによって製造されていると仮定しましょう。これらの外部センサーから気象データを受信し、気温、湿度、気圧を表示し、定期的にSDカードにデータを保存し、履歴データのグラフを描画する独自の中央ユニットを作成します。また、中央処理装置は、気圧の変化に基づいて、ある種の天気予報を作成します。
この気象観測所ユニットの主な特徴は、他の気象観測所のような小さなアイコンだけでなく、背景画像を使用して天気予報を表示することです。
ディスプレイスタント
nextionディスプレイの大きな欠点は、透明な画像がディスプレイファームウェアでサポートされていないことです。したがって、丸い要素を作成することはできません。カスタム画像上にテキストデータを表示するには、テキストウィジェット内で「トリミングされた」背景を使用する必要があります。私の場合は、表示の背景が変更されたときに、それに応じてすべてのテキストウィジェットの背景を変更する必要があることを意味します。したがって、天気予報ごとにいくつかの完全な画面を作成する必要があります。
一方、気圧の変化を利用して、晴天、曇り、雨(雪)の3種類の天気予報を作成できます。また。昼と夜の2つの主要な日期間があります。したがって、8つの異なる画面を作成する必要があります:
- 晴れ(晴天、日)
- 月(晴天、夜)
- 曇りの日
- 曇りの夜
- 雨の日
- 雨の夜
- 雪の日
- 雪の夜
これらの画面はすべて、nextioneditorを使用してnextionディスプレイ内に作成する必要があります。これらの画面はすべて、センサーデータのテキストフィールド(温度、湿度、圧力)に同じウィジェット名を共有しています。コントローラが画面を更新するとき、最初に目的の背景を持つ対応する画面を選択し、次にディスプレイウィジェット内のセンサーデータを更新します。
メイン画面データ
メイン画面は3つの主要な領域に分かれています。ディスプレイの上の行には、内部センサーデータ(自宅の温度と湿度、気圧、現在の時刻と日付)が表示されます。私たち全員が通常の窓のある家に住んでいると仮定したので、気圧は家の内外で同じです。そのため、コントローラーには、大気圧を正確に測定するためのメインモジュール内の圧力センサーが1つだけあります。
<図>
画面の左半分には、メインのセンサーデータである温度と湿度が表示されます。画面にメインの外部センサーデータを常時表示しておくと便利です。メインセンサーのIDは、セットアップ画面で定義できます。使用可能なセンサーIDのリストから必要なIDを選択できます。したがって、しばらくお待ちください。すべての外部センサーが信号をコントローラーに送信するまでお待ちください。通常、約2分かかります。
画面の右側には、すべての外部センサーと内部センサーからのデータ(センサーID、温度、湿度)が表示されます。情報は定期的に変更されるため、すべてのセンサーからのデータを監視できます。コントローラは最大4つの外部センサーをサポートします。外部センサーが1つしかない場合は、内部センサーのデータもメイン画面の右側に表示されます。
コントローラには、正確なリアルタイムクロックモジュールds3231が組み込まれており、実際の時刻と日付を取得できます。この時計データは、センサーデータとタイムスタンプをSDカードに記録し、昼と夜の予測を作成し、ディスプレイの明るさを制御するために使用されます。
その他の画面
ネクストオンディスプレイ内にはいくつかの追加画面があります:
- 日の出と日の入りの時刻と月の年齢を表示する画面。
- コントローラー設定の画面;
- リアルタイムクロックを調整する画面;
- センサーからの履歴データを表示する画面

「日の出」画面を表示するには、現在の日付のメイン画面をタップします。コントローラを設定して時計を調整するには、現在の時刻をタップします。履歴データを表示するには、温度または圧力をタップします。
履歴ログデータ画面
履歴データ画面には、1日と8日の2つのモードがあります。現在のモードを変更するには、グラフ領域をタップします。
<図>
履歴画面の左側と上部に2つのアイコンツールボックスメニューがあります。左側のツールバーメニューで、目的のセンサーIDを選択できます(使用可能なセンサーIDから選択します)。内部センサーのIDは0です。上部のツールバーで、表示するデータタイプ(圧力、温度、湿度)を変更できます。
セットアップ画面
セットアップ画面では、次のことができます。
- メインの外部センサーIDをカスタマイズします(コントローラーがすべてのセンサーから信号を受信するまで待ちます)。
- 朝と夕方の時間を設定します(コントローラーがディスプレイの明るさを変更するとき)。
- ディスプレイの明るさを設定します。

コントローラのハングアップの防止
コントローラの安定性を高め、コントローラのハングアップを防ぐために、外部ウォッチドッグ回路が回路図に実装されました。この回路は他のプロジェクトでも実装できるので、ここでこのタイマーの別の写真を下に見ることができます。
<図>
タイマーは、Arduino A2ピンを介して信号を受信しなかった場合、約2〜3分でArduinoコントローラーをリセットします。
結論
天気は豊かなグラフィック表示で、非常に魅力的で、駅は年間の約半分で非常に安定しています。
コード
ソースコード
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.inoソースコード
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino 回路図
完全な回路図
https://github.com/sfrwmaker/Weather_nextion/blob/master/weather_mega_nextion.jpg製造プロセス
- ArduinoPongゲーム-OLEDディスプレイ
- Arduinoでコインアクセプターを制御する
- ArduinoTemp。 3.2ディスプレイを備えたモニターとリアルタイムクロック
- LEDを制御するBluetoothを搭載したArduino!
- ArduinoMegaをNEO-6MGPSモジュールとインターフェースする方法
- ArduinoとNokia5110ディスプレイを備えたDIY電圧計
- NextionディスプレイのBME280温度、湿度、および圧力
- Arduinoトレーニングプラットフォーム
- Nextionディスプレイを使用してFridgeyeアプリを構築する
- Arduinoで日射量を測定する
- GPSおよびTFTディスプレイシールドを備えたGPSロケーションディスプレイ