Raspberry Pi – PHP wrapper voor Python telnet script
Dit is een PHP wrapper om te kunnen communiceren met dit Python telnet script.
Nu we de “serialrelay” in python hebben afgerond, kunnen we een PHP script (wrapper) bouwen om dit pyton script te bedienen, deze noemen we bijvoorbeeld serialrelay.php
We gebruiken een EXEC in PHP om het pythonscript aan te sturen: sudo python serialrelay.py [POORT] [COMMANDO] [VLAG]
Hiermee kun je via de HTTP adresbalk commando’s sturen naar de arduino:
dev = device (seriele poort)
cmd = commando naar de arduino
par = parameter (vlag om data terug te verwachten van de arduino), deze wordt dan geprint!
Voorbeelden:
http://192.168.x.x/serialrelay.php?dev=USB0&cmd=aan (zet de LED aan)
http://192.168.x.x/serialrelay.php?dev=USB0&cmd=uit (zet de LED uit)
http://192.168.x.x/serialrelay.php?dev=USB0&cmd=tekst&par=1 (geeft weer “Hallo Wereld”)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php // Instellingen $PythonBin = "/usr/bin/python"; $RelayScript = "serialrelay.py"; $ArduinoData = ""; // De PHP POST commando’s zoals ze in de HTTP lijn worden opgenomen, // deze worden opgeslagen in variabelen. $dev = $cmd = $par = ""; if(isset($_GET['dev'])) $dev = $_GET['dev']; if(isset($_GET['cmd'])) $cmd = $_GET['cmd']; if(isset($_GET['par'])) $par = $_GET['par']; // Voer het Python script uit met de commandolijn parameters, // de output (teruggezonden data van de arduino) wordt opgeslagen in variabele $ArduinoData. exec($PythonBin . " " . $RelayScript . " " . $dev . " " . $cmd . " " . $par, $ArduinoData); // Mocht er data teruggezonden worden van de Arduino (par=1) dan wordt deze weergegeven/geprint. echo $ArduinoData[0]; ?> |