如何在没有 sudo 权限的情况下运行 Neopixel 以在 alexa 应用程序中使用



我正在创建一个Alexa应用程序,允许用户使用简单的语音命令打开一组NeoPixel(WS2812(LED。该应用程序托管在树莓派 4 上,目前可用于打开 GPIO 引脚。我遇到的问题是打开 NeoPixel 的代码需要 sudo 权限,因此在使用 alexa 应用程序时,它只会出错而不是打开灯。

由于需要 sudo,我能够运行脚本的唯一方法是

sudo python3 LEDTest2.py

哪个工作正常

这是Alexa应用程序的实现,打开GPIO引脚并调用python程序

@ask.intent('GpioIntent', mapping = {'status':'status'})
def Gpio_Intent(status,room):
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)    
GPIO.setup(17,GPIO.OUT)
if status in STATUSON:
GPIO.output(17,GPIO.HIGH)
LEDTest2.func() ###Problem Point###
return statement('turning {} lights'.format(status))

这适用于打开 GPIO 引脚

这是 LEDTest2.func((


import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.D18,60)
def func():
print("func() in LEDtest2.py")
pixels.fill((255, 197, 143))
time.sleep(5)
pixels.fill((0,0,0))
if __name__ == "__main__": #same as file one
print("LEDtest2.py is being run directly")
for x in range(2): 
pixels.fill((0, 255, 0))
time.sleep(.1)
pixels.fill((0, 0, 0))
time.sleep(.1)

else:
print("LEDtest2.py is being imported into another module")

如何在不需要 sudo 权限的情况下运行此代码? 有没有另一种方法可以使用 Python 控制 WS2812 LED?

编辑:只是为了澄清我对GPIO引脚没有任何问题,它是NeoPixel库,没有sudo权限就无法使用

我能够在没有sudo的情况下控制它。 您应该从 raspi-config 启用 SPI 接口。 当然,首先将LED连接物理移动到GPIO10并更改代码中的引脚。 我试过了,这对我有用。

相关内容

最新更新