在 Raspberry Pi 4 中使用 RPi.GPIO 寻求帮助。
我有一个简单的 Greengrass Lambda 函数,它试图使用 RPi.GPIO 模块从电阻式土壤湿度传感器收集数据。我的 Lambda 函数依赖于 RPi.GPIO 模块的 Python3.7 和 0.7.0 版本。我已经使用简化的 Python 脚本验证了 GPIO 模块已安装并在 Greengrass 之外的设备上正常工作。
import RPi.GPIO as GPIO
import RPIO
import time
channel = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.IN)
def callback(channel):
if GPIO.input(channel):
print("No water detected")
else:
print("Water detected")
GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=300)
GPIO.add_event_callback(channel, callback)
while True:
time.sleep(1)
Greengrass Lambda 可以通过 IoT 组中定义的本地资源访问本地 /dev/gpiomem 文件系统。我正在使用经典(V1)。
但是,当我尝试部署 Lambda 函数时,出现以下错误:
-lambda_runtime.py:382,由于异常无法初始化Lambda运行时:这个模块只能在树莓派上运行!
我在我的 RPi 上安装了两个版本的 Python(2.7.16 和 3.7.3,Greengrass 运行时使用 3.7)并且已验证两者都具有 RPi.GPIO 模块的 0.7.0 版本。
我的 Lambda 函数显式导入模块
import logging
import platform
import sys
import RPi.GPIO as GPIO
import time
from threading import Timer
import greengrasssdk
有没有人遇到过这个问题,你会推荐什么解决方案?