这是indexloc提供的服务,不要输入任何密码
Skip to content

yasuo0mg/gomi-trash-notifier

Repository files navigation

Gomi Day Notifier

ゴミ出しの前日に通知してくれるLINEbotです。 使用するには、後述するLINE DevelopersとAWSのセットアップが必要です。

なぜ作ったか?

  • ゴミを出さないと、ゴミ箱にゴミが溜まり、部屋が臭くなる。
  • ゴミ出しの曜日を覚えるのが面倒。
  • ギリギリまでゴミを溜めてから捨てる習慣だと、ビニール袋を結ぶ時、大変だし臭い。

その結果、定期的にゴミを捨てれば、溜まらずに臭くなくなることに気づいた。(自明)

実装機能

  • ゴミ出しの前日にどのゴミを出すのか通知してくれる、これだけです。

ゴミの種類(編集可能)

  • 燃えるゴミ: 月曜日、金曜日
  • プラスティックゴミ: 土曜日
  • ペットボトル、ビン、缶ゴミ: 木曜日
  • 資源ゴミ: 水曜日

技術スタック

  • Node.js (v12.x または v10.x)
  • TypeScript
  • AWS(Lambda, CloudWatch Events)
  • LINE Developers (Messaging API)

準備

LINE Developers (Messaging API)

  1. LINE Developersにアクセスして、LINEアカウントでログインします。
  2. 新規プロバイダーを作成します。(プロバイダーとは、アプリを提供する組織のことです。ご自身のお名前や企業の名前を入力するものです)

スクリーンショット 2021-01-31 22 58 12

3. チャネルを作成します。(チャネルは実際のLINEbotの名前になります) Messaging APIで作成します。

スクリーンショット 2021-01-31 22 54 47

4. チャネル名(Channel name)やチャネル説明(Channel description)などの必須項目を記入します。

スクリーンショット 2021-01-31 23 00 11

  1. 記入を完了し、無事作成したら、Your user IDChannel access tokenを確認してどこかにメモしてください。Channel access tokenは、Messaging APIタブの一番下にあるChannel access tokenを発行すると確認できます。

AWS (Lambda, CloudWatch)

AWSにログインします。 まず、Lambda関数を作成します。
スクリーンショット 2021-02-01 0 00 27 次に、トリガーをCloudWatchで設定します。
スクリーンショット 2021-02-01 0 41 30 私はスケジュール式でcron式を書きました。(時間はUTCで、日本は9時間進んでいるので注意) cron(0 14 * * ? *)なので、夜11時にLambda関数が実行されることになります。 最後に、環境変数を登録します。 先ほど、LINE Developers (Messaging API)で取得したYour user IDChannel access tokenをLambda関数の環境変数に登録してください。

デプロイ

自分の家のゴミ出しの曜日を確認して、src/message.tsを開き編集しても大丈夫です。

const infos = [
  {
    message: '明日は「燃えるゴミ」を捨てる日です!',
    days: [Monday, Friday]
  },
  {
    message: '明日は「プラスチックゴミ」を捨てる日です!',
    days: [Saturday]
  },
  {
    message: '明日は「ペットボトル、ビン、缶ゴミ」を捨てる日です!',
    days: [Thursday]
  },
  {
    message: '明日は「資源ゴミ」を捨てる日です!',
    days: [Wednesday]
  }
];

Lambdaにデプロイするためにzipにします。

$ chmod +x ./script/zip.sh
$ ./script/zip.sh

/distフォルダにlambda.zipファイルがあるので、それをLambdaコンソール画面のActionsからアップロードします。

ここまで完成できたら、LINEbotをご自分のスマホで友達に追加してください。 方法は、LINE DevelopersのMessaging APIタブのQRコードを使って登録するのが簡単です。というか、それ以外の方法を知らない:smile:

About

trash notifier by LINEbot (Lambda, Node.js)

Resources

Stars

Watchers

Forks