×

基于Esquilo Air的WiFi连接遥控器

消耗积分:0 | 格式:rar | 大小:0.35 MB | 2022-12-21

香香技术员

分享资料个

方案介绍

使用这款基于 Esquilo Air 的 WiFi 连接遥控器,从世界任何地方控制您的 Hunter 喷水灭火系统。

在一些地方,夏季炎热,干旱时间长,有效管理草坪喷水灭火系统对于确保良好的节水而不破坏草坪至关重要。不幸的是,大多数自动喷水灭火系统控制器仍然是愚蠢的设备,只能按照在控制面板上设置的固定时间表运行。我需要的是一个遥控器,我可以用它从远程位置或至少在舒适的客厅里打开或关闭洒水器。

背景

我的喷水灭火系统是由 Hunter Industries 制造的,Hunter Industries 是灌溉领域的知名企业之一。Hunter 生产一种称为 ROAM 的无线遥控器。ROAM 通过一个称为 SmartPort 的圆形连接器连接到喷水灭火系统,该连接器连接到控制面板。我购买了其中之一来控制我的系统,但我发现它有两个主要缺陷。首先,范围非常有限,当我在外面对喷水灭火系统区域进行故障排除时,它不能可靠地工作。其次,它使用专有的无线协议,所以它没有连接到我的 WiFi 网络,也不能从远程位置使用。黑客要做什么?当然,构建我自己的 WiFi 遥控器。

硬件

我使用 Esquilo Sprinkler Shield 来控制我的 Hunter 系统。该屏蔽提供 24V 交流至 5V 直流电源,因此可直接从控制面板供电。它还具有将逻辑电平信号转换为 Hunter 远程总线的电路。电路板顶部有三个引脚,因此可以直接插入 Hunter SmartPort。如果您想在没有 SmartPort 的情况下将其直接连接到控制面板,还可以使用端子块。

我将喷淋头防护罩安装在 Esquilo Air 上。Esquilo Air 让我可以轻松连接到我的 WiFi 网络,并为我提供了一个云站点,我可以在其中远程访问我的应用程序。此外,Esquilo 提供了使用其专有协议与 Hunter 控制面板通信所需的所有软件库。Hunter 协议有一些限制,但我可以在特定时间打开区域,运行定义的程序,或者停止正在运行的区域。这为我提供了与 ROAM 遥控器相同的功能,并具有可靠和远程通信的好处。

软件

为了测试系统,我将 SmartPort 连接到我的 Hunter 面板。电线必须按红-白-蓝顺序安装在 AC 和 REM 端子上。我将 SmartPort 连接到 Sprinkler 防护罩,Esquilo Air 点亮了。然后我将 Esquilo Air 连接到我的 WiFi 网络,并从我的网络浏览器中调出 IDE。我使用以下 Squirrel 代码来测试面板上的总线接口。

// Include the Hunter class from the Esquilo library

dofile("sd:/lib/buses/hunter/hunter.nut");

// Instantiate the Hunter class on UART0

hunter <- Hunter(0);

// Start zone 1 for 2 minutes

hunter.start(1, 2);

面板响应并打开防区 1 2 分钟。然后我更改了代码以启动程序。

hunter.program(1);

面板再次响应并打开程序 1。最后,我尝试停止一个区域并且效果也很好。

hunter.stop();

用户界面

在验证屏蔽工作后,是时候继续前进并将其连接到用户界面。我决定使用 HTML 和 JavaScript 的基于 Web 的界面,因为 Esquilo Air 有一个内置的 Web 服务器,我可以使用任何浏览器访问它。它还允许我通过Esquilo.io 云站点使用 HTTPS 远程访问界面 。为了构建 Web 界面,我使用了jQuery和bootstrap,这使得开发移动友好版本变得容易。界面非常简单,但它正是我需要的。我可以打开区域、启动程序或停止正在进行的浇水。

我使用Esquilo RPC  (ERPC) 在浏览器中的 JavaScript 和 Esquilo Air 上的 Squirrel 代码之间进行通信。这使得从我的 Web 界面在 Esquilo Air 上执行嵌入式功能变得容易。例如,在 JavaScript 中,我编写了以下代码以在按下停止按钮时调用 Esquilo Air 上的 stop() 函数。  

$('#stopButton').click(function() {

    erpc("stop", null, null, function() {

        error("Zone stop failed");

    });

});

第一个参数是 Esquilo Air 上的函数名称,第二个参数是传递给函数的参数(在这种情况下没有),第三个参数是成功回调,第四个是错误回调。在这种情况下,唯一需要的回调是在 ERPC 调用失败时显示错误消息。在 Esquilo Air 方面,我编写了一个简单的 Squirrel 函数,它只是将 stop() 方法调用包装到 Hunter 类中。

function stop() {

    hunter.stop();

}

完整的代码附在这个项目中。

安装
现在是时候让这个东西永久连接起来了。我决定使用 SmartPort 安装它。

我使用DesignSpark Mechanical设计了一个 3D 打印外壳,其开口与 SmartPort 尺寸完全匹配。

我使用我的 MakerGear M2(一个很棒的 3D 打印机 BTW)使用蓝色 PLA 打印出层高为 0.2 毫米的外壳。我使用 2-56 个滚丝螺钉将 Esquilo Air 连接到我设计在外壳底部的支架上。为了固定顶部,我使用了 4-40 个螺纹滚压螺钉,这些螺钉沉入了表壳顶部。

由于我的控制面板安装在外面,我不想担心元件进入我的外壳并破坏电子设备。我决定在车库墙上钻一个洞,然后挖一个洞来安装一个单组低压配电箱。我将 SmartPort 拧到金属盖板上,然后通过墙上的孔将其连接到控制面板上。然后我用一些硅胶密封了这个洞。

最后,我将 Esquilo Air 安装在 SmartPort 上,我的遥控器就完成了! 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !