我想构建一个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引脚? 或任何其他任务的建议?
答案 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会话交谈的方式。
最佳! 马丁