WIFI Ананасовый нано и RPi GPIO - PullRequest
0 голосов
/ 30 ноября 2018

Я только что получил ананас Wi-Fi Nano, и был давним энтузиастом Raspberry Pi, так что я очень рад начать присоединяться к ним.Я уже подключил его к своему Пи и немного поэкспериментировал с настройкой.Сейчас меня интересует, возможно ли написать программу для выполнения задач GPIO на Raspberry Pi, основываясь на событиях, происходящих в беспроводной локальной сети, передаваемой ананасом.Примером может быть включение светодиода, если определен MAC-адрес, и указанный клиент находится в пределах некоторого порогового значения мощности.На этом этапе мне не хватает знаний о том, как ананас сочетается с пи (или любым другим «хостом» в этом отношении).

В частности, пишу ли я свою программу (возможно, python, а затем немного html и JavaScript)служил над флягой) и хозяин на пи?Если да, то как он взаимодействует с ананасом, чтобы получить MAC-адрес и мощность соединения в дБ?Если нет, я принимаю это на ананасе?Если да, то как программа взаимодействует с пи для использования ее выводов GPIO?Как бы я скомпилировал свой код, чтобы ананас мог его использовать?Есть ли уже доступные модули, которые помогут мне пройти большую часть пути к моей цели?

1 Ответ

0 голосов
/ 30 ноября 2018

Я не очень хорошо знаю Pineapple Nano, но обнаружил, что есть API с модулем Tracking. API Вы должны быть в состоянии установить скрипт, который будет запускаться, когда клиент с конкретным MAC-адресом подключается к точке доступа.В скрипте вы можете вызвать некоторый метод API / Flask на вашем Pi.

Следующее решение может быть gpiozero библиотека, которая имеет модуль pingserver doc , где вы можете проверить некоторые URL, еслиВ сети.Если вы устанавливаете на своей точке доступа статические 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 выйдет в сеть, загорится светодиод.

Может быть, это поможет вам.

Peace

...