概要

PythonのスクリプトでAPBLE001-RSを使い、GUIを操作して電子天秤からデータを取得し、表示する手順を示します。

Windows10をベースに説明します。

今回説明で使用致しますAPBLE001-RSは、以下のリンクからご購入いただけます。

Windows10でのGUIアプリの例

Python環境の設定に関しては、以前の記事のWindows10の初期設定をご参照ください。

島津製作所のAP324WとWindows10 PCとの接続に関しては、APBLE001を使用した電子天秤とWindows PCとの接続をご参照ください。

TKInterを利用したGUI電子天秤測定スクリプト

GUIのインタフェースを作成するライブラリであるTKInterは、デフォルトで含まれているため、後からインストールする必要はありません。

import serial
import tkinter as tk

SERIALPORT = 'COM3'            #USBCOM

class Application(tk.Frame):
    def __init__(self, master = None):
        super().__init__(master)

        self.master.geometry("800x100")
        self.master.title(u"APBLE001 balance monitor")
        self.master.option_add('*Button.font','Arial 20')
        self.master.option_add('*Label.font', 'Atial 20')

        button_tare = tk.Button(self.master, text = "Tare", width = 8)
        button_measure = tk.Button(self.master, text = "Measure", width = 8)
        button_exit = tk.Button(self.master, text = "Exit", width = 8)
        self.label_data = tk.Label(self.master, text = "Press measure button.")

        button_tare.bind("<Button-1>",self.do_tare)
        button_measure.bind("<Button-1>",self.measure_single)
        button_exit.bind("<Button-1>",self.exit_system)

        button_tare.pack(side="left",fill=tk.Y,padx = 10, pady = 10)
        button_measure.pack(side="left",fill=tk.Y,padx = 10, pady = 10)
        button_exit.pack(side="right",fill=tk.Y,padx = 10, pady = 10)
        self.label_data.pack(side="left",fill=tk.Y,padx = 10, pady = 10)

        self.is_open = True
        try:
            self.ser = serial.Serial(SERIALPORT,1200,8,'N',timeout=1.0)
        except:
            self.label_data["text"] = "Fail to open serial port."
            self.is_open = True

    def exit_system(self,event):
        self.master.destroy()
        self.ser.close()

    def do_tare(self,event):
        if self.is_open != True:
            return
        self.ser.write(b'TARE\r')
        line = self.ser.readline()
        self.label_data["text"] = line

    def measure_single(self,event):
        if self.is_open != True:
            return
        self.ser.write(b'D05\r')
        line = self.ser.readline()
        self.label_data["text"] = line

if __name__ == "__main__":
    root = tk.Tk()
    bm_app = Application(master = root)
    bm_app.mainloop()

上記例では、ポートをCOM3にしていますが、環境によって異なるので自分のPCでのCOMポート番号を確認して、変更してください。

GUI測定アプリの動作説明

コマンドプロンプトやPower shellから

python3 BalanceMonitorGUI.py

と入力するか、ファイルのアイコンをダブルクリックすると実行され、以下のウィンドウが表示されます。

PythonのTKInterを使った電子天秤制御アプリの起動画面

電子天秤(AP324W)の電源がオンしていて、APBLE001が接続状態(LEDが緑点滅)している状態でMeasureボタンをクリックすると、

PythonのTKInterを使った電子天秤制御アプリで重量取得した画面

戻ってきたデータが表示されます。

Tareボタンをクリックすると風袋引きが実行されるので、その直後にMeasureボタンをクリックすると

PythonのTKInterを使った電子天秤制御アプリで風袋引きした直後の重量取得画面

測定値は0(または、0に近い値)になります。