电子说
第1步:硬件
对于这个项目,我们需要:
1。 ESP8266 - 01模块
2。 HT7333 3.3V MS低压差线性稳压器电源模块
我们需要这个模块将电池电压降低到ESP8266的可接受水平。
根据数据表,应该有3V至3.6V的输入。这个模块给我们3.3V。
3。电池。
我正在使用3,7V锂离子400mAh电池。实际上你可以使用任何其他合适的电源。 18650电池也是不错的选择。当您选择电池时请记住ESP“吃”大约200mA连接到WiFi网络,当电路板将数据上传到服务器时使用大约60mA。
4。 TP4056锂电池充电板。
5。 Pololu迷你按钮电源开关
非常有趣的小板。它让我们只在检测到水时才切换ESP模块。您不需要保持ESP开启。因此有利于节省电池电量。
6。房屋点击7。双微动开关ON-OFF。一条线用于打开设备。第二行用于测试 - 它没有水的短路,只是让我们知道设备是否工作。
8。 Raspberry Pi微型计算机
我正在使用Raspberry Pi Zero。它足以运行Domoticz服务器。
步骤2:软件
在您的PC上:
1。已安装esptool,用于擦除模块和闪存固件
2.已安装Ampy,用于刷新程序
3推荐使用Python 3.6或更高版本
4。你想要的任何代码编辑器。最简单 - Python IDLE通常与Python一起安装。我正在使用Pycharm/Atom或Anaconda Spyder On raspberry Pi
5.在Raspberry Pi上安装的Domoticz服务器(或Windows或Linux下的普通PC)
步骤3:准备Raspberry Pi - 安装Domoticz
因此,请使用您的RPi并安装适合运行Domoticz服务器的操作系统。
您可以按照这些说明操作。
我在这里使用Raspbian Stretch with Desktop:https://www.raspberrypi.org/downloads/raspbian/
下一步是在您的PC上安装Domoticz服务器。你可以在这里或这里使用说明:)。不要害怕,这不是那么困难。显然你需要在你的终端上运行:
curl -L install.domoticz.com | sudo bash
就是这样:)或多或少。 Domoticz设置
现在我们的服务器已准备就绪,我们可以通过输入以下URL从任何Web浏览器访问它,包括从平板电脑访问它:http://IP_domoticz:8080
步骤4:Domoticz设置
现在我们的服务器已准备就绪,我们可以通过输入以下URL从任何Web浏览器访问它,包括从平板电脑访问它: http://IP_domoticz:8080
步骤5:调整应用程序设置。
有各种各样的可以通过Setup |设置的应用程序设置设置菜单。
带有各种选项卡的设置菜单允许您输入更好的系统功能所需的个人参数。在字段中输入数据后,您必须通过按红色按钮“应用设置”来保存它们。 执行此操作后,所有密码字段(在第一次访问时为空)将显示一长串星号,即使它们尚未使用过。
完成主设置后在“系统”页面中,单击“通知”。在这里,我们需要调整我们将要使用的通知类型。
步骤6:设置通知
通知可以是例如,当按下开关,电力使用太高,温度高到更多选项时发送。
在我们的情况下,一旦传感器检测到水,就必须发送通知。所以只需打开那些,你想要使用。通常,您还需要API密钥才能通知工作。向前跑一点,我会说我尝试了Pushover,Pushsafer和Pushbullet。我和Pushover呆在一起。后来我会说明原因。
关于通知如何工作的几句话。您需要在Pushbullet,Pushover或其他您想要使用的页面上拥有一个帐户。您还需要手机或PC上的应用程序。
获取API密钥,并将其插入上面的页面。您可以单击“测试”来测试通知。如果API密钥正确,您应该收到手机的测试通知。
一旦传感器检测到水,ESP就会打开并以JSON格式向Domoticz服务器发送请求。如果满足触发事件的条件(向手机发送通知),Domoticz会发送通知。
稍后我将回到“事件”。
步骤7:设置与硬件设备的通信
在使用Domoticz应用程序控制之前设备或读取传感器必须设置与硬件设备的通信。选择“设置”|“硬件”以添加硬件在添加适当的硬件之前,设备不会显示。
Domoticz应用程序本身支持许多硬件设备。
在我们读取洪水传感器的情况下,我们需要从硬件列表中添加所谓的“虚拟”硬件。
添加硬件时,将显示所有已定义硬件的概览。可以禁用或删除硬件。
新硬件应该在列表中,并且应该有一个“创建虚拟传感器”按钮。
单击此按钮并选择传感器类型“警报“。现在我们必须在Domoticz中添加设备才能激活。
步骤8:在Domoticz中添加设备以激活。
请注意“IDX”下面的数字。这是对此设备的唯一引用,我们稍后需要在Python脚本中处理通知。在这种情况下,IDX编号为1.
单击左侧的绿色箭头启用设备(由于设备已启用,下面的图片为蓝色。)
填写设备名称,然后单击“添加”。
导航到“Utilities”菜单,您的设备应该列在那里。
现在我们需要编程“事件“为我们的传感器。这意味着,我们需要告诉服务器,如果它从传感器收到消息,该怎么做。
对我来说这是最难的地方:)。
第9步:它不能以这种方式工作。..。..
我开始尝试在/device/page上编程事件。下面的内容不是我的,但可以说明一下。
如果你认为你会检查一些复选框并且它会起作用,你就错了:)它不能以这种方式工作。我想这里的这个功能尚未完成。别忘了 - 这是开源软件。好的,几个小时后我找到了解决方案。我们需要使用“设置”下拉菜单中的“事件”。
点击“事件”后,您可以创建自己的事件。您可以购买用Python或LUA编写代码,或者只使用名为“Blockly”的东西。
我选择使用Blockly。有两种方法可以强制服务器执行您想要的操作。
步骤10:以正确的方式构建事件1.
1。通过“事件”执行外部文件,使用Blockly消息“启动脚本”
这在Windows机器上完美适用于我。但是我在Raspberry Pi上的Raspbian上没有成功。我怀疑权限存在问题。
步骤11:以正确的方式构建事件2.
2.使用“发送带主题的通知”消息。它适用于Raspbian。此选项支持向Pushsafe和Pushover发送通知。
使用第一种方式的优点是它更灵活。您可以选择要在显示器上显示的图标,声音等。我的“事件”如上图所示。
接下来,让我们编程ESP模块。
步骤12:编程ESP8266-01模块
让我们从闪烁的ESP8266模块开始吧。通常这些模块带有工厂固件。可以通过使用所谓的AT命令与模块通信。此软件也不允许使用独立控制器等模块。要像独立控制器一样使用它们,我们需要擦除工厂固件并安装新固件。
为此,我们将使用esptool。我们需要将模块连接到PC以擦除固件。要做到这一点,你需要TTL转换器+一些额外的组件。但有一个更简单的方法:)。只需在aliexpress或ebay USB上购买带有CH340G驱动器的ESP8266 ESP-01 Wi-Fi适配器模块。
将ESP8266模块插入TTL转换器,如图所示,并将其连接到USB端口。
如果您有与我相同的转换器,那么您需要将开关更改为“Prog”位置。找到esptool的安装位置(通常在某个地方,如C: Program Files(x86) Python36-32 Scripts。转到此文件夹,在那里启动命令提示符。
类型: python esptool.exe --port COM5 erase_flash
当然选择正确的端口。在我的情况下它是COM5。您可以从控制面板 - 系统 - 设备管理器检查安装ESP的端口。
通过输入以下命令安装固件(我从这里获取它:https://micropython.org/download#esp8266):
python esptool.exe --port COM5 --baud 460800 write_flash --flash_size =检测0 C: path_to_firmware esp8266-20180511-v1.9.4.bin
好的,现在我们已准备好将micropython脚本上传到ESP8266。
I我正在使用Adafruit MicroPython Tool(ampy)。
但现在还有另一个名为Esplorer的选项。这个应用程序带有用户界面,允许将文件上传到ESP模块。
您可以在此处找到如何安装ampy的说明。因此,将TTL转换器上的开关置于“UART”位置。我们需要上传文件:
wifimgr.py - 用于连接wifi网络的wifi管理器
main.py - 我们的主要脚本
在命令行类型中: ampy --port COM5将C: path放入文件
点击“enter”。几秒钟后,您应该看到空命令行。这意味着该文件已上传。您可以通过ampy命令检查ESP上的文件列表:
ampy --port COM5 ls
根据我的经验,最好上传main.py上传完所有必要文件后。它是这样,因为只要你上传main.py - ESP8266模块将重启并开始执行main.py文件。因此,在这种情况下,如果您尝试上传其他文件,有时上传过程将失败。但这并不意味着一切都失败了:),只是尝试第二次,你会成功(再次,根据我的经验)。
第13步:连接到您的WiFi网络。获取通知。
如果一切正常,请重新启动模块,方法是将TTL转换器重新插入PC的USB端口。
ESP启动后,找到一个名为“Wifimanager”的新WiFi网络。使用PC或手机连接到它,然后转到IP地址192.168.4.1 。.在这里,您可以将ESP连接到本地WiFi网络。选择您要使用的WiFi网络,输入密码,点击“提交”。
如果一切正常,您将看到消息“ESP已成功连接到XXXX网络”。
您的ESP现已连接到您的WiFi网络并准备就绪。一旦连接到WiFi,它将连接到Domoticz服务器。 Shorty你必须在手机上收到通知。
你可以在“设置”/“记录”中跟踪这个过程。
Vua lia! :) 有用。现在我们可以根据下面的框图继续组装所有部件。
步骤14:框图
那里关于这个图表没什么可说的。非常简单。用S1开关切换电源。设备处于关闭状态,直到水短路“水传感器”引脚。然后“Pololu板”接通,并为电压转换器供电。该电源模块基于HT7333芯片,可为ESP8266将电压转换为稳定的3.3V。下一个ESP打开,并向Domoticz服务器发送消息。
步骤15:结果和结论
它有效。发送通知最多需要10秒钟:连接到WiFi,发送通知,向手机发送警报消息。
如果检测到水,我已将传感器编程为每30秒发送一次警报。传感器最多可发送5-6个通知,直到电池放电。这种装置也可用于确定水位。我想改进什么。
1。让它更快地运作我想我会尝试使用ESP-Now技术,这可以让我直接连接几个ESP。在这种情况下,连接期间的功耗非常低并且更快。因此,我们的想法是使用一个ESP作为连接其他ESP的集线器。
2。实施电池电量警报。现在您无法知道是否有足够的电量来发送警报消息。我认为在下一代传感器中会有一个用于测试电池电量的特殊按钮。
用户必须按一下按钮,电池电量才会显示。
全部0条评论
快来发表一下你的评论吧 !