在家中使用WiFi水壶,或如何使普通水壶真正智能

图片

前言



如果您阅读了我的上一篇文章(Arduino上的Running line),那么您可能已经知道我们有机会在我们的大学进行硬件课程项目。受以前工作的启发,我决定再次尝试用自己的双手做些事情。只有现在,这个话题才应该更加严肃。顺便说一句,我开始考虑在寒假期间,即学期前该做什么。我想同时做一些有趣和有用的事情。


搜寻想法



有一次,在“信息保护基础知识”中,我们有一个与知识产权和专利有关的主题。老师给了我们一项任务,即根据所有要求为任何设备颁发专利,并以wifi水壶为例。
他说-忘了。每个人都忘记了,但是在我脑海中这个话题仍然存在。当需要考虑下个学期的课程作业时,我想起了这个茶壶。

我决定要看的第一件事是已经完成的工作。当我看到只有三种支持WiFi控制的假人模型发售时,其中有两个属于同一公司,这让我感到惊讶。这些是Smarter iKettle 1.0和2.0和俄罗斯Polaris PWK 1792CGL。

图片

有趣的是,几乎每个房子都有普通的电热水壶,而且智能电水壶很少。比较iKettle和Polaris提供的功能,我列出了最必要的功能。这是发生了什么:

  1. 通过智能手机打开/关闭;
  2. 设定加热水的温度;
  3. 找出当前温度的能力;
  4. 跟踪水壶中当前的水量;
  5. 警告和防止少量水开启的保护措施;
  6. 设置自动唤醒时间;
  7. 准备通知;


看起来很真实,是时候开始做生意了。

搜索所需的组件



由于不可能制造出全新的水壶,因此决定修改现成的普通电水壶。仅仅在家里是一个孤立的水壶,开关坏了。

因此,我认为基础已经存在。

现在,我不得不开始寻找硬件组件。由于使用Arduino的经验很少,因此我决定在Arduino上实现所有功能。而且,Arduin自己及其模块很便宜。

由于我必须将水壶控制的整个部分插入水壶内,因此选择权在于Arduino Nano。它体积小巧,并且具有用于连接电缆的接口,与Pro Mini不同,Pro Mini必须通过UART进行刷新。

图片

wifi水壶的主要组件当然是wifi模块。在Internet上搜索负担得起的东西和许多教程,ESP8266都遇到了。即,在版本01上。我认为它价格便宜(约合2美元),并且有很多连接说明。停下来了。至于模块本身,这句话很好:便宜又开朗。但是稍后会更多。

图片

为了控制温度,我们需要某种防水温度传感器。我在速卖通上发现了一种防水的NTC热敏电阻,可以承受100度以上的温度。我还找到了与他合作的例子,因此在这里我迅速决定。

图片

当然,有必要决定如何使水壶在给定的时间点打开,当然,您可以在Arduino上使程序成为时钟并在时间一致时打开水壶,但这会不稳定,并且如果程序被意外重置,那么一切都会出错。因此,这里需要一个实时时钟。即DS1307。它们具有独立的电源(由3 V电池供电),并且我要在其上停止的模块上还有一个32K位EEPROM存储器芯片,我以前用来节省开机时间。

图片

哦,是的,由于水壶现在应该以编程方式打开,因此还需要一个1通道继电器。

图片

至于液位传感器,则必须手动完成。详细信息如下。

其余的仍然需要几个不同面额的电阻器,用于测试的面包板,用于实际安装的电路板,布线,带有助焊剂和焊料的烙铁以及耐心的绝大部分。

开发开始



由于该项目是一个wifi水壶,所以我想要和需要处理wifi模块的第一件事。包裹到达后,我立即打开包装并开始连接。

在互联网上找到了很多例子。3.3 V稳压器,用于RX和TX的分压器应有尽有。我通过示例收集了所有东西,将它们连接起来-它没有飞起来!事实证明,COM端口监视器中显示了一堆文本,该模块一直处于重置状态。它不响应发送的AT命令。本文的作者作品,我没有。

怎么了我试图寻找其他连接方案,依此类推,等等,但是该模块仍处于重置状态或不显示任何内容。在所有地方都用红色字体表示:“请勿应用于5 V模块,否则它将失败。”因此,寻找解决方案的时间有时会持续到晚上,我已经在考虑购买另一个模块,但决定使用万用表检查电压。

原来,当模块连接到3.3 V时,电压下降到3.2 V以下。看来,好的,它会下降。我决定从另一个电源为其供电,结果发现该模块在高于3.2 V的电压下仍能正常工作,而低于该电压还不够,并且会不断复位。

结果,我自己冒着风险,将其连接到5 V,一切正常,并且仍然可以正常工作。



其他组件没有此类问题。

在找出wifi之后,我必须决定如何处理液位传感器。在谷歌搜索中,我找到了一篇文章,作者在其中撰写了一篇土壤湿度传感器。当土壤变干时,传感器的电阻会增加,Arduino的模拟端口上的电压也会上升。通过检测电压的变化,可以检测液体的外观。用6个触点代替我的项目中的液位,其中一个触点连接到5 V输出,其余触点连接到模拟输入,而10kΩ电阻连接到GND。

这是测试的照片。




这就是液位传感器的结果。



我测试的下一件事是实时时钟。但是与他们合作基本上很简单。为了设置时间并获取有关时间的信息,我仅使用了库随附的示例来与DS1307一起使用。

结果,当所有东西都组装在面包板上时,我们在电线和模块之间遇到了这种交叉。顺便说一下,在这些照片中还有另一个温度传感器。



入门指南



现在,所有这些都必须焊接在电路板上。没什么特别的评论,所以只有一张照片。如您所见,添加了另一个按钮,以便您不仅可以从智能手机打开水壶,还可以以通常的方式打开水壶。





接下来,您需要将所有物品放入水壶中。






添加了石棉插件以防止所有内部过热。



没错,必须使用额外的塑料插件稍微抬起表壳。




现在转到移动部分。



至于应用程序,由于它是在Android OS下开发的,因此最初计划使用Android Studio。但是,为了研究新技术,决定使用现成的平台来开发物联网领域的程序。结果,选择权落在了Evothings产品-Evothings Studio上。

图片

它的主要优点如下:

-有关使用各种模块(Wifi,蓝牙)的大量标准示例;
-使用JS,HTML,CSS进行应用程序开发,可让您编写一种在Android和iOS上均能正常工作的代码,即仅绑定到一个平台的绑定消失;
-易于测试应用程序:智能手机上安装了一个应用程序以预览其开发,并且所有测试消息和错误消息均显示在计算机上的程序中;
-互联网上有关使用JS,HTML,CSS进行开发的大量信息;

在这个Evothings Studio中,有一个示例,该示例通过ESP8266发送开启请求来开启LED。我决定以该示例为基础,因为对我而言,最有价值的就是通过tcp套接字与WiFi模块进行通信。与发送打开LED的请求类似,我也请求更新水壶的传感器,设置打开时间,设置温度等。

然后我把准备就绪和少量饮水的通知搞砸了,好处是我们时代中的一切都可以轻松地搜索到。结果就是这样一个应用程序(一件不错的事情是使用CSS来创建应用程序接口):







智能手机和水壶互动的简要说明



服务器和客户端之间的通信使用WiFi模块进行。当您打开水壶控制模块时,WiFi模块将开始分发名为artKettle的网络。这是使用服务器端的AT命令完成的。因此,例如,要将模块置于接入点模式,则需要发送AT + CWMODE = 2命令。接下来,使用这些命令,您需要分配网络参数,允许连接多个设备并获取wifi本身的IP地址。

从客户端通过chrome.tcp.socket通过特定端口和wifi模块的ip地址进行连接。

将客户端连接到服务器后,您可以从智能手机控制水壶。考虑打开水壶的例子。

当您在artKettle应用程序中单击电源按钮时,将调用包含app.kettleOn()的相应功能。在此函数内部,两行传输到服务器端:

app.sendString('H');
app.sendString('U');


接下来是Arduino方面的工作。在第一行以字符“ H”到达后,将执行以下代码:
if(message.indexOf("H") >= 0 && waterDetected())  {
      digitalWrite(POWER_PIN, LOW); 
      IS_ON = true;
      Serial.println("ON");
      sendCIPData(0, "ON"); 
}


首先,它通过调用waterDetected()方法来检查水壶中是否有水。当水壶中有水时,请考虑使用该选项。

将低电压电平施加到继电器的控制引脚,这对应于继电器的控制引脚,即 电源电路闭合:
digitalWrite(POWER_PIN, LOW); 


然后将标志设置为指示水壶已打开,并在串行端口监视器的输出上显示一条消息。

之后,调用一个函数,该函数将响应消息发送到客户端,表明整个包含已成功完成:

sendCIPData(0, "ON");


在客户端,检查传入消息后,电源按钮将设置为“打开”状态:
if (buf.substr(0, 2) == "ON") {
	app.setButtonOn();
}


之后,将使用从客户端发送到服务器的字符“ U”来处理文本消息。这里,以类似于包含的方式,更新关于釜中的当前温度和液体量的信息。

因此,组织了客户端和服务器之间的双向通信,以便它们中的任何一个在任何给定时间都知道另一个的状态。

结论



该课程项目的结果是,对传统电水壶进行了修改,从而可以通过wifi从智能手机进行控制。现在,这个茶壶可以归因于物联网的代表。我们设法完全实现了所有功能,因此现在该水壶具有以下功能:

-通过智能手机打开/关闭;
-设定加热水的温度;
-找出当前温度的能力;
-跟踪水壶中当前的水量;
-警告和防止少量水开启的保护措施;
-设置开启时间;
-准备就绪通知;

已实施项目的优点是元素库的可访问性,因为您需要的所有内容都可以在电子组件的存储中找到,这是项目的可扩展性。由于水壶已经安装了所有必需的传感器,因此可以通过程序对其进行修改,并且不会比模拟水壶差。考虑到所使用的wifi模块的多功能性,您可以将其连接到Internet并组织对水壶的控制(位于世界任何地方),并使用在线服务处理SMS消息,可以组织SMS的收录。即该项目仍是非常可扩展的,为此有很多机会,但是由于它们不是正在开发的项目目标的一部分,因此并未实施。

当然,该项目也有弊端。第一个是Wifi模块的不稳定运行。一个模块有时只是失去其网络,开始重置设置,或者根本不处理输入信号。而且,这些是该模块用户中普遍的问题。第二个缺点是水壶没有机械停机。关机是通过软件实现的;当达到沸点时,电路将通过继电器断开。如果程序突然崩溃,则水壶可能无法关闭。第三个缺点是监测加热温度的问题。因此,例如,如果您在60度的温度下关闭水壶,则加热十台将继续散发热量,过一会儿,水温将已经达到约70度。但这可以通过对该程序进行调整来纠正。

Source: https://habr.com/ru/post/zh-CN393785/


All Articles