yuukiiのアイコン画像
yuukii 2024年09月20日作成 (2024年10月30日更新)
製作品 製作品 閲覧数 104
yuukii 2024年09月20日作成 (2024年10月30日更新) 製作品 製作品 閲覧数 104

ラズパイが毎朝天気や運勢を教えてくれるシステム

概要

毎朝LINEが天気や運勢、星座占いを教えてくれます。朝に時間がない人でもすぐに天気や運を知ることができるので傘の有無や今日の気分など毎日の生活を豊かにしてくれます。

システム

天気の情報をYahoo!天気から取得しLINENotifyから送信します。取得する情報は日付、天気、最高気温、最低気温の4つです。
また、大吉や凶などの運勢を表示します。運勢は乱数を用いることで表示します。
最後に、星座占いのURLを送信することでLINEから占いを瞬時に見れます。

イメージ図

キャプションを入力できます

実行画面

キャプションを入力できます

使用部品・言語

・Raspberry pi 4

・Python

・スマホ(LINE)

ソースコード

import requests from bs4 import BeautifulSoup import random #crontab -eで時間編集できる #LINE Notifyと連携するためのtoken line_notify_token = 'ラインノーティファイトークン' line_notify_api = 'https://notify-api.line.me/api/notify' #天気の設定 r = requests.get('https://weather.yahoo.co.jp/weather/jp/39/7410.html') soup = BeautifulSoup(r.content, "html.parser") wc = soup.find(class_="forecastCity") ws = [i.strip() for i in wc.text.splitlines()] #リスト内包表記で""でないものをリスト化 wl = [i for i in ws if i != ""] luck = random.randint(1,100) #メッセージを送信する関数 def send_line_notify(token, messages): url = "https://notify-api.line.me/api/notify" headers = {"Authorization": f"Bearer {token}"} for message in messages: data = {"message": message} response = requests.post(url, headers=headers, data=data) if(luck == 1): luckmess = ("今日の運勢は大凶です...") elif(luck <= 10): luckmess = ("今日の運勢は凶です。") elif(luck <= 30): luckmess = ("今日の運勢は末吉です。") elif(luck <= 54): luckmess = ("今日の運勢は吉です。") elif(luck <= 67): luckmess = ("今日の運勢は小吉です。") elif(luck <= 77): luckmess = ("今日の運勢は中吉です。") else: luckmess = ("今日の運勢は大吉です!") messages = [ "\n" + wl[0] + "\n今日の天気は\n[" + wl[1] + "]です。\n" + "最高気温:" + wl[2] + "\n"+ "最低気温:" + wl[3]+"\n\n"+luckmess, "今日の星座占いも見てみましょう!\nhttps://www.fujitv.co.jp/meza/uranai/index.html" ] send_line_notify(line_notify_token, messages)

キャプションを入力できます

LXターミナルからcrontab -eを開き緑で囲った部分を変更する。左から分、時間、日、月、曜日となっている。毎朝7時にLINENotifyで通知が来るように設定したいので左から[0 7 * * *]にするとよい。

参考文献

・めざましテレビ 今日の占いcountdown
https://www.fujitv.co.jp/meza/uranai/index.html
・謹賀新年!おみくじの確率はどれくらい?
https://tohokuseigyo.net/tcs_member/omikuji/
・linenotify
https://notify-bot.line.me/ja/

ログインしてコメントを投稿する