我的 Web 服务器如何向我的物联网设备发送 Web 请求?
How my Web server can send Web requests to my IoT thing?
注意:关于 IoT 概念的新手!
我会尽量简短并解释我想做什么:
- 假设我已经把我的开发板(随便你了;arduino, rpi, esp8266。唯一的要求是上面有一个WiFi模块)连接到我的电热水器。
- 我 return 下班了,我希望水可以用来洗澡。
- 我唯一要做的就是访问(通过我神奇的智能手机)
mywaterheater.herokuapp.com/manage/
,然后按名为 activate
! 的 button
- 砰!开发板 收到 来自用户代理的 Web 请求,它激活了继电器,我的热水器现在打开了。
这能实现吗?
我怀疑我必须将我的开发板变成路由器才能侦听 Web 请求(GET、POST、PUT)。 WoT是想解决这种事情吗?
假定任何 authentication/authorization 和安全问题都已得到解决。
是的,很多物联网设备都有网络服务器框架。您可以从网络请求触发 IO。但是您需要从互联网(端口转发、静态 ip 或 dynds)访问设备。还有通用智能phone app.
为了监听 HTTP 请求,应该在开发板上启动 HTTP 服务器。根据电路板类型,可能会有不同的选项,例如:
- NodeMcu ESP8266固件内置HTTP服务器;
- Web Server 使用 Arduino 和以太网
护盾;
- Multiple choices 对于 Raspberry Pi。
在开发板上启用服务器后,它将侦听指定 IP 和端口上的传入请求。假设您的开发板将放置在您的本地网络中,您将必须设置端口转发到路由器上的 IP:port。您还需要来自服务提供商的外部 IP 才能从 Heroku 应用程序访问您的开发板。
下一步是将 HTTP 客户端添加到您的 Heroku 应用程序,它将向开发板发送请求。同样,有很多不同的选择。例如,如果您的应用程序是用 Python 编写的,那么您可以为此使用 Requests 库。
因此,当您在 Heroku 提供的网页上按下按钮时,应用程序中的 HTTP 客户端将向路由器的 IP 地址发送请求。然后由于路由器上的端口转发,它应该到达你板上的 HTTP 服务器。
注意:关于 IoT 概念的新手!
我会尽量简短并解释我想做什么:
- 假设我已经把我的开发板(随便你了;arduino, rpi, esp8266。唯一的要求是上面有一个WiFi模块)连接到我的电热水器。
- 我 return 下班了,我希望水可以用来洗澡。
- 我唯一要做的就是访问(通过我神奇的智能手机)
mywaterheater.herokuapp.com/manage/
,然后按名为activate
! 的 - 砰!开发板 收到 来自用户代理的 Web 请求,它激活了继电器,我的热水器现在打开了。
button
这能实现吗?
我怀疑我必须将我的开发板变成路由器才能侦听 Web 请求(GET、POST、PUT)。 WoT是想解决这种事情吗?
假定任何 authentication/authorization 和安全问题都已得到解决。
是的,很多物联网设备都有网络服务器框架。您可以从网络请求触发 IO。但是您需要从互联网(端口转发、静态 ip 或 dynds)访问设备。还有通用智能phone app.
为了监听 HTTP 请求,应该在开发板上启动 HTTP 服务器。根据电路板类型,可能会有不同的选项,例如:
- NodeMcu ESP8266固件内置HTTP服务器;
- Web Server 使用 Arduino 和以太网 护盾;
- Multiple choices 对于 Raspberry Pi。
在开发板上启用服务器后,它将侦听指定 IP 和端口上的传入请求。假设您的开发板将放置在您的本地网络中,您将必须设置端口转发到路由器上的 IP:port。您还需要来自服务提供商的外部 IP 才能从 Heroku 应用程序访问您的开发板。
下一步是将 HTTP 客户端添加到您的 Heroku 应用程序,它将向开发板发送请求。同样,有很多不同的选择。例如,如果您的应用程序是用 Python 编写的,那么您可以为此使用 Requests 库。
因此,当您在 Heroku 提供的网页上按下按钮时,应用程序中的 HTTP 客户端将向路由器的 IP 地址发送请求。然后由于路由器上的端口转发,它应该到达你板上的 HTTP 服务器。