MySQL安裝及Python獲取串口數據存入本地數據庫

MySQL安裝

微軟常用運行庫合集_2019.07.20_X64     ---提取碼:0ovs

  • 重要提醒:儘可能的使用管理員方式打開你的CMD命令行。

Python獲取串口數據存入本地數據庫

  • 主要安裝serial包、pymysql
  • 安裝完成後直接上代碼運行,注意如果沒有串口設備提供數據可以利用虛擬串口發送一些假數(“012345678”)據測試。

 虛擬串口使用:VSPD虛擬串口工具——從此告別硬件串口調試

import serial  # 導入serial包
import time  # 導入time包
import pymysql  # 導入pymysql包

log = 0  # 設一個log變量用於記錄單次接收次數
s = serial.Serial('com5', 115200, timeout=6)  # 打開串口,配置串口參數和你設備通訊參數一致。
db = pymysql.connect("localhost", "root", "你的數據庫密碼", "你的數據庫名")  # 打開數據庫,配置數據庫
cursor = db.cursor()  # 數據庫操作

cursor.execute("DROP TABLE IF EXISTS Monitor_Data")  # 如果存在表則重新創建
creatTab = """CREATE TABLE Monitor_Data( # 創建表
    LOG_ID INT NOT NULL,
    D_ID CHAR(20) NOT NULL,
    TIME CHAR(50),
    T_DATA INT ,
    H_DATA INT ,
    L_DATA FLOAT )"""
cursor.execute(creatTab)  # 執行數據庫語句


while True:  # 無限循環讀取數據
    localtime = time.asctime(time.localtime(time.time()))  # time包操作,打印本地時間
    n = s.readline()  # 讀取串口一行數據
    print(n)  # 打印結果在控制檯
    log += 1  # 傳輸次數記錄+1
    data_pre = str(n)  # 強制用字符串格式
    data = data_pre[2:-5]  # 取部分數據
    local_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())  # 規整本地時間的格式
    did = data[0:4]  # 分類取有效數據
    td = int(data[4:6])
    hd = int(data[6:8])
    ld = float(data[8:])/10.0
    print(local_time, did, td, hd, ld)  # 打印結果在控制檯

    sql = "INSERT INTO Monitor_Data(LOG_ID,D_ID,TIME,T_DATA,H_DATA,L_DATA)VALUES('%d','%s','%s','%d','%d','%.1f')" % (
    log, did, local_time, td, hd, ld)  # 存入數據庫
    cursor.execute(sql)  # 執行數據庫語句
    db.commit()  # 提交

cursor.close()
db.close()

操作本地數據庫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章