文档章节

温度传感器+I2C+串口+PC上位机(pyserial)例子

小熊宝宝
 小熊宝宝
发布于 2014/07/26 15:02
字数 455
阅读 3324
收藏 14

温度传感器+I2C+串口+PC上位机(pyserial)例子


例子写的有点乱,主要是学习:

温度传感器DS18b20,E2PROM,I2C, 串口读写,PC上位机(pyserial)数据显示


SerialPort.py     PC串口上位机程序,可以设定上限报警温度

需要安装Python3以上,pyserial库,例子在Python3.4下写的。

上位机传给单片机上限报警温度后,单片机存入E2PROM,

单片机断电重启后,从E2PROM读取报警值。


i2c.h             I2C总线读写和设定

lcd1602.h         lcd1602的读写和设定

temp_ds18b20.h    DS18b20的读写和设定


#define AT24C02 0xa0 // AT24C02 写数据的设备地址

#define MAX_TEMP_E2PROM_FLAG 0xff // 上限报警温度的存储器数据标志,存在说明存储器有数据 

sbit power_port = P2^3; // 报警端口


int max_temp = 340; // 报警上限温度,默认340

int max_temp_buf = 0; // 报警上限温度缓存,用于串口

int sp_read_count = 0; // 串口数据,读取的字节计数

bit sp_read_flag = 0; // 串口读取标志

uint8 buf_byte; // 串口数据缓存



串口通信和E2PROM和I2C总线 例子下载:

http://pan.baidu.com/s/1pJ9aKaf

#!/usr/bin/env python
#encoding=utf-8
"""
=============================================================================
单片机例子,上位机
版权所有 (C) 君扬工作室 2014-07-26

文档作者:君扬工作室(cnhemiya@gmail.com)
更新标识:2014-07-26 14:00:00 cnhemiya@gmail.com
=============================================================================
"""
import serial
import struct

port = 2            # 串口号
baudrate = 4800     # 波特率
max_temp = 335      # 报警温度
ser = serial.Serial()

def writeTemp(temp):
    h = int(temp / 256)
    l = temp % 256
    data = struct.pack(("B"), h)
    ser.write(data)
    data = struct.pack(("B"), l)
    ser.write(data)
    
def readTemp():
    print(ser)
    while (1):    
        h = ser.read()
        l = ser.read()
        m = int.from_bytes(h + l, byteorder='big', signed=False)
        s = str(m)
        s = s[0] + s[1] + "." + s[2] + "℃"
        print(s)

def main():
    ser.setPort(port)           # 设置串口号
    ser.setBaudrate(baudrate)   # 设置波特率
    ser.open()
    writeTemp(max_temp)
    readTemp()
    ser.close()
    
if __name__ == "__main__":
    main()



© 著作权归作者所有

小熊宝宝

小熊宝宝

粉丝 12
博文 9
码字总数 1520
作品 1
鞍山
其他
私信 提问
加载中

评论(4)

小熊宝宝
小熊宝宝 博主

引用来自“老牛牛”的评论

请问Python3.4如何装pyserial库的?
下载pyserial库后解压,放到py安装目录的Lib\site-packages 里面就可以。这个你也可以搜索py安装第三方库的相关资料
老牛牛
老牛牛
请问Python3.4如何装pyserial库的?
小熊宝宝
小熊宝宝 博主

引用来自“萨斯辈的呼唤”的评论

看起来不错的样子,Qt能自己写上位机。我之前写了一个demo,地址http://www.oschina.net/code/snippet_237375_34666
电脑没装qt5。只好用pyserial凑合了
萨斯辈的呼唤
萨斯辈的呼唤
看起来不错的样子,Qt能自己写上位机。我之前写了一个demo,地址http://www.oschina.net/code/snippet_237375_34666
用pyserial来达到串口软件同样的效果,但是无法接收到数据

背景:大傻串口软件的使用,可以通过给物理设备(如温湿度传感器)发送指令010300000002C40B,然后设备会返回类似01 03 04 02 36 01 05 DA 16,其中包含温度和湿度的数据。 问题:我想用pys...

fzyz_sb
2013/06/18
3.5K
1
通过串口接收带有标识符的数据方法

在做串口通信过程中,下位机向上位机发送的串口数据有时候需要带有指定的标识符,便于上位机根据标识符判断后续几位数据是做什么用的。也就是下位机和上位机约定数据帧的传输格式,便于在上位...

sometimesno1
2014/12/12
997
0
21.python通过pyserial读写串口--2013-06-02

因为有个需要用有源RFID搞资产管理的项目,需要用python读取读卡器的串口内容。于是装了pyserial模块,用了下很方便,整理下常用功能 一、 为了使用python操作串口,首先需要下载相关模块: 1...

quanpower
2013/06/02
9K
0
ESP8266量产工具(esptool)配置过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yueqian_scut/article/details/82967952 需要通过源码安装的方式部署esptool工具到linux平台,其能够通过命令...

吴跃前
2018/10/08
0
0
pyserial 如何与wxpython控件相连接控制下位机?

请问pyserial 如何与wxpython控件相连接控制下位机?

Glendon
2018/02/21
573
1

没有更多内容

加载失败,请刷新页面

加载更多

nginx+tomcat配置https

1、nginx配置https和【proxy_set_header X-Forwarded-Proto $scheme;】 2、java代码: String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServe......

perofu
14分钟前
3
0
必看的Linux系统新手进阶老手心得

不知道从什么时候起,linux这个话题变得越来越普及,成为大家经常讨论的话题。无论在网络上还是实际生活中,竟然很多人都在纠结学习linux的问题。网络上给的答案千千万万,而却还有很多人踌躇...

Linux就该这么学
17分钟前
3
0
Spring Boot 配置元数据指南

1. 概览 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的。但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot Configuration Proces...

liululee
20分钟前
2
0
foreach查找子类

$list = $menu_model -> menu_list();$parent_list = [];foreach ($list as $v){ if ($v['pid'] == 0) { $parent = $v; foreach ($list as $v1) ......

小小小壮
32分钟前
2
0
基于 HTML5 Canvas 实现的 TP-LINK 电信拓扑设备面板

前言 今天我们以真实的 TP-LINK 设备面板为模型,完成设备面板的搭建,和指示灯的闪烁和图元流动。 先来目睹下最终的实现效果:http://www.hightopo.com/demo/blog_tplink_20170511/index.h...

htdaydayup
38分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部