Giter Site home page Giter Site logo

roomiotbot's Introduction

README

ちょっと面倒なことをよしなにやってくれるLINEbot AI "Yoshina"

Yoshina Icon よしな 説明

どんなことができる?

家に近づいてきたら、帰宅を察知してエアコンをつけるかどうか確認してくれる。自分は「承認」するだけ。

食事の場所決めに困った時、検索すれば適当に候補を挙げてくれる。

家に近づいたらエアコン起動するかチェック インタラクティブに飲食店を検索
家に近づいたらエアコン起動するかチェック インタラクティブに飲食店を検索

技術的な概要説明

LINE Bot全般

PythonおよびPython用のLINE bot SDKを使ってWebアプリとして作成。

Herokuにデプロイしてあり、ユーザーからのメッセージが届いた時にだけ起動するようになっている。

ユーザーとの対話を実現するためには状態管理をする必要があり、ユーザーごとに現在提供中のサービスをデータベースで管理してある。データベースはHeroku Postgresを使用。

キーワード

エアコン制御に関して

ユーザーがエアコンをつけるか判断するために、ネットに繋がるマイコン(ESPr Developer/ESP8266)と環境センサ(BME280)を使って室内環境をモニタリング。センサの値はThingSpeakに一定間隔でアップロードされ保存されている。

帰宅の検知にはGPS情報を使用しており、GPS情報に応じてLINEbot側からユーザーへ確認メッセージを送信するのはIFTTTのGPS-WebHook連携で実現している。
IFTTTには、GPS情報をトリガーに特定URLへWebリクエストを送るよう設定してあり、LINEbot側には特定URLへのリクエストがあったときの挙動を記述してある。

キーワード

インタラクティブ飲食店検索に関して

「食事」をキーワードとしてLINEbotがレストラン検索モードに移行する。 「ぐるなびレストラン検索API」で、検索ワードをクエリとしてフリーワード検索して、APIから取得した結果をカルーセル型のメッセージに加工してユーザーに返信している。

ユーザーからのメッセージが送られてきた時に、レストラン検索モードとして返答するかどうかの判定を行う必要があるため、ユーザーのステータスをデータベースで管理してある(状態管理)。

キーワード

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.