2020年1月2日木曜日

enable I2C for CentOS on Raspberry Pi

i2c 7segを繋ごうと思ったら、CentOSが入ってた。
# uname -a
Linux rpi2 4.1.11-v7+ #822 SMP PREEMPT Fri Oct 23 16:22:18 BST 2015 armv7l armv7l armv7l GNU/Linux

# cat /etc/centos-release
CentOS Linux release 7.7.1908 (AltArch)

i2cの設定がされてなかった。。。
以下設定内容
/boot/config.txt
dtparam=i2c1=on
dtparam=i2c_arm=on

/etc/modules-load.d/i2c.conf
i2c-bcm2708
i2c-dev

# yum install -y i2c-tools

で、見えた
# i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --

python script 動いた

# cat ./ht16k33_7seg_cpu-temp.py
#!/usr/bin/env python

import time

from Adafruit_LED_Backpack import SevenSegment

def get_cpu_temp():
    with open("/sys/class/thermal/thermal_zone0/temp", "r") as f:
        t=f.read()
    return int(t)/1000

segment = SevenSegment.SevenSegment(address=0x70)

segment.begin()

print "Press CTRL+Z to exit"

while(True):
  cpu_temp=get_cpu_temp()
#  print cpu_temp
  segment.clear()
  segment.set_digit(0, int(cpu_temp / 10))
  segment.set_digit(1, cpu_temp % 10, decimal=True)
  segment.set_digit(2, 'C')
  segment.set_digit(3, '-')
  segment.set_colon(0)

  segment.write_display()

  time.sleep(0.25)

0 件のコメント: