R rPython远程计算机的python

时间:2016-03-10 20:50:32

标签: python r raspberry-pi shiny rpython

我想构建一个Shiny应用程序,并通过使用raspberry pi的GPIO引脚来控制一些硬件。 如果我在pi上安装R并使用像

这样的代码
library(rPython)
python.exec("
                import RPi.GPIO as GPIO
                import time
                GPIO.setmode(GPIO.BCM)
                GPIO.setwarnings(False)
                GPIO.setup(18,GPIO.OUT)
                GPIO.output(18,GPIO.HIGH)
            ")

我可以通过raspberry pi的R控制台很好地控制GPIO引脚的输出和输入。但由于pi不能托管Shiny服务器,有没有办法可以使用我的笔记本电脑的R会话连接到pi的python环境并通过rPython控制GPIO引脚? 或任何其他任务的建议?

1 个答案:

答案 0 :(得分:2)

试用R&#39 {s} svSocket套餐。这通过TCP / IP协议进行通信。使用此软件包,您可以在pi上设置服务器。像

require(svSocket)
startSocketServer(port = 9999) # choose your preferred port
while(1)
{
   ... # some code to do
   Sys.Sleep(0.05) # give the system some time to do other things
}

这使你的pi能够在while语句中做一些事情。并行地,您可以向其发送一些代码,这些代码将从正在运行的服务器进行评估。

在您计算机的R会话中输入:

require(svSocket)
con <- socketConnection(port = 9999)

evalServer(con, <code to evaluate on your pi>)

这是我在不同计算机上与不同R会话交谈的方式。

最佳! 马丁