我是Android的新手,希望有人帮助我编写一个简单的应用程序,在其中我可以通过两个按钮将适当的订单发送到PHP中的这个简单脚本,该脚本允许通过RPi控制光线。
<?php
$setmode17 = shell_exec("/usr/local/bin/gpio -g mode 17 out");
if(isset($_GET['on'])){
$gpio_on = shell_exec("/usr/local/bin/gpio -g write 17 1");
echo "LED is on";
}
else if(isset($_GET['off'])){
$gpio_off = shell_exec("/usr/local/bin/gpio -g write 17 0");
echo "LED is off";
}
?>
安卓代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class LightsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lights);
final Button buttonOn = findViewById(R.id.lights_on_button);
buttonOn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
final Button buttonOff = findViewById(R.id.lights_off_button);
buttonOff.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
}
});
}
}
光通过 GPIO 端口通过中继通道模块连接,我通过 python shell 控制它。
如果有人需要它,我得到了解决方案:
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class LightsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lights);
final Button buttonOn = findViewById(R.id.lights_on_button);
buttonOn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Background_get().execute("on=ON");
}
});
final Button buttonOff = findViewById(R.id.lights_off_button);
buttonOff.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new Background_get().execute("off=OFF");
}
});
}
private class Background_get extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
try {
/* Change the IP to the IP you set in the arduino sketch */
URL url = new URL("http://192.168.100.26/gpio.php?" + params[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder result = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null)
result.append(inputLine).append("n");
in.close();
connection.disconnect();
return result.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
}