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 データへ編集しています。"
}
]
}
}
実行
自由研究

テンテン
いろいろな場所の都市コードを調べて日時に応じて天気予報を調べてみよう。また、降水確率をいろいろな方法で知らせてみよう。



