Klicka på en html knapp för att starta ett python skript

Permalänk

Klicka på en html knapp för att starta ett python skript

Hej,

Jag vill kunna tända och släcka en lysdiod som är inkopplad på GPIO pinnarna på min raspberry pi genom två html knappar på en webbsida.
Någon som vet hur jag ska göra?

Permalänk
Medlem

Nu har jag inte pillat speciellt mycket med Python, men min första googling gav detta:
https://www.raspberrypi.org/forums/viewtopic.php?t=108921#p74...

Tror att du borde kunna trigga dina gpio pins samt exekvera annan kod med detta som grund

Annars bör det inte vara så bökigt att skriva en kodsnutt i t.ex PHP för detta.

Permalänk
Medlem

Du måste ha en webbserver som kan a) publicera en webbsida och b) köra python-kod.
Python innehåller faktiskt en basal webserver, så du slipper installera typ apache.

Här finns en guide som verkar ganska on point: https://www.e-tinkers.com/2018/04/how-to-control-raspberry-pi...

Visa signatur

Brass knuckles and a 2x4

Permalänk
Medlem
Skrivet av Millhouse:

Hej,

Jag vill kunna tända och släcka en lysdiod som är inkopplad på GPIO pinnarna på min raspberry pi genom två html knappar på en webbsida.
Någon som vet hur jag ska göra?

Om du har möjlighet att använda PHP så behöver du inte Python för att sätta en GPIO-pinne High/Low.
Här ett snabbt exempel testat under apache/PHP7.2 på en RPi.
på en fil kallad gpio.php:

<?php // Hämta on för att se om dioden ska vara tänd eller släkt. $stat = isset($_GET['on']) ? $_GET['on'] : ""; settype($stat, 'integer'); ?> <html lang'sv'> <head> <title>GPIO</title> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'> </head> <body> <?php // Skapa en länk för att tända eller släcka dioden. if($stat>0) { echo "<a href='gpio.php?on=0'>Släck Dioden.</a><p>";} else { echo "<a href='gpio.php?on=1'>Tänd Dioden.</a><p>";} // Skicka kommandot 0 eller 1 (Low eller High) till pinnen BCM 2 $status = shell_exec("gpio write 1 '$stat'"); ?> </body> </html>

Du kan också kontrollera statusen för val GPIO-pinne med:

// Kontrollera nuvarande status (Low eller High) på pinnen BCM 2 (returnerar null eller 1 som svar). $statusGPIO = shell_exec("gpio read 1");

Visa signatur

Asus C6H | R9-3900XT | 4x8GB G-Skill Ripjaws V 3600@3466 CL14 | Asus Radeon RX 580 8GB Strix Gaming OC | Asus Strix Raid DLX | Corsair Obsidian 750D AE

Permalänk

Stort tack för svar. Ska prova båda alternativen