Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Android应用程序向Raspberry PI发送命令_Android_Linux_Apache - Fatal编程技术网

使用Android应用程序向Raspberry PI发送命令

使用Android应用程序向Raspberry PI发送命令,android,linux,apache,Android,Linux,Apache,我目前正在做一个小项目,简单地控制我公寓里的灯光。我有一个树莓Pi设置,用433MHz的发射机控制灯光。我可以通过PI上的命令行使用“发送代码”命令向灯发送开/关命令。我希望创建一个Android应用程序来为我做到这一点,我正在寻找一种方法来实现这一点 Raspberry Pi始终连接到internet,因此我考虑在其上托管一个Apache Web服务器,然后从应用程序向其发送命令。有人知道怎么做吗?我一开始对Apache或Web服务器知之甚少,但我的基本谷歌搜索已经提出了使用http POST

我目前正在做一个小项目,简单地控制我公寓里的灯光。我有一个树莓Pi设置,用433MHz的发射机控制灯光。我可以通过PI上的命令行使用“发送代码”命令向灯发送开/关命令。我希望创建一个Android应用程序来为我做到这一点,我正在寻找一种方法来实现这一点

Raspberry Pi始终连接到internet,因此我考虑在其上托管一个Apache Web服务器,然后从应用程序向其发送命令。有人知道怎么做吗?我一开始对Apache或Web服务器知之甚少,但我的基本谷歌搜索已经提出了使用http POST的想法


找出如何使用HTTP post是最好的方法,还是有更简单的方法?

有很多选择,但可能一些运行在Raspberry PI上的Python web框架可以完成这项工作(Twisted、Django或其他许多)。 Python预先安装在PI中,因此它可能是更容易的选择

然后,您的Android应用程序将向Python web服务器运行HTTP请求(使用HttpClient或更详细的内容),该服务器将响应bash代码


真正的问题是,当你想要保护你的终点(通过登录或通过Https发送的任何秘密)以确保你是唯一一个打开/关闭灯光的人:)

我个人会使用SSH库,比如创建一个简单的android应用程序,只需按下一个按钮,即可将所需的命令发送到你的raspberry pi。当然,如果您需要学习如何制作android应用程序,请先看一看。

您应该能够以这种方式处理问题,但如果您是第一次尝试,设置服务器可能会有点棘手。我几乎建议将它设置在AWS之类的东西上,在某个有友好UI的地方使用,让它工作起来,然后尝试将您在该过程中学到的知识转移到PI中。当然,这只是我的意见。如果你在谷歌上搜索一下,你会发现你的raspi项目就是这样做的。安装一个Web服务器,然后从同一网络中的浏览器连接以打开和关闭LED。哈哈,现在,我会让每个人都打开和关闭我的灯,这只是一个更大的测试池!你知道我可以从哪里开始了解设置类似设置的基础知识吗?谷歌输入的一些关键词可能也在考虑这个选项。只需创建通过ssh向PI发送命令的按钮。我才刚刚开始使用ssh,所以这是一个快速的初学者问题。我是否需要在应用程序打开的整个过程中打开ssh会话,或者我可以在不保持连接打开的情况下通过ssh发送单个命令?@Brian5193您只需要在每次发送命令时创建一个会话,发送命令,然后断开连接。虽然此链接可以回答问题,最好在这里包括答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@Ferrybig我会在稍后有时间的时候提供一个MCV片段——这是否足以改进我的答案,还是应该有更多?我举了一个例子(作为jsch),说明他们如何实现我提出的解决方案,而不是说他们应该使用它,所以我真的不知道我还应该改变什么。至于安卓应用程序链接,这是安卓新开发人员的文档,因此我觉得这里没有办法对其进行总结。@HarryShipton提供了一个如何使用库向其他设备发送命令的示例,这将使您的答案更加详细,并为OP提供一个代码外观示例。我建议您也将上一条评论中的信息移动到关于根据需要创建会话的答案中,因为这也是有用的信息