【已解决】Python3.6+PySerial+PyMySQL+正则表达式来读串口存数据库
来源:互联网 发布:dojo 对象数组转json 编辑:程序博客网 时间:2024/06/05 14:26
实现流程
1, STM32下位机通过蓝牙串口发送数据
2, 上位机使用PySerial库进行接收
3, 使用re正则表达式获取数据串中的不同相关内容
4, 把正则生成的列表类型数据转换成字符串
5, 再通过PyMySQL把数据存进相应的MySQL数据表单
代码图
因为要写一个升级版///手动备份
# coding=gb18030# 导入三个包import serial # 串口库import time # 时间库import re # 正则表达式库import pymysql # Python3的MySQL数据库log = 0 # 设置一个log记录,初始值0,用于记录数据次数s = serial.Serial('com7', 9600, timeout=3) # 打开串口,配置com7 波特率9600 时间延迟3秒 这里就是下位机传给上位机的端口db = pymysql.connect("localhost", "root", "q1w2e3", "pigwebdb") # 连接数据库cursor = db.cursor() # 数据库操作标记while True: # 无限循环,无线读取数据 log += 1 # 每次接收数据,log变量加一 localtime = time.asctime(time.localtime(time.time())) # 调用本地时间 data_pre = s.readline() # 读取一行数据 # 初步处理数据 data = str(data_pre)[2:-3] # 把最先用n读取的数据强制性转换成字符串 去掉接受到数据的 b'' 头尾 device_name = ''.join(re.findall(r"n(.+?)t", data)) # 使用正则表达式 截取相关内容 再把列表转成字符串 temp_value = ''.join(re.findall(r"t(.+?)h", data)) humi_value = ''.join(re.findall(r"h(.+?)l", data)) light_value = ''.join(re.findall(r"l(.+?)a", data)) ammonia_value = ''.join(re.findall(r"a(.+?)e", data)) local_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 规定接收时间 if data == 0000: d_name = 'none' td = 'unkown' hd = 'unkown' ld = 'unkown' ad = 'unkown' print('the monitor system cant receive the data from hardware...Please chick the device running status..') # SQL语言,把数据插入数据库表 sql = "INSERT INTO monitor_MonitorData02DB(log_id,d_name,rec_time,tem_v,rh_v,light_v,ag_v)VALUES('%d','%s','%s','%d','%d','%f','%f')" % ( log, d_name, local_time, td, hd, ld, ad) cursor.execute(sql) # 执行上述数据库语言 db.commit() # 提交命令 else: d_name = device_name td = int(temp_value) hd = int(humi_value) ld = float(light_value) ad = float(ammonia_value) print("NO.", log, "rectime is:", local_time, "value is :", d_name, td, hd, ld, ad) # SQL语言,把数据插入数据库表 sql = "INSERT INTO monitor_MonitorData02DB(log_id,d_name,rec_time,tem_v,rh_v,light_v,ag_v)VALUES('%d','%s','%s','%d','%d','%f','%f')" % ( log, d_name, local_time, td, hd, ld, ad) cursor.execute(sql) # 执行上述数据库语言 db.commit() # 提交命令cursor.close() # 结束数据库标记db.close() # 关闭数据库连接
阅读全文
0 0
- 【已解决】Python3.6+PySerial+PyMySQL+正则表达式来读串口存数据库
- 【PythonDjango后台实例 第二章】Python3.6.1+Pyserial+PyMySQL 实现读取串口并存入数据库
- Python3.2----串口模块Pyserial
- python3.6 安装pymysql
- Python3 pymysql连接MySQL数据库
- Pyserial+PyQT+Python3.4串口工具——界面
- python3.6安装tensorflow、pymysql
- Python3利用PyMySql连接MySQL数据库
- Python3 pymysql连接mysql数据库 windows
- Python3.x使用PyMysql连接MySQL数据库
- python3 使用 pymysql 链接数据库操作
- Python3,pymysql
- python3+pymysql
- python3 :pymysql
- imooc的疯狂的蚂蚁的课程《Python操作MySQL数据库》 python3+pymysql模块来操作mysql数据库
- python pyserial 串口
- Python串口模块pySerial
- Python串口模块pySerial
- 【POJ】2785
- js基础知识
- WeakHashMap实现原理及源码分析
- jQuery.validator.js和jquery.metadata.js使用详解
- mysql explain执行计划详解
- 【已解决】Python3.6+PySerial+PyMySQL+正则表达式来读串口存数据库
- 搜狐跳跃问题
- Spring框架
- linux系统下启动jar
- java如何获取需要在页面树形展示的json数组
- flex布局兼容总结
- 通过 MarqueeFactory 来提供各种样式的跑马灯 View, 支持自定义跑马灯 ItemView
- laravel+vue项目跳转拦截器
- Android音频驱动-ASOC之Codec