这种架构可行且灵活吗?


9

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

我要存档的内容:通过互联网控制我的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服务器通过将HTTP请求发送到ESP8266(通过Wi-Fi)来实现。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版将通过某种开关跟踪机制的开启,从而找到一种方法来判断容器是否已更改。但这目前不在我的项目范围内。


您好,欢迎来到物联网!尽管我并不想说服您将这个问题移至其他位置(此处很好),但我想邀请您访问raspberrypi.stackexchange.com,以解决与该问题有关的任何其他问题(或您可能想提供的答案)。 Raspberry Pi :)
Ghanima '17

@Ghanima我知道这个网站的存在,我现在才“加入社区”,谢谢
Etsitpab Nioliv

2
HTTP?您应该使用HTCPCP
JAB

Answers:


5

您建议的体系结构似乎还可以。您可以在此基础上构建更多功能,例如身份验证和请求清除(例如一天中的时间控制,速率限制等),因此这是一个很好的研究示例。

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

还有更多要考虑的因素,例如温度感应,水位(注意污染)和其他功能。RGB吊舱跟踪(这是否使其成为一次性机器,还是需要吊舱未更换的警报?)


1
编辑了我的答案,以提供有关最终目标和达到目标的步骤的更多信息
Etsitpab Nioliv
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.