yuukii が 2024年10月30日14時36分33秒 に編集
コメント無し
本文の変更
### 目次 概要 システム イメージ図 使用部品・言語 参考文献
# 概要
毎朝LINENotifyが天気や運勢、星座占いを教えてくれます。朝起きることが苦手な人でもすぐに天気や運を知ることができるので傘の有無や今日の気分など毎日の生活を豊かにしてくれます。
毎朝LINEが天気や運勢、星座占いを教えてくれます。朝に時間がない人でもすぐに天気や運を知ることができるので傘の有無や今日の気分など毎日の生活を豊かにしてくれます。
# システム
天気の情報をYahoo!天気から取得しLINENotifyに送信します。取得する情報は日付、天気、最高気温、最低気温の4つです。 運勢を乱数を用いて確率の代わりとし大吉や凶などを表示します。 星座占いのURLを同時に送信することでLINEから占いを瞬時に見れます。
天気の情報をYahoo!天気から取得しLINENotifyから送信します。取得する情報は日付、天気、最高気温、最低気温の4つです。 また、大吉や凶などの運勢を表示します。運勢は乱数を用いることで表示します。 最後に、星座占いのURLを送信することでLINEから占いを瞬時に見れます。
# イメージ図 ![キャプションを入力できます](https://camo.elchika.com/7e76c9d4c329f8df11995b9257970123c4ee0112/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f61633933306530642d666238322d343162312d623261372d6231623839306330663233632f63346266633530642d656537352d343639612d626237342d313732393231376639313033/) # 実行画面 ![キャプションを入力できます](https://camo.elchika.com/70b32995725a1e9ede8f1865c9b6c8837c02105a/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f61633933306530642d666238322d343162312d623261372d6231623839306330663233632f64613730313366642d323839352d346632322d613836652d643836373431323161363865/) # 使用部品・言語 ・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) ``` ![キャプションを入力できます](https://camo.elchika.com/c59f9c79c67b0ff731dc0ab87b24f6d18f16e5e0/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f61633933306530642d666238322d343162312d623261372d6231623839306330663233632f63636365313836382d303737622d346233332d626638622d336239363636326665343037/)
LXターミナルからcrontab -eを開き緑で囲った部分を変更する。左から分、時間、日、月、曜日となっている。毎朝7時にLINENotifyで通知が来るように設定したいので左から0,7,*,*,*にするとよい。
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/