Skip to content

cubic9com/crowpanel-5.79_weather-display

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents / 目次

Overview / 概要

This project is a weather forecast display system that uses Elecrow's CrowPanel ESP32 E-Paper HMI 5.79-inch Display. It displays weather forecast at 3-hour intervals for the next 12 hours. The weather forecast data is retrieved via OpenWeatherMap API.

[日本語]

このプロジェクトは、天気予報表示システムです。12時間後までの3時間ごとの天気予報を表示します。 ハードウェアは ElecrowのCrowPanel ESP32 E-Paper HMI 5.79-inch Display を使っています。 天気予報データは、OpenWeatherMap APIにて取得します。

Photos / 写真

crowpanel-5.79_weather-display.jpg

Why I Made This / 開発のきっかけ

I developed this weather forecast display system for my young children. While adults can easily check the weather on their smartphones each morning and dress or plan accordingly, young children typically do not have access to such tools. To address this, I created a weather display system that children can check on their own. By using an E-Paper display, the system becomes not only easy to read but also energy efficient.

[日本語]

この天気予報表示システムは、私の幼い子どもたちのために開発しました。 毎朝、大人はスマートフォンで簡単に天気を確認して、必要な準備ができますが、幼い子どもたちには通常そうした手段がありません。 そこで、子どもたちが自分で天気を確認できるようなシステムを作りました。 表示に電子ペーパーを使用することで、見やすいだけでなく省電力にもなっています。

How the System Works / 動作概要

The system operates as follows:

  1. Connects to a 2.4 GHz WiFi network on startup.
  2. Retrieves the current weather and forecast (3, 6, 9, and 12 hours ahead) via OpenWeatherMap API.
  3. Displays weather information (time, weather condition, temperature, and probability of precipitation) on the E-Paper display.
  4. Enters Deep-sleep mode to save power.
  5. Restarts after the configured interval (default: 1 hour).

[日本語]

システムは次のように動作します。

  1. 起動時に2.4GHz WiFiに接続する。
  2. OpenWeatherMap APIを使って現在の天気と予報(3時間後、6時間後、9時間後、12時間後)を取得する。
  3. 電子ペーパーに天気情報を表示する(時刻、天気、気温、降水確率)。
  4. 省電力のために ディープスリープモード に入る。
  5. 設定された時間(デフォルト:1時間)後に再度起動する。

Hardware / ハードウェア構成

[日本語]

  • ElecrowのCrowPanel ESP32 5.79-inch E-paper HMI Display
    • 5.79インチの電子ペーパーを搭載したディスプレイモジュールです。解像度は272(H)×792(L)ピクセル。
    • メインコントローラーは ESP32-S3-WROOM-1-N8R8 です。FCC ID 2AC7Z-ESPS3WROOM1 の認証を取得しており、RED指令に基づくCE適合、および日本の技術基準適合認証(技適/TELEC)番号 R 201-220052 を取得しています。
    • アクリル板製のエンクロージャーに収められています。

crowpanel-5.79_01.jpg

crowpanel-5.79_02.jpg

crowpanel-5.79_03.jpg

Before You Start / 事前準備

To get weather forecast data, you need an API key from OpenWeatherMap. This system uses One Call API 3.0, which requires registering a credit card, along with your address and phone number. This API is free for up to 1,000 calls per day; beyond that, a charge of £0.12 is incurred for each additional 100 calls.

IMPORTANT: To avoid unexpected charges, be sure to follow step 16 below to set your daily request limit to 900. This should allow you to use the service free of charge. If you exceed the daily limit, you'll get an HTTP 429 response status code. (see the FAQ I'm worried that I might accidentally make too many calls and be charged for them. How can I limit API calls?).

  1. Open the OpenWeatherMap website.

  2. Click "Sign in" at the top right corner.

  3. Click "Create an Account".

  4. Enter your username, email address, and password. Then, check the following boxes:

    • "I am 16 years old and over"
    • "I agree with Privacy Policy, Terms and conditions of sale and Websites terms and conditions of use"
    • "I am not a robot"

    Finally, click the "Create Account" button.

  5. A dialog titled "How and where will you use our API?" will appear.

  6. If you are registering as an individual, leave the "Company" field blank. Select the appropriate purpose in the "Purpose" field and click the "Save" button.

  7. You will receive an email from "Open Weather Team" with the subject "OpenWeatherMap Account confirmation."

  8. Click the "Verify your email" button in the email.

  9. Sign in using your registered email address and password.

  10. Click the "API keys" tab.

  11. Note down your API key.

  12. Click the "Billing plans" tab.

  13. Under the "One Call API 3.0" section, click the "Subscribe" button next to the "Base plan."

  14. Enter your billing information (First name, Last name, Country, Address Line 1, Address Line 2, City, Postal code, and Phone) and click the "Continue to payment" button.

  15. Enter your credit card information (through Stripe).

  16. To avoid unexpected charges, click the pencil icon beside the "Calls per day (no more than)" field and set the value to less than 1,000 (I set it to 900).

[日本語]

天気予報情報を取得するために、 OpenWeatherMap のAPIキーが必要です。 本システムでは One Call API 3.0 を使用するため、クレジットカードと住所・電話番号を登録する必要があります。 このAPIは、1日1000回までは無料ですが、それを超えた場合、100回毎に0.12ポンドの料金が発生します。

重要: 意図せず費用を請求されることを防ぐために、以下の手順16に従って、1日あたりのリクエスト制限を900に設定してください。これにより、サービスの無料での利用が可能と考えています。1日あたりの制限を超えた場合は、HTTP 429 レスポンスステータスコードが返されます( FAQI'm worried that I might accidentally make too many calls and be charged for them. How can I limit API calls?を参照のこと)。

  1. OpenWeatherMapの公式サイト を開きます。

  2. 右上の「Sign in」をクリックします。

  3. 「Create an Account」をクリックします。

  4. ユーザー名、メールアドレス、パスワードを入力し、以下のチェックボックスを有効化します。

    • 「I am 16 years old and over」
    • 「I agree with Privacy Policy, Terms and conditions of sale and Websites terms and conditions of use」
    • 「私はロボットではありません」

    「Create Account」ボタンをクリックします。

  5. 「How and where will you use our API?」というダイアログが表示されます。

  6. 個人であれば、「Company」欄は空欄のままにします。「Purpose」欄で適切な利用目的を選択し、「Save」ボタンをクリックします。

  7. 「Open Weather Team」から「OpenWeatherMap Account confirmation」という件名のメールが届きます。

  8. メール内の「Verify your email」ボタンをクリックします。

  9. 登録したメールアドレスとパスワードでサインインします。

  10. 「API keys」タブをクリックします。

  11. APIキーをメモしておきます。

  12. 「Billing plans」タブをクリックします。

  13. 「One Call API 3.0」パートの「Base plan」の「Subscribe」ボタンをクリックします。

  14. 請求情報(「First name」、「Last name」、「Country」、「Address Line 1」、「Address Line 2」、「City」、「Postal code」、「Phone」)を入力し、「Continue to payment」ボタンをクリックします。

  15. クレジットカード情報を入力します( Stripe 経由です)。

  16. 意図せず費用を請求されることを防ぐために、「Calls per day (no more than)」欄の鉛筆アイコンをクリックし、値を1000未満に設定します(私は900に設定しました)。

Installation / インストール方法

  1. Clone the repository:

    git clone https://github.com/cubic9com/crowpanel-5.79_weather-display.git
    cd crowpanel-5.79_weather-display
  2. Install Visual Studio Code if you haven't already.

  3. Open the project using Visual Studio Code:

    code .
  4. Install PlatformIO IDE extension:

    • Go to the Extensions view (Ctrl+Shift+X).
    • Search for PlatformIO IDE and install it.
  5. Open PlatformIO Home:

    • In the left Activity Bar, click PlatformIO icon.
    • In the left Primary Sidebar, go to QUICK ACCESS > PIO Home > Open.
  6. Open the project:

    • In the right Editor Group, click Open Project in the PIO HOME tab.
    • Select the cloned crowpanel-5.79_weather-display project folder.
  7. Find the config.template.h file. Make a copy of it and rename the copy to config.h.

  8. Open this new config.h file and modify the following lines with your own details:

    // 2.4 GHz WiFi Configurations
    #define WIFI_SSID "your WiFi SSID"
    #define WIFI_PASSWORD "your WiFi password"
    
    // OpenWeatherMap API Configurations
    #define OPENWEATHERMAP_API_KEY "your OpenWeatherMap API key"
    #define LATITUDE 35.68130      // Latitude (e.g., Tokyo)
    #define LONGITUDE 139.76707    // Longitude (e.g., Tokyo)
    #define TIMEZONE_OFFSET 9      // Offset from UTC (in hours)
    
    // Interval Configurations (minutes)
    #define INTERVAL_IN_MINUTES 60 // 1 hour

    Note: You can get the latitude and longitude from the URL after searching for your desired location in Google Maps.

  9. Build and upload the project:

    • In the PlatformIO sidebar, go to PROJECT TASKS > esp32-s3-devkit-1 > General > Upload.

[日本語]

  1. リポジトリをクローンします:

    git clone https://github.com/cubic9com/crowpanel-5.79_weather-display.git
    cd crowpanel-5.79_weather-display
  2. まだインストールしていない場合は、Visual Studio Code をインストールします。

  3. Visual Studio Code でプロジェクトを開きます:

    code .
  4. PlatformIO IDE 拡張機能をインストールします:

    • 左サイドバーの「拡張機能」ビュー (Ctrl+Shift+X) を開きます。
    • PlatformIO IDE を検索してインストールします。
  5. PlatformIO Home を開きます:

    • 左のアクティビティバーで PlatformIO アイコンをクリックします。
    • 左のメインサイドバーから QUICK ACCESS > PIO Home > Open を選択します。
  6. プロジェクトを開きます:

    • 右のエディターグループ内の PIO HOME タブで Open Project をクリックします。
    • クローンした crowpanel-5.79_weather-display プロジェクトフォルダーを選択します。
  7. config.template.h ファイルを見つけます。コピーを作成し、名前を config.h に変更します。

  8. この新しい config.h ファイルを開き、以下の行を必要に応じて変更します。

    // 2.4 GHz WiFi設定
    #define WIFI_SSID "あなたのWiFi SSID"
    #define WIFI_PASSWORD "あなたのWiFiパスワード"
    
    // OpenWeatherMap API設定
    #define OPENWEATHERMAP_API_KEY "あなたのOpenWeatherMap APIキー"
    #define LATITUDE 35.68130      // 緯度(例:東京)
    #define LONGITUDE 139.76707    // 経度(例:東京)
    #define TIMEZONE_OFFSET 9      // UTCからのオフセット(時間)
    
    // 更新間隔設定(分)
    #define INTERVAL_IN_MINUTES 60  // 1時間

    なお、緯度と経度は Googleマップ で天気予報を表示したい地点を検索した後のURLから取得できます。

  9. プロジェクトをビルド&アップロードします:

    • PlatformIOのサイドバーで PROJECT TASKS > esp32-s3-devkit-1 > General > Upload を選択します。

Credits / クレジット

[日本語]

Disclaimer / 免責事項

This project is provided for educational and personal use only. The author makes no guarantees regarding the accuracy, reliability, or continued availability of the system or any third-party services it depends on.

Use this project at your own risk. The author shall not be held liable for any damage, data loss, costs, or consequences arising from the use of this software, including but not limited to:

  • Misuse or misconfiguration of the system
  • API limitations or changes (e.g., from OpenWeatherMap)
  • Hardware malfunctions
  • Network failures

By using this project, you agree to assume full responsibility for any and all outcomes.

[日本語]

本プロジェクトは、教育目的および個人利用を想定して提供しています。システムおよび依存する外部サービスの正確性、信頼性、継続的な提供について、作者は一切の保証を行いません。

本ソフトウェアの使用は自己責任でおこなってください。著者は、以下を含む本ソフトウェアの使用により生じたいかなる損害、データの損失、費用、その他の結果についても責任を負いません:

  • システムの誤使用や設定ミス
  • OpenWeatherMap など外部APIの制限や仕様変更
  • ハードウェアの不具合
  • ネットワークの障害

本プロジェクトを利用することで、すべてのリスクと結果に対する責任をユーザー自身が負うことに同意したものとみなされます。

Related Projects / 関連プロジェクト

  • FontGen4LCDandEPD: A lightweight Python script that converts TrueType fonts into C-style byte array for use on LCD and EPD (e-paper) modules in embedded systems. It is intended as a simplified alternative to PCtoLCD2002.

[日本語]

  • FontGen4LCDandEPD: TrueTypeフォントを1ビットモノクロのビットマップフォントに変換し、 C言語形式のバイト配列として出力する軽量なPythonスクリプト。 LCDや EPD(電子ペーパー)などの組み込み機器での利用を想定しています。PCtoLCD2002の代替として使用できる(機能は単純化)。

License / ライセンス

Copyright (C) 2025, cubic9com All rights reserved.

This project is licensed under the MIT license.

See the LICENSE file for details.

About

This project is a weather forecast display system that uses Elecrow CrowPanel ESP32 E-Paper HMI 5.79-inch Display. It displays weather forecast in 3-hour intervals for the next 12 hours. The weather forecast data is retrieved via OpenWeatherMap API.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors