我在python中使用raspberry pi进行编码。我想通过互联网控制我的pi,因为我需要将数据从我的Android应用程序发送到我的Pi上运行的python脚本。例如,如果我点击我的Android应用程序上的按钮B,树莓派的python脚本应该获取数据" 12345"通过Internet作为字符串或整数。我将比较收到的数据并在python中采取所需的操作。同样,反之亦然。如果我单击tkinter创建的python中的按钮,python应该发送一些数据说" 67890"通过互联网作为我的Android应用程序的字符串或整数。我将比较收到的数据我的Android应用程序并采取必要的行动。在Java上创建的android应用程序和Pi上的python脚本之间发送和接收数据的持续过程应该继续。我已经创建了没有这个通信部分的python程序和android应用程序。如何进行数据发送?
答案 0 :(得分:3)
您不应该从互联网上的通信开始。一开始可以使用你的本地WiFi(代码保持不变,但你不能将你的RPi设置为带有DynDNS的服务器等等。如果你不知道哪个也是危险的你正在做什么)。
然后从python-part开始。您的Pi充当您的应用程序的服务器。所以看一下使用Python的ServerSockets:like this example。在此处定义运行服务的端口。 您的python代码现在将在该端口上等待传入的连接。
现在,在您的Android设备上,您需要连接到该套接字。
Socket sock = new Socket("IP-ADDRESS_OF_YOUR_RPi", PORT);
现在您的Android通过本地WiFi与您的RPi连接(假设两者都在同一网络中)
然后,您可以通过Android-App和Python-Server之间的输入和输出流进行通信。
但你绝对应该对服务器客户端和TCP套接字通信进行一些研究。将此应用程序连接到Internet是您应该做的最后一步(因为互联网服务器上的开放端口是对犯罪分子的邀请)。