Você pode fazer isso acontecer de várias maneiras, usando CGI ou outro script do lado do servidor. Um problema serão as permissões para acessar os pinos GPIO. Não parece haver uma solução limpa . Atualmente, pode ser mais fácil exibir os arquivos gpio ao usuário que executa o servidor da Web, chamar um programa (suid) que pode acessar os pinos ou ter um daemon separado com acesso aos pinos para os quais você pode enviar mensagens (sinal, canal / socket, outro ipc ...).
Para "executar um script python através de uma interface web", que você pode querer olhar para web.py . É um pequeno módulo muito elegante que permite escrever um único "serviço da web" de arquivo único que pode fazer qualquer coisa. Muito útil para esse tipo de coisa IME. Requer efetivamente nenhuma configuração ou software especial (além da instalação comum do python e do próprio web.py). Basta escrever manipuladores para URLs em python, opcionalmente com modelos html e executar. Aponte um cliente (navegador, outro script, wget ..) para a porta correta e ele simplesmente funciona. :)
Edit: Um novo projeto manchado, serpint parece permitir balançando GPIO partir de uma tomada ou interface do dispositivo de char possivelmente falso.
Se você está apenas começando com o desenvolvimento da web, dê uma olhada no Bottle . O Bottle é mais simples que o balão, no sentido de que é uma estrutura da Web completa em um único arquivo. Por outro lado, o Flask visa reutilizar o código de som de diferentes bibliotecas e, portanto, pode ser mais sólido, mas também mais complexo.
Aqui está o Olá Mundo com Garrafa:
Execute-o com:
E abra em um navegador:
http://localhost:8080/hello/world
Para disponibilizar seu site em outros computadores, defina
host
como0.0.0.0
norun
método A última linha do Hello World acima deve então ser:Agora você deve conseguir acessar seu site através do endereço IP do Pi, desta forma:
http://192.168.0.123:8080/hello/world
Consulte a documentação do frasco sobre a implantação para obter mais detalhes.
fonte
curl http://localhost:8080/hello/world
, recebo os resultados esperados. No entanto, eu quero poder acessá-lo no meu computador comum pela LAN. Depois de usarifconfig
o meu endereço IP, a seguinte URL no meu computador normal é incapaz de estabelecer uma conexão:http://192.168.1.102:8080/hello/matthew
. Consigo acessar outra página da Web que fiz em ` 192.168.1.102/home.php '. Você tem alguma idéia de como eu posso na minha página de garrafa?0.0.0.0
fazer com que o frasco escute qualquer endereço , incluindo os Pi.Instale o iPython Notebook.
Em seguida, execute-o:
Bibliografia:
http://ipython.org/
http://jupyter.org/
https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/
http://maxembedded.com/2014/07/ usando-raspberry-pi-gpio-using-python /
Youtube: https://www.youtube.com/watch?v=cJuF4IDMuLY
Muito importante:
A música está sendo executada no RPi em segundo plano no programa linux screen sobre mps-youtube.
Boa sorte!
fonte
Aqui está um tutorial de como isso pode ser alcançado: https://roderickvella.wordpress.com/2017/01/04/control-a-separate-running-script-from-a-web-server-python-rpi/
fonte