Odpowiedzi:
Możesz to zrobić na wiele sposobów, używając CGI lub innego skryptu po stronie serwera. Jednym z problemów będą uprawnienia do dostępu do pinów GPIO. Wydaje się, że nie ma czystego rozwiązania . Obecnie najłatwiej jest udostępnić pliki GPIO użytkownikowi, który uruchamia serwer WWW, wywołać program (suid), który może uzyskać dostęp do pinów lub mieć osobnego demona z dostępem do pinów, do których można wysyłać wiadomości (sygnał, potok / socket, other ipc ...).
Do „wykonywania skryptu Pythona poprzez interfejs WWW”, warto spojrzeć na web.py . Jest to bardzo schludny mały moduł, który pozwala napisać pojedynczy plik „usługa sieciowa”, który może zrobić wszystko. Bardzo przydatny do tego typu edytorów IME. Nie wymaga efektywnej konfiguracji ani specjalnego oprogramowania (oprócz wspólnej instalacji Pythona i samego pliku web.py). Wystarczy napisać moduły obsługi adresów URL w pythonie, opcjonalnie z szablonami HTML i uruchomić. Skieruj klienta (przeglądarkę, inny skrypt, wget ...) na właściwy port i to po prostu działa. :)
Edycja: Wykryto nowy projekt, serpint wydaje się pozwalać na poruszanie gpio z gniazda lub ewentualnie fałszywego interfejsu urządzenia char.
Jeśli dopiero zaczynasz od tworzenia stron internetowych, spójrz na Bottle . Butelka jest prostsza niż flask w tym sensie, że jest kompletną strukturą internetową w jednym pliku. W przeciwieństwie do tego, Flask chce ponownie wykorzystać kod dźwiękowy z różnych bibliotek i dlatego może być bardziej solidny, ale także bardziej złożony.
Oto Hello World with Bottle:
from bottle import route, run, template
@route('/hello/:name')
def index(name='World'):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
Uruchom z:
python HelloBottle.py
I otwórz w przeglądarce: http://localhost:8080/hello/world
Aby twoja strona dostępna z innych komputerów, zestaw host
do 0.0.0.0
w run
metodzie. Ostatni wiersz powyższego Hello World powinien brzmieć:
run(host='0.0.0.0', port=8080)
Powinieneś być teraz w stanie uzyskać dostęp do swojej witryny za pośrednictwem adresu IP Pi, w następujący sposób: http://192.168.0.123:8080/hello/world
Więcej informacji znajduje się w dokumentacji butelki dotyczącej wdrożenia .
curl http://localhost:8080/hello/world
, otrzymuję oczekiwane wyniki. Jednak chcę mieć dostęp do tego na moim zwykłym komputerze przez sieć LAN. Po użyciu ifconfig
na mój adres IP, następujący URL na mój zwykły komputer nie jest w stanie nawiązać połączenia: http://192.168.1.102:8080/hello/matthew
. Mam dostęp do innej strony, którą utworzyłem pod adresem ` 192.168.1.102/home.php '. Czy masz jakiś pomysł, jak mogę przejść do mojej strony z butelkami?
0.0.0.0
powoduje, że butelka będzie nasłuchiwać pod dowolnym adresem , w tym z Pi.
rpi#> sudo apt-get install ipython-notebook ipython3-notebook
Następnie uruchom:
rpi#> ipython notebook
Uwaga: Możesz uzyskać do niego dostęp również z komputera:
rpi #> ipython notebook --ip = 10.0.0.7
# tutaj 10.0.0.7 to mój adres IP RPi.
# z innego komputera w przeglądarce piszę:
http://10.0.0.7:8888
Zobaczysz to:
Następnie utwórz nowy notatnik i uruchom tam swój kod:
Test metody:
http://ipython.org/
http://jupyter.org/
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
http://maxembedded.com/2014/07/ using-raspberry-pi-gpio-using-python /
Youtube: https://www.youtube.com/watch?v=cJuF4IDMuLY
Muzyka działa na RPi w tle w programie linux screen na mps-youtube.
rpi#> sudo apt-get install python3-pip
rpi#> sudo pip3 install --upgrade mps-youtube
rpi#> sudo pip3 install --upgrade https://github.com/mps-youtube/pafy/archive/develop.zip
rpi#> mpsyt # to start it
# configure mpsyt to show video, player.
mpsyt#> set show_video True
mpsyt#> set player omxplayer
mpsyt#> set search_music False
mpsyt#> . lindsey stirling
mpsyt#> 2 # to play song from a list.
Powodzenia!
Oto samouczek, w jaki sposób można to osiągnąć: https://roderickvella.wordpress.com/2017/01/04/control-a-separate-running-script-from-a-web-server-python-rpi/