我正在制作一个带有Raspberry Pi和Arduino的家庭自动化系统。我在pi上托管一个简单的HTML网站,带有一些按钮和指示器。我已经通过UART(Tx,Rx)将Arduino连接到PI,我可以使用命令echo [data] > ttyAMA0
向Arduino发送一个字节/字符串。
现在我想问一下如何从网站上的Pi终端上执行命令 - 让我们说当我按下其中一个按钮时,我想向Arduino发送命令echo A1 > ttyAMA0
。
答案 0 :(得分:1)
您可以将您的程序设置为专用的Web服务器(您不必总是在Rasberry Pi上安装Apache或Lighttpd等通用Web服务器程序)。
特别是,您可以编写自己的C程序并在其中使用libonion HTTP Web服务器库。这个libonion有一个examples/oterm/子目录,完全符合你的要求(给一些Web界面提供一个终端 - 在浏览器中使用HTML5和AJAX技术 - 用shell)。您可以使用一些Web处理程序为您的libonion
程序编写一些IO(使用fprintf
& fflush
)到您的Arduino板。但要注意安全问题。
此外,Web服务器可以使用CGI或FastCGI技术来运行外部程序。如果运行通用Apache或Ligghtd,您可以明智地配置它以启用和使用CGI或FastCGI程序。