这种架构是否可行且灵活?

物联网 树莓派 微控制器 无线上网 ESP8266 系统架构
2021-06-21 01:53:04

我在确保我的项目确实可行时遇到了麻烦。

我想要存档的内容:通过互联网控制我的 Senseo 咖啡机。它归结为简单地控制 2 个按钮。

第一个简单的解决方案:

  1. 在我的 Raspberry Pi 上设置一个 NodeJS 服务器。
  2. 我将 Raspberry GPIO 连接到 2 个晶体管,以控制咖啡机按钮
  3. 我可以直接在 Javascript 中控制 Raspberry GPIO。例如调用http://myraspberrypi.com/makemeacoffee激活 GPIO,激活按钮,咖啡流动

但是:我不想将树莓派插入咖啡机(我需要将 Pi 用于其他目的),并且我认为将 Web 服务器和控制器本身解耦是一个好主意。如果明天我想监控我浴室的温度,或者控制第二台咖啡机(使用另一个 ESP8266),我希望能够在不重新考虑整个事情的情况下做到这一点。

我需要存档的是带有 NodeMCU 的 ESP8266,以将其用作 Wi-Fi 无头控制器(请参阅此链接)。不再使用 Raspberry GPIO(这就是重点)。Pi 上只有一个 NodeJS Web 服务器。

这是架构的快速草图: 这种架构可行吗?

让我澄清一下主要组件的作用:

  • Raspberry Pi:托管 NodeJS Web 服务器
  • NodeJS Web 服务器:向最终用户提供网页。基本上是一个带有“给我泡杯咖啡”按钮的页面。在幕后,我们需要“按下”加热水按钮,等待 30 秒,然后“按下”咖啡按钮。Web 服务器通过向 ESP8266(通过 Wi-Fi)发送 HTTP 请求来实现。NodeJS 服务器也做日志和数据分析(你今年喝了多少咖啡?)
  • ESP8266:使用 NodeMCU。它的 GPIO 连接到控制咖啡机按钮的晶体管。我不在乎如何为 ESP8266 供电。它运行一个 Web 服务器来侦听 Raspberry Pi 请求并相应地对 GPIO 执行操作。

这种架构可行吗?这种架构灵活吗?


编辑,回答 Sean Houlihane(剧透以保持帖子相对较短):

我对此不是 100% 确定,但晶体管似乎就足够了。咖啡机开关在低电压 (3,3V) 下工作,ESP8266 不会与咖啡机共用地面。

关于温度感应和水位控制,Senseo咖啡机内置了这个。典型用途:按中央按钮启动加热过程,按“单”或“双”按钮选择咖啡大小。一旦加热过程结束,咖啡就会开始流动。如果没有足够的水,它会结束并且 LED 闪烁。

我期望的进展:

  • 1.0 版将是“只需运行咖啡机,我确定它已准备就绪”。我控制单杯按钮和加热按钮。
  • 2.0 版将是“运行机器并给我反馈”我有另一个 ESP8266,插入到反馈 LED 上(这样我就可以知道它何时加热以及何时缺水)和另一个 ESP8266 以确保在运行咖啡机之前,杯子就在那里。我也可能会在咖啡机运行时添加一个警报,告诉用户更换豆荚。

  • 3.0 版本将找到一种方法来判断 pod 是否已更改,通过使用某种开关跟踪机制的打开情况。但这目前超出了我的项目范围。

1个回答

您提出的架构看起来不错。您可以在此基础上构建更多功能,例如身份验证和请求清理(例如时间控制、速率限制等),因此这是一个很好的研究示例。

实现中可能有一些您尚未研究的重要细节。例如,晶体管开关 - 这可能需要是一个 mosfet,可能是一个继电器(或固态继电器),并且可能有电压和隔离问题。

还有更多需要考虑的事情,温度感应、水位(注意污染)和其他功能。RGB 吊舱跟踪(这使它成为一次性机器,还是需要吊舱不可更换警报?)