微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

初学者问题:RASP PI 4 - Python - IOError

如何解决初学者问题:RASP PI 4 - Python - IOError

我正在尝试使用灯光控制建立我自己的 Raspy 安装。

我正在尝试让脚本代码正常工作,以启用灯光控制服务。

我收到一条非常简单的错误消息,但我无法自行修复:

Traceback (most recent call last):
  File "test.py",line 13,in <module>
    bus.write_byte_data(0x39,0x00 | 0x80,0x03)
IOError: [Errno 5] Input/output error

我只想向您展示完整的代码。有谁能帮助我吗? :)

from os import system
system("sudo killall pigpiod")
system("sudo pigpiod")
import RPi.GPIO as GPIO
import time
import pigpio
import smbus


bus = smbus.SMBus(1)
#Lichtsensor (Adresse 0x39) initialisieren
#Power On Mode
bus.write_byte_data(0x39,0x03)
bus.write_byte_data(0x39,0x01 | 0x80,0x02)

#kurze Pause
time.sleep(0.5)

#Lichtsensor auslesen
data = bus.read_i2c_block_data(0x39,0x0c | 0x80,2)
data1 = bus.read_i2c_block_data(0x39,0x0e | 0x80,2)

#Lichtdaten aufbereiten
ch0 = data[1] * 256 + data[0]
ch1 = data1[1] * 256 + data1[0]

#Lichtdaten ausgeben
print "Volles Spektrum (Infrarot+sichtbar) : %d lux" %ch0
print "Infrarot-Wert: %d lux" %ch1
print "sichtbares Licht-Wert : %d lux" %(ch0 - ch1)

#GPIO ports setzen und zuweisen
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
red = 17
green = 27
blue = 22
PIR = 5

GPIO.setup(red,GPIO.OUT)
GPIO.setup(green,GPIO.OUT)
GPIO.setup(blue,GPIO.OUT)
GPIO.setup(PIR,GPIO.IN)
pi = pigpio.pi()

#Variablen definieren
pi.set_PWM_dutycycle(red,0)
pi.set_PWM_dutycycle(green,0)
pi.set_PWM_dutycycle(blue,0)
fade_in_delay = .1
fade_out_delay = .1
delay_time = 5
mycolor = blue
brightness = 200
min_light = 9
moment = 0

RUNNING = True

#Script starten
try:
    while RUNNING:
        data = bus.read_i2c_block_data(0x39,2)
        data1 = bus.read_i2c_block_data(0x39,2)
        ch0 = data[1] * 256 + data[0]
        ch1 = data1[1] * 256 + data1[0]
        light = ch0 - ch1
        print "sichtbares Licht-Wert : %d lux" %(light)
        if pi.read(PIR):
            print "PIR = ON"
        else:
            print "PIR = OFF"
        if moment > 1:
            start = moment
        else:
            start = 0
        if (pi.read(PIR) & (light < min_light)):
            for x in range(start,brightness):
                pi.set_PWM_dutycycle(mycolor,x)
                time.sleep(fade_in_delay)
                moment = x
                while (pi.read(PIR) & (light < min_light)):
                    time.sleep(delay_time)
                if not (pi.read(PIR) & (moment > 0)):
                    for x in range(brightness,-1):
                        pi.set_PWM_dutycycle(mycolor,x)
                        time.sleep(fade_out_delay)
                moment = 0
except KeyboardInterrupt:
        RUNNING = False 

我无法转换常用工具来解决我使用谷歌遇到的问题。我也只是编写自己的 python 脚本的初学者。通常我会寻找现有的代码(像这样)并为我自己的用例完成它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。