最近在使用红外测温传感器,IIC通信,在单片机上已能读取数据,但是想把数据读取到电脑上用python做一些处理,想到树莓派自带IIC接口,于是尝试直接将红外传感器接到树莓派的IIC管脚。

  1. 启用树莓派I2C功能:
    参考瑞士军刀扩展板的教程“DS1307 RTC 时钟模块”,开启树莓派的IIC功能,教程链接:
    http://shumeipai.nxez.com/2016/05/30/saks-diy-tutorials-ds1307-rtc-clock-module.html
    需要注意的是树莓派默认只能使用I2C1,I2C0是不能使用的。即要连接SDA.1和SCL.1

    这一步的主要工作是打开树莓派的I2C接口功能,并下载安装i2c-tool和python-smbus模块:
    sudo apt-get install i2c-tools python-smbus
    然后用命令查询是否检测到IC设备:
    sudo i2cdetect -y 1
    pi@raspberrypi:~ $ sudo i2cdetect -y 1
    0 1 2 3 4 5 6 7 8 9 a b c d e f
    00: – -- – -- – -- – -- – -- – -- –
    10: 10 – -- – -- – -- – -- – -- – -- – -- –
    20: – -- – -- – -- – -- – -- – -- – -- – --
    30: – -- – -- – -- – -- – -- – -- – -- – --
    40: – -- – -- – -- – -- – -- – -- – -- – --
    50: – -- – -- – -- – -- – -- – -- – -- – --
    60: – -- – -- – -- – -- – -- – -- – -- – --
    70: – -- – -- – -- – --

也可以用如下命令读取I2C设备的信息:
i2cdump -y 1 0x10 #0x10为I2C设备号
pi@raspberrypi:~ $ sudo i2cdump -y 1 0x10
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: ed 13 00 b1 17 00 00 cf f3 9f f5 b7 df 14 fd af ??.??..???
10: ba ec c7 00 00 00 00 00 00 00 00 00 00 00 00 00 ???..
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
40: ec 13 00 b0 17 00 00 cf f3 9f f5 b7 df 14 fd af ??.??..???
50: ba ec c7 00 00 00 00 00 00 00 00 00 00 00 00 00 ???..
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
80: ec 13 00 b0 17 00 00 cf f3 9f f5 b7 df 14 fd af ??.??..???
90: ba ec c7 00 00 00 00 00 00 00 00 00 00 00 00 00 ???..
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
c0: ed 13 00 bf 17 00 00 cf f3 9f f5 b7 df 14 fd af ??.??..???
d0: ba ec c7 00 00 00 00 00 00 00 00 00 00 00 00 00 ???..
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …

  1. 用python操作I2C设备
    python操作I2C的模块为smbus,库说明的链接如下:
    https://pypi.org/project/smbus2/0.1.2/
    常用的几个函数为:
    read_byte_data
    write_byte_data
    read_word_data
    write_word_data
    read_i2c_block_data
    write_i2c_block_data

具体读取I2C数据步骤:
(1)建立总线:
pi@raspberrypi:~ $ python3
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
[GCC 8.2.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.

import smbus
i2c_bus = smbus.SMBus(1)
slave_addr = 0x10

(2)读取字节数据(偏移地址为0x80):

i2c_bus.read_byte_data(slave_addr, 0x80)
15

(3)连续读取多个字节数据(起始偏移地址为0x80,读取8个字节):

i2c_bus.read_i2c_block_data(slave_addr, 0x80, 8)
[17, 20, 0, 189, 23, 0, 0, 207]

【使用笔记】树莓派基于Python操作IIC接口的红外测温传感器相关推荐

  1. 第二十七篇、基于Arduino uno,获取mlx90614非接触式红外测温传感器的温度值——结果导向

    0.结果 说明:先来看看串口调试助手显示的结果,第一个值是空气的温度,第二个值是被测量的物体温度,如果是你想要的,可以接着往下看. 1.外观 说明:虽然mlx90614非接触式红外测温传感器形态各异, ...

  2. 基于stm32的非接触式红外测温系统

    一.硬件材料清单: 1.STM32核心板 2.OLED显示屏 3.mlx90614 红外测温传感器 4.蜂鸣器 5.按键 二.实现的功能 1.mlx90614红外温度数据的实时检测 2.本地OLED数 ...

  3. 基于STM32设计的健康检测设备(测温心率计步)

    1. 项目介绍 本文介绍的项目是基于STM32设计的健康检测设备,支持体温测量,心率检测,支持运动计步(采用MPU6050陀螺仪实现),支持WIFI传输数据到手机APP打印显示. 硬件环境介绍: MC ...

  4. 基于Python操作ElasticSearch

    基于Python操作ElasticSearch 原文:https://blog.csdn.net/hanyuyang19940104/article/details/81168763?utm_sour ...

  5. Python学习笔记:使用Python操作数据库

    Python学习笔记:使用Python操作数据库 一.数据库编程接口 为了对数据库进行统一的操作,大多数语言都提供了简单的.标准化的数据库接口(API).在Python Database API 2. ...

  6. 基于FPGA实现IIC接口(EEPROM)

    1 IIC应用领域 在嵌入式系统开发过程中,IIC占据非常重要的地位.IIC通讯接口能到搭载较多的从设备,从而实现与多个从设备进行通讯,在板级通讯中是一种比较常用的通讯接口.笔者通过IIC接口实现FP ...

  7. python 获取excel文本框_如何基于python操作excel并获取内容

    这篇文章主要介绍了如何基于python操作excel并获取内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景:从excel表中获取请求url. ...

  8. MLX90640 红外热成像仪测温传感器模块开发笔记(十) 成果展示-红眼睛相机

    MLX90640 红外热成像仪测温传感器模块开发笔记(十) 成果展示-红眼睛相机 现在自己在做红外成像仪的越来越多了,两年前有个井下机电设备运行状态的科研项目,当时使用了 AMG8833(8*8 像素 ...

  9. 树莓派 I2C MLAX90614红外测温

    前言 提示:以下是本篇文章正文内容,下面案例可供参考 一.简介 ELAX90614红外测温: MLX90614 系列模块是一组通用的红外测温模块.在出厂前该模块已进行校验及线性化,具有非接触.体积小. ...

最新文章

  1. java夯实基础:final脑图
  2. JSONPlaceholder使用
  3. python【数据结构与算法】选数问题(选不相连最大值——DP)
  4. 3-Qt6命令行输出显示
  5. action与servlet用法区别
  6. 基于CAN总线的家居安防系统设计
  7. Ubuntu14.04LST安装weblogic11g
  8. tail -f 查找关键字_C语言九种查找算法 | 总有一款适合你
  9. 【华为云技术分享】小白学YOLO:YOLOv3网络结构细致解析
  10. 几个容器网络相关问题的分析和解决总结
  11. 此项目需要迁移_AndroidX 迁移,看完它应该就够了
  12. JavaScript高级教程——(19)构造函数、原型、原型链、继承
  13. linux教程,linux视频教程,linux…
  14. 【VISIO2016箭头使用】
  15. STC8H开发(十): SPI驱动Nokia5110 LCD(PCD8544)
  16. 做一个网站真的有那么难吗?
  17. 小心肝队-冲刺日志(第二天)
  18. 3A简介(持续更新)
  19. 瑞吉外卖项目:移动端导入用户地址簿与菜品展示功能实现
  20. MySql数量统计sql

热门文章

  1. 区块链金融理论测试【图片版】「区块链知识」
  2. 岁月的剪影【五月Alive】
  3. 通过js获取Model中数据
  4. pygame的init()
  5. Biome Smart Terrarium:可用iPad控制的微型植物景观世界
  6. 一个普通人的VScode的初始配置
  7. UVa 11627 - Slalom 二分. oj错误题目 难度: 0
  8. 传统电力系统有功负荷和频率调整方法
  9. 获取AppStore安装包文件路径 dmg包
  10. 电脑投屏到手机/平板上做第二屏幕(显示器)