通过 RPi 托管网站控制 Arduino 输出

Posted

技术标签:

【中文标题】通过 RPi 托管网站控制 Arduino 输出【英文标题】:Controlling Arduino Output Via RPi Hosted Website 【发布时间】:2016-01-30 19:44:01 【问题描述】:

我目前有一个由我的 Raspberry Pi 托管的基本网站。我想做的是通过 html 表单按钮控制数字输出。目前,当我在 LAN 上时,它可以工作,因为按钮表单操作设置为 Arduino 的本地 IP。我正在努力弄清楚如何从另一个网络或我的手机控制这些输出。

我是否在正确的轨道上认为我需要将开/关命令传递给托管在 RPi 上的 php 脚本之类的东西,并让 php 脚本生成 Post 请求?

有没有人可以让我指出正确的方向?

提前致谢

【问题讨论】:

如果您希望能够从 LAN 外部访问您的 RPi,您需要将路由器配置为在收到外部请求时中继与您的 RPi 的连接。您可能还需要对 Pi 的防火墙设置进行适当的更改。如果您的 ISP 没有为您提供静态 IP,您可以使用许多免费的动态 DNS 服务,例如 DuckDNS。 感谢您的回复。我确实已经设置好了。我想我需要改写我的问题。 我需要创建一个托管在 RPI 上的 php 脚本。我需要该 php 脚本来接受 HTML 按钮值(1 或 0)并向我的 arduino 发送 GET 请求。我可以通过 HTML 表单直接将该 GET 请求发送到 Uno (192.168.1.9),但是一旦我在我的网络之外调用该网站,GET 请求仍然会发送到 192.168.1.9,但由于显而易见的原因,这不起作用。我想归根结底是我需要帮助创建一个 php 脚本,该脚本将采用 HTML 表单按钮输入并为 Arduino 创建一个 GET 请求。非常感谢您的帮助。 接受按钮值,决定做什么,然后使用cURL 发出 GET 请求?向我们展示您迄今为止所做的尝试。 在 index.html 我有 -
开启 关闭
【参考方案1】:

您可以使用 RPi 托管网站控制 Arduino GPIO。

你需要学习什么:

Arduino 和 RPi 之间的 I2C/串行/SPI 通信 (Sample Tutorial (I2C)) CGI 可以执行用 C/C++、Python 等重定向 print/println/cout 编写的程序作为 Web 响应,并且您可以执行系统命令来操作通信总线、gpio 和系统调用。要了解有关 CGI 的更多信息,click here。 (Get started with CGI) 您可以像调用网页一样从 URL 调用 CGI 程序:("192.168.1.0/cgi-bin/HelloWorld" , for RPi "/usr/lib/cgi-bin /" 是存储 CGI 程序的文件夹,而 "HelloWorld" 是您的可执行文件)。

例如,假设您想通过 RPi 上的网页来关闭 Arduino 的板载 LED D13。网页包含两个按钮,开和关。按下(单击)“开”时,调用通过 I2C 写入命令 Arduino 的 C/C++ 或 Python 代码。定义要遵循的通用协议,以便 Arduino 可以理解 C/C++ 或 Python 发送的字节。就像,如果 Arduino 从主 (RPi) 收到 1,它应该打开 D13 led 并关闭 0。

【讨论】:

legomindstormsrobots.com/arduino/… 似乎不再加载,重定向。可能喜欢:oscarliang.com/raspberry-pi-arduino-connected-i2c

以上是关于通过 RPi 托管网站控制 Arduino 输出的主要内容,如果未能解决你的问题,请参考以下文章

如何控制arduino的一个引脚电压输出

arduino IO口

arduino怎么用ks103

arduino如何串口输出变量的值

我想用网络浏览器控制 Arduino 的数字输出端口。我该怎么办?

arduino两个led灯交替闪烁