Raspberry Pi Pico Wの無線LANモジュールでネットワークに接続してその場所の降水確率を得ます。
Raspberry Pi Pico Wの無線LANモジュールでネットワークに接続してその場所の降水確率を得ます。
Raspberry Pi Pico W
MicroPythonプログラム
import time import network import urequests as requests #無線LANへの接続 def connect_to_wifi(ssid, password): wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect(ssid, password) max_wait = 10 while max_wait > 0: if wlan.status() < 0 or wlan.status() >= 3: break max_wait -= 1 print('接続待ち...') time.sleep(1) if wlan.status() != 3: raise RuntimeError('ネットワーク接続失敗') else: print('接続完了') status = wlan.ifconfig() print('IPアドレス = ' + status[0]) # 自宅Wi-FiのSSIDとパスワードを入力 ssid = 'YOUR NETWORK SSID' password = 'YOUR NETWORK PASSWORD' # Wi-Fiに接続 connect_to_wifi(ssid, password) # Web APIのURLを作成 city_ID = "130010" # 130010は東京 # 天気予報APIのURL組み立て url = "https://weather.tsukumijima.net/api/forecast/city/" + city_ID # 指定したURLから天気情報を取得 response = requests.get(url) weather_json = response.json()# データをPythonの辞書型に変換 # 今日の降水確率を取得 0:今日 1:明日 2:明後日('T12_18'は12時から18時の時間帯) rain_probability = weather_json['forecasts'][0]['chanceOfRain']['T12_18'] #降水確率が取れない場合の処理 if rain_probability == "--%": print("no value")# 降水確率が取得できない場合のメッセージ else: print("降水確率 {}".format(rain_probability))# 降水確率を表示
{ "publicTime": "2024-12-03T11:00:00+09:00", "publicTimeFormatted": "2024/12/03 11:00:00", "publishingOffice": "気象庁", "title": "東京都 東京 の天気", "link": "https://www.jma.go.jp/bosai/forecast/#area_type=offices&area_code=130000", "description": { "publicTime": "2024-12-03T10:35:00+09:00", "publicTimeFormatted": "2024/12/03 10:35:00", "headlineText": "", "bodyText": " 大陸の高気圧が本州に張り出しています。\n\n 東京地方は、晴れています。\n\n 3日は、大陸の高気圧が張り出しますが、南下する気圧の谷や湿った空気の影響を受ける見込みです。このため、晴れるでしょう。伊豆諸島では雨や雷雨となる所がある見込みです。\n\n 4日は、引き続き高気圧が張り出しますが、気圧の谷や湿った空気の影響を受けるでしょう。このため、晴れ朝晩曇りとなる見込みです。伊豆諸島では雨や雷雨となる所があるでしょう。\n\n【関東甲信地方】\n 関東甲信地方は、おおむね晴れています。\n\n 3日は、大陸の高気圧が張り出しますが、南下する気圧の谷や湿った空気の影響を受ける見込みです。このため、晴れや曇りで、雨の降る所があるでしょう。また、伊豆諸島では雷を伴う所がある見込みです。\n\n 4日は、引き続き高気圧が張り出しますが、気圧の谷や湿った空気の影響を受けるでしょう。このため、晴れや曇りとなる見込みです。また、伊豆諸島では雨や雷雨となる所があるでしょう。\n\n 関東地方と伊豆諸島の海上では、3日はうねりを伴い波が高く、4日は波が高い見込みです。船舶は高波に注意してください。", "text": " 大陸の高気圧が本州に張り出しています。\n\n 東京地方は、晴れています。\n\n 3日は、大陸の高気圧が張り出しますが、南下する気圧の谷や湿った空気の影響を受ける見込みです。このため、晴れるでしょう。伊豆諸島では雨や雷雨となる所がある見込みです。\n\n 4日は、引き続き高気圧が張り出しますが、気圧の谷や湿った空気の影響を受けるでしょう。このため、晴れ朝晩曇りとなる見込みです。伊豆諸島では雨や雷雨となる所があるでしょう。\n\n【関東甲信地方】\n 関東甲信地方は、おおむね晴れています。\n\n 3日は、大陸の高気圧が張り出しますが、南下する気圧の谷や湿った空気の影響を受ける見込みです。このため、晴れや曇りで、雨の降る所があるでしょう。また、伊豆諸島では雷を伴う所がある見込みです。\n\n 4日は、引き続き高気圧が張り出しますが、気圧の谷や湿った空気の影響を受けるでしょう。このため、晴れや曇りとなる見込みです。また、伊豆諸島では雨や雷雨となる所があるでしょう。\n\n 関東地方と伊豆諸島の海上では、3日はうねりを伴い波が高く、4日は波が高い見込みです。船舶は高波に注意してください。" }, "forecasts": [ { "date": "2024-12-03", "dateLabel": "今日", "telop": "晴れ", "detail": { "weather": "晴れ", "wind": "南の風 後 南西の風 23区西部 では 南西の風 やや強く", "wave": "0.5メートル 後 1メートル" }, "temperature": { "min": { "celsius": null, "fahrenheit": null }, "max": { "celsius": "17", "fahrenheit": "62.6" } }, "chanceOfRain": { "T00_06": "--%", "T06_12": "--%", "T12_18": "0%", "T18_24": "0%" }, "image": { "title": "晴れ", "url": "https://www.jma.go.jp/bosai/forecast/img/100.svg", "width": 80, "height": 60 } }, { "date": "2024-12-04", "dateLabel": "明日", "telop": "晴時々曇", "detail": { "weather": "晴れ 朝晩 くもり", "wind": "北の風", "wave": "0.5メートル" }, "temperature": { "min": { "celsius": "8", "fahrenheit": "46.4" }, "max": { "celsius": "17", "fahrenheit": "62.6" } }, "chanceOfRain": { "T00_06": "0%", "T06_12": "0%", "T12_18": "0%", "T18_24": "0%" }, "image": { "title": "晴時々曇", "url": "https://www.jma.go.jp/bosai/forecast/img/101.svg", "width": 80, "height": 60 } }, { "date": "2024-12-05", "dateLabel": "明後日", "telop": "晴時々曇", "detail": { "weather": "晴れ 時々 くもり", "wind": "北の風 後 南東の風", "wave": "0.5メートル" }, "temperature": { "min": { "celsius": "7", "fahrenheit": "44.6" }, "max": { "celsius": "16", "fahrenheit": "60.8" } }, "chanceOfRain": { "T00_06": "20%", "T06_12": "20%", "T12_18": "20%", "T18_24": "20%" }, "image": { "title": "晴時々曇", "url": "https://www.jma.go.jp/bosai/forecast/img/101.svg", "width": 80, "height": 60 } } ], "location": { "area": "関東", "prefecture": "東京都", "district": "東京地方", "city": "東京" }, "copyright": { "title": "(C) 天気予報 API(livedoor 天気互換)", "link": "https://weather.tsukumijima.net/", "image": { "title": "天気予報 API(livedoor 天気互換)", "link": "https://weather.tsukumijima.net/", "url": "https://weather.tsukumijima.net/logo.png", "width": 120, "height": 120 }, "provider": [ { "link": "https://www.jma.go.jp/jma/", "name": "気象庁 Japan Meteorological Agency", "note": "気象庁 HP にて配信されている天気予報を JSON データへ編集しています。" } ] } }
実行
自由研究
テンテン
いろいろな場所の都市コードを調べて日時に応じて天気予報を調べてみよう。また、降水確率をいろいろな方法で知らせてみよう。