mbed で測定したデータを Bottle で Web ブラウザに表示

mbed とネットワークを連携させて使いたいので、まずは簡単な Web アプリを作ってみました。
mbed から測定したデータをシリアル通信で PC に取り込み、Web ブラウザに表示させます。
フレームワークには軽量と評判だったので Bottle を使用しました。
mbed には ここ のプログラムを書き込んでおきます。
PC 側では Bottle を pip でインストールした後、以下を show.tpl の名前で保存します。

<!DOCTYPE html>
<html lang=ja>

  <head>
    <meta charset="UTF-8">
    <title>mbed:A0 ピンの電圧測定</title>
  </head>

  <body>
    <form action="/mbed" method="post">
      <input type="submit" name="submit" value="測定" />
    </form>
    <p>電圧[V]: {{v}} </p>    
  </body>

</html>

そしてメインのプログラムを適当な名前で保存して実行後、Web ブラウザから localhost:8080/mbed を表示します。

# coding: utf-8
import serial
from bottle import route, run, post, template, TEMPLATE_PATH

# 要すればテンプレートのパスを指定
TEMPLATE_PATH.insert(0, '/Path/to/views')

try:
    ser = serial.Serial("/dev/ttyACM0", 9600)
    ser.write("0".encode())
    ser.write("1".encode())
except OSError:
    ser = False


@route("/mbed")
def mbed():
    return template("show", v=0)


@post('/mbed')
def update():
    ser.write("*".encode())
    serData = ser.readline().strip().rsplit()
    serY = float(serData[1])*3.3
    return template("show", v=round(serY, 3))

run(host="localhost", port=8080)

測定ボタンを押すと電圧値が更新され、以下のように表示されます。

15070901.jpg

コメント

Comments powered by Disqus
書籍更新情報
2016-10-21
Pythonによる科学技術計算 基礎編
PDF版の販売を開始しました。
販売ページはこちら

2016-09-09
Pythonによる科学技術計算 基礎編
1.2版への更新が可能になりました。
サポートページはこちら
電子書籍
Pythonによる科学技術計算 基礎編
Kindle ストア、Leanpubで販売中です
Pythonによる科学技術計算 基礎編
PDF版の販売はこちら
同人誌
技術書典(2016/6/25)
Emacs/org-modeのPDF作成術
電子版をBOOTHで販売中です
Emacs/org-modeのPDF作成術
Share