如何定制一个智能洒水装置(养狗/养花人士请进)

news2024/12/19 14:30:58

目录

  • 如何用智能地教狗狗上厕所
  • 如何定制一个智能洒水装置

背景

上一篇文章中提到了,我实现了一个自动检测狗狗有没有进厕所的功能。现在我们家的狗狗用它那不算大的小脑瓜,已经百分百学会(但是!也不知道它是不是聪明过头了,如果我不在家、或者我在睡觉,那它就会乱拉乱尿,所以自动奖励程序还是很有必要性)在自己的厕所上尿尿了。

现在的清理工作已经轻松了很多了,只需要捡个屎,再冲一下狗厕所就ok了。但是,人的懒惰是上限的,现在我开始嫌冲狗厕所太麻烦了。那怎么办呢?当然是自动化之咯!

方案选定

自动浇花工具

当初和老婆要回老家很久,而老婆又养了很多花,所以买过一个自动浇花的工具,可以直接使用这个工具来进行自动冲狗厕所。

但是在我这个场景下使用,会有一个很严重的问题,这个工具只有一个定时功能,所以只能每天在固定的时间点冲水,这样的话:

  1. 浪费水,冲水必须足够频繁,才能覆盖狗狗尿完的时间点
  2. 可能会吓到狗狗,万一人家在尿尿,突然来一下,这不造成心理阴影了
  3. 狗厕所上有屎的时候可能也会冲,那就比较恶心了,屎可能都软了,还沾水了,这个绝美的画面无法想象。

定制浇水工具

由于以上种种缺点,我还是决定自制一套冲水的工具,

自动出水

要想自动冲水,肯定要有办法控制自动出水吧,由于之前没有任何此类知识,我花了整整一晚上,才了解到了有一个神奇的东西叫电磁阀,通过它就能用电来控制水龙头的开和闭,当然,它也能用来控制其它气体/液体管道的开闭。

控制硬件

电磁阀有了,那就是考虑怎么来控制了。这里又有两个方案:

  1. 通过ESP8266+电池来控制
    1. 这样可以不必接插头、就可以移动。
    2. 实现起来比较麻烦,需要自己设计电路,考虑升压、稳压、充电等多种因素。
  2. 直接通过米家智能插座+一个DC电源适配器来控制
    1. 必须要有插座。
    2. 家里有小爱音箱,并且能有控制手段,目前我是通过HomeAssistant来控制的。
    3. 实现起来比较简单。

两种方案的价格应该算是差不多的,ESP8266方案会稍微贵一点:

米家:30的米家智能插座+8的DC电源适配器
ESP8266:13的ESP8266+15的电池+X的升压、稳压等电路以及3D打印的外壳

由于我现在没有电路设计相关的知识储备,所以暂时还是选用了米家的方案。

控制程序

现在的控制比较简单,在米家上添加了一个自动化的程

这样,在看到狗狗尿完了之后,就可以喊一句:“小爱同学,清理狗厕所”。就能自动出水、停水了。

洒水工具

说到洒水工具,之前买的那个浇花的工具附带的管子和出水喷头都太差了:管子软软的没法固定,喷头是塑料的,要么就是360度喷雾,要么就是出一大道水,没法做到集中喷雾。

这次由于是自己组装,所以就在淘宝销量前列看到了一款比较符合心意的,管子是能进行折叠固定的,并且是金属喷头,可以很丝滑地调节。

费用

电磁阀+米家智能插座+DC电源适配器+洒水管+三通 = 19+29+8+46+6 = 108

效果

请添加图片描述

现在清理狗厕所是真的轻松很多了,能动嘴的咱绝不动手。

题外话

这里科普一个小知识点,不感兴趣的同学可以跳过。

我在搜索资料的过程中,知道了自动感应水龙头的原理,没错就是你想的那样,它就是用电磁阀来控制出水的。但是我想讲的是它感应的原理,它其实就是通过红外发射管和红外接收管来实现的,只不过发射管的功率很有限。所以它发射的红外线只有通过挡在它前面的手掌来进行反射时,接收管才能收到该红外信号,之后就是一段程序控制电磁阀来出水了。

结论

相较于当初125买的浇花工具,我自己动手整的这个方案更省钱、自动化程度更高、洒水效果更好。

不管是养狗,还是养花的同学都可以考虑自己动手搭建一套这样的方案了哈,这套方案绝对比成套的方案好多了,而且如果电磁阀坏了,换个新的成本也不高,但是如果是一整套的那种方案,人家给不给保修都要另说。

后续扩展

自动冲尿

其实我现在已经能够实现用程序自动冲尿了,我训练的模型也已经可以检测屎了,但是现在召回率还是稍微低了一点,按实际使用的经验来看,真实数据的召回率大概在0.8-0.9左右。主要是有时候狗狗拉的屎太小了,或者太分散了,模型还没法检测出来。所以我还是没有狠下心来使用自动冲水的功能,就怕屎还在厕所上时,就给冲水了。

用esp8266替代米家的智能插座来控制电磁阀

如果阳台/厕所没有插座,那么这个功能就是必须的了。

自动捡屎

如果屎也能自动捡了,那真的就解放双手了。

但是要实现它还是太太太难了。

其他

透露一下上一篇博文中提到的自动奖励、惩罚的进展:

  1. 现在已经能做到自动识别崽崽拉屎拉对了,因为相对于尿来说,屎还是比较好通过图像来识别的。
  2. 惩罚想到的是喷狗狗讨厌的气味(暂时考虑是用少量的醋),目前已经能达到远程控制了,但是想要将其移动化,所以还在学习电源管理的电路知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/371678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非常好看的html网页个人简历

一. 前言 文末获取gitee链接 在前几天逛b站的时候,发现了个比较实用的东西-----个人简介网页版,相当于网页版的个人简历,相较于PDF形式的,网页版所能呈现内容更加丰富,而且更加美观,在BOOS上被HR小姐姐要…

FL Studio21MAC电脑中文升级版安装图文教程

FL Studio版本有很多,每个版本各有优点。除了最新版本外,还有历史经典版本,用户可以根据自己的需求进行下载,FL Studio21是一款功能十分丰富和强大的音乐编辑软件,能够帮助用户进行编曲、剪辑、录音、混音等操作,让用户能够全面地调整音频,软…

2288hv5超融合服务器 数码管报888

【问题现象】 2288hv5超融合服务器,前面板数码管报888,电源灯黄灯闪烁,开不了机,ibmc网络是通的,但是web网页打不开 【问题原因】 iBMC的版本过低,iBMC在智能诊断数据库保护机制存在异常,导…

【算法笔记】前缀和与差分

第一课前缀和与差分 算法是解决问题的方法与步骤。 在看一个算法是否优秀时,我们一般都要考虑一个算法的时间复杂度和空间复杂度。 现在随着空间越来越大,时间复杂度成为了一个算法的重要指标,那么如何估计一个算法的时间复杂度呢&#xf…

数据库浅谈之共识算法

数据库浅谈之共识算法 HELLO,各位博友好,我是阿呆 🙈🙈🙈 这里是数据库浅谈系列,收录在专栏 DATABASE 中 😜😜😜 本系列阿呆将记录一些数据库领域相关的知识 &#x1…

Linux SELinux讲解

目录 SELinux概念 SELinux配置文件 SELINUX 工作模式 SELINUX TYPE策略类型 配置安全上下文 查看安全上下文 修改安全上下文 修改默认的安全上下文 配置策略规则 查看策略规则 修改策略规则状态 SELinux概念 为什么提出SELinux 之前学习的权限,都是基于用…

深力科电子-MachXO2系列 前所未有的灵活桥接和I/O扩展功能 LCMXO2-256HC-4TG100C FPGA现场可编程门阵列

lattice莱迪斯MachXO2系列超低密度FPGA现场可编程门阵列,适用于低成本的复杂系统控制和视频接口设计开发,满足了通信、计算、工业、消费电子和医疗市场所需的系统控制和接口应用。 瞬时启动,迅速实现控制——启动时间小于1mS,在上…

FreeRTOS信号量

前面介绍过,队列(queue)可以用于传输数据:在任务之间,任务和中断之间。消息队列用于传输多个数据,但是有时候我们只需要传递一个状态,这个状态值需要用一个数值表示,比如&#xff1a…

Android运行时权限Runtime Permission源码分析

Runtime Permission源码跟踪 Android 8.1.0 请求权限时弹窗代码 应用使用requestPermissions申请权限时,系统会弹出一个选择窗口,可进行允许。 源码在packages/apps/PackageInstaller/文件下 GrantPermissionsActivity.java是进行权限分配的弹出窗口…

分布式之PBFT算法

写在前面 在分布式之拜占庭问题 一文中我们分析了拜占庭问题,并一起看了支持拜占庭容错的口信消息性和签名消息性算法,但是这两种算法都有一个非常严重的问题,就是消息数量太多,通信的成本太大,消息数量复杂度为O(n ^…

CentOS 环境 OpneSIPS 3.1 版本安装及使用

文章目录1. OpenSIPS 源码下载2. 工具准备3. 编译安装4. opensips-cli 工具安装5. 启动 OpenSIPS 实例1. OpenSIPS 源码下载 使用以下命令即可下载 OpenSIPS 的源码,笔者下载的是比较稳定的 3.1 版本,读者有兴趣也可前往 官方传送门 sudo git clone htt…

1个串口用1根线实现多机半双工通信+开机控制电路

功能需求: 主机使用一个串口,与两个从机进行双向通信,主机向从机发送数据,从机能够返回数据,由于结构限制,主机与从机之间只有3根线(电源、地、数据线),并且从机上没有设…

【蓝牙mesh】access层(接入层)协议介绍

【蓝牙mesh】access层(接入层)协议介绍 Access层简介 Access层定义了应用层如何使用upper协议层的接口,它不仅定义了应用层的格式,还定义了应用数据在upper层的加密和解密。当收到下层的数据包时,它会检查数据的netke…

Web前端:选择AngularJS进行Web开发的12大理由!

无论你希望构建本地应用程序、渐进式web应用程序(PWA),还是开发单页应用程序,每个企业都寻求具有影响力的数字形象,并希望构建交互式、跨平台和动态的web应用程序,以吸引客户。AngularJS,也称为Angular,是一…

李宏毅2023春季机器学习课程

目录2021&2022课程重磅须知我维护的其他项目更新日志课程地址课程资料直链课程作业直链其他优质课程2021&2022课程 CSDN Github 重磅须知 为方便所有网课资料与优质电子书籍的实时更新维护,创建一个在线实时网盘文件夹;   网盘获取方式&#…

C++进阶——继承

C进阶——继承 1.继承的概念及定义 面向对象三大特性:封装、继承、多态。 概念: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加功能,这…

MySql数据库环境部署

MySql基础与Sql数据库概述基础环境的建立MYSQL数据库的连接方法MySql的默认数据库数据库端口号数据库概述 数据库(DataBase,DB)∶存储在磁带、磁盘、光盘或其他外存介质上、按定结构组织在一起的相关数据的集合。数据库管理系统〈DataBase Management S…

SpringMVC常用注释

1.RequestMapping注释:用来匹配客户端发送的请求,可以在方法上使用,也可以在类上使用。方法:表示用来匹配要处理的请求 类上:表示为当前类的所有方法的请求地址添加一个前置路径,访问的时候必须要添加此路径…

一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存

上次给大家推荐过一个缓存中间件《一个C#开发的非常实用的缓存中间件》,今天再给大家推荐一个缓存中间件,两者功能差不多,都是提供统一接口、多级缓存、分布式缓存、支持多种Provider等。 项目简介 这是一个基于.Net Core开发的缓存中间件&…

Java虚拟机之类加载学习总结

文章目录1 什么是类加载1.1 类加载的应用1.2 类加载过程1.3 类的验证1.4 类初始化顺序2 类加载时机3 类加载器3.1 类加载分类3.2 双亲委派3.3 自定义类加载器3.4 类加载器的命名空间4 打破双亲委派4.1 线程上下文类加载器4.2 自定义类加载器5 类的卸载1 什么是类加载 Java 虚拟…