我刚刚买了一台 wifi 菠萝 Nano,并且一直是树莓派的长期爱好者,所以我非常兴奋地开始加入这两者。我已经将它连接到我的 Pi 上并进行了一些设置。我现在特别好奇的是,是否可以编写一个程序,根据菠萝广播的无线 LAN 上发生的事件,在树莓派上执行 GPIO 任务。一个示例是,如果检测到特定 MAC 地址并且所述客户端处于某个功率阈值内,则打开 LED。我现阶段缺乏知识,即菠萝如何与 pi(或任何其他“主机”)相适应。
具体来说,我是否编写我的程序(可能是 python,后来是通过 Flask 提供的一些 html 和 JavaScript)并将其托管在 pi 上?如果是这样,它如何与菠萝交互来获取MAC地址和连接功率dB?如果没有,我要把它托管在菠萝上吗?如果是这样,程序如何与 pi 交互以利用其 GPIO 引脚?我将如何编译我的代码以便菠萝可以使用它?是否有可用的模块可以帮助我大部分实现目标?最佳答案
我不太了解Pineapple Nano,但我发现,有一个带有模块Tracking的API。 API您应该能够设置当具有特定 MAC 地址的客户端连接到 AP 时运行的脚本。在脚本中,您可以在 Pi 上调用某些方法 API/Flask。
下一个解决方案可以是gpiozero
库,它有模块pingserver
doc ,
您可以在其中检查某个 URL 是否在线。如果您为要跟踪的客户端设置了 AP 静态 IP 地址,您可以使用此模块来确定是否在线(连接)或离线(断开连接)
示例:
from gpiozero import PingServer, LED
from signal import pause
client= PingServer('192.168.0.155')
led = LED(4)
led.source_delay = 60 # check once per minute
led.source = client.values
pause()
本例中,当IP地址为192.168.0.155的客户端上线时,LED会亮起。
也许会对你有帮助。
和平
关于python - WIFI Pineapple Nano 和 RPi GPIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53547919/