自由きままに楽しまないとね

こんなこと知ってますか?という幅広い雑記ブログ

餌やりを自動化【サーバー構築編】#1 Restful API構築

まずは自動化における通信元のサーバーを構築していきたいと思います。
要件的に低スペックのマシンで問題ないので、ノートパソコンに構築していきます。

使用するノートパソコン

Dell Inspiron 11 3180

構成 内容
CPU 第7世代 AMD A6-9220e プロセッサー
メモリ 4GB, DDR4, 2400MHz
ストレージ 64GB eMMC
OS Windows 10 Home (Sモード) 64ビット

※メモリは4Gから8Gに変更しています。
※OSはSモードを解除しています。

Restful APIの構築

自動給餌機からはREST通信にて状況を取得する予定ですので、Restful APIを構築していきます。
今回はPythonのFlaskフレームワークを使用していきます。

・Anaconda (2019.10) Ptyhon3.7 Version

Anacondaのインストール

下記のURLからダウンロード、インストールします。

https://www.anaconda.com/

インストールが完了したら「Anaconda Navigater」を起動します。

Anaconda Navigater

Pythonのコードを編集するために「Home」内にある「VSCode」をインストールします。
VSCode」の「Launch」ボタンをクリックして「VSCode」を起動します。

FlaskにてRestful APIを実装

VSCodeが起動したら以下のコードを作成して実行します。
※作成するフォルダなどはどこでも問題ありません。

from flask import Flask, jsonify, request
from datetime import datetime
import math

api = Flask(__name__)

@api.route('/get', methods=['GET'])
def post_request():
    chipid = request.args.get('chipid')
    output = {
        "chip_id": chipid,
        "unix_time": math.floor(datetime.now().timestamp())
    }

    return jsonify(output)

if __name__ == "__main__":
    api.run()

ブラウザで以下のURLにアクセスします。
入力したchipidが表示されれば通信はOKです。

http://localhost:5000/get?chipid=XXX000

{"chip_id":"XXX000","unix_time":1575729516}

次回はApachもしくはNginxにてWebサーバーを構築しようかと思います。

動画

目次

餌やりを自動化してみる

参考文献

https://qiita.com/sai-san/items/1d1f02dc4dcaa7902392
https://note.nkmk.me/python-unix-time-datetime/
https://techacademy.jp/magazine/18811