Raspberry Pi Pico WでWIFI接続して正確な時刻とその場所の気象情報を得て天気をLEDの絵で表示する。(1)

IF文を使って天気に応じてLEDで☀️や曇りなどの絵として表示させます。

Raspberry Pi Pico Wの無線LANモジュールでネットワークに接続して指定したNTP(Network Time Protocol)サーバから、標準時刻データと無料で利用できるOpenWeatherMapを利用して得た現在の天気情報から天気を得ることができます。
その天気(Clear, Clouds, Rain, などの英語)から別のLED表示モジュールから☀️や☁️などの絵を表示させます。
そのためにマイクロパイソンのIF文をつかいます。

IF文

 

IF文は、条件に基づいて異なる処理を実行するための基本的な制御構文です。

MicroPythonプログラム

import led  # LEDモジュールのインポート

# HTTPレスポンスを仮定
response = ...  # 実際のHTTPレスポンスをここで取得

if response.status_code == 200:
    json_data = response.json()
    weather = json_data.get('weather')[0].get('main')  # 天気
    temperature = json_data.get('main').get('temp')  # 気温
    temperature_celsius = temperature - 273.15  # 摂氏に変換
    wind_speed = json_data.get('wind').get('speed')  # 風速
    wind_deg = json_data.get('wind').get('deg')  # 風向

    # 天気情報に基づいてLEDのSHOW関数を呼び出す
    if weather == "Clear":晴れ
        led.SHOW(1)  # SHOW(1)を呼び出す
    elif weather == "Clouds":曇り
        led.SHOW(2)  # SHOW(2)を呼び出す
        #他の天気情報も付け加えられます。

    # 天気情報を表示
    print(f"天気: {weather}, 気温: {temperature_celsius:.1f}°C, 風速: {wind_speed:.1f} m/s, 風向: {wind_deg}")

else:
    print(f"Error: {response.status_code}")
天気が “Clear”:晴れのときに led.SHOW(1) を呼び出し、天気が”Clouds”:曇り のときに led.SHOW(2) を呼び出します。weather の値が正確に "Clear" または "Clouds" と一致するように、天気情報の取得元での表記を確認します。

OpenWeatherMapのAPIから取得する天気情報は、一般的な状態は Clear, Clouds, Rain, Snow, Thunderstorm などです。

自由研究

テンテン
テンテン

天気の文字情報を☀️や☁️などの絵として表示してみてください。