查看: 1469|回复: 12

爱猫人士看过来!

[复制链接]
本帖最后由 RRoy 于 2019-9-5 14:41 编辑

201909056288.png


正文共:478636
预计阅读时间:12分钟

MAKER: igorfonseca83 / 译:Roy




铲屎官们每天关注自己的体重,怎么能不把主人的体重放在心上?

这款物联网的猫砂盒子不仅可以监测猫猫的体重,还可以提醒你什么时候该换猫砂了。在服务猫猫的同时,

你还能学到:

- 如何使用Arduino IDE对ESP32进行编程;
- 如何使用ESP32读取数字输入;
- 如何使用负载传感器和HX711进行重量测量;
- 如何使用Thingspeak平台将ESP32数据发送到云端;
- 如何使用Fusion360设计和打印3D外壳。

物联网猫砂盒
一个带有WiFi的猫砂盒,使用ESP32开发版,可以测量爱猫的重量,监控清洁条件并在线存储数据





前期工作
一、涉及的工具和材料

  • 3D打印机(用于打印电子设备封装的外壳)

    201909055581.png

  • PLA耗材(决定盒子的颜色)


201909051631.png
  • 焊锡和焊丝(某些组件(例如ESP32 Firebeetle和HX711)没有带焊接引脚,需要焊接一些引脚连接这些设备)
  • 收缩管(更好地隔离导体)
  • 螺丝刀
  • M2x6mm螺栓(用于将电子元件安装在壳体内)
  • FireBeetle ESP32开发板(核心)


201909052585.png
  • HX711模块(用作称重传感器的放大器。四个应变式称重传感器连接到该模块,并与微控制器进行串行通信)


201909052958.png
  • 50kg称重传感器(x4)(用于测量重量。其中四个用于最大重量200公斤)


201909059457.png
  • 磁门传感器(包含一个磁性开关,用于检测猫砂盒子是否打开)


201909051033.png
  • Micro USB线 ;
  • 6根母 - 母跳线;
  • 猫砂盒


201909053098.png

其中,FireBeetle ESP32开发板,由DFRobot友情提供!
1200元搞定一台Creality Ender 3 3D打印机,有兴趣的可以了解下!(https://rebrand.ly/3Dprinter-BG


二、在Arduino IDE上安装FireBeetle ESP32


这个项目使用Arduino IDE来编程ESP32模块。


首先为Arduino软件添加ESP32板支持。


1.下载并安装Arduino IDE最新版本
可以在Arduino的网站上找到适用于Windows,Linux或MAC OSX的最新版本:
https://www.arduino.cc/en/main/software

免费下载,安装在计算机上并启动。


2.添加ESP32板
Arduino IDE已经支持很多不同的主板:Arduino Nano,Mine,Uno,Mega,Yún等。但没有默认支持ESP32。因此,为了将代码上传到ESP32板,必须首先将其添加到Arduino的开发版管理器中。

文件>首选项 ;
将下面的URL添加到附加开发者管理器网址文本框内:

http://download.dfrobot.top/FireBeetle/package_esp32_index.json

201909051959.png

如果文本框不是空白,则表示之前已经在Arduino IDE上添加了其他板。换行粘贴按提示操作即可。

导航工具>板>板卡管理器,添加ESP32板。
在搜索文本框中键入“FireBeetle-ESP32”,选择“DFRobot DFRDuino的FireBeetle-ESP32主板”并安装。
现在,Arduino IDE已经可以使用ESP32 FireBeetle板。

将microUSB电缆插入ESP32和计算机上。它会自动安装Windows通讯驱动程序。如果无法安装驱动程序,请下载以下文件并手动安装新连接设备的驱动程序。

https://git.oschina.net/dfrobot/FireBeetle-ESP32/raw/master/FireBeetle-ESP32.inf


3.添加库
需要用到两个库。

HX711库:
https://github.com/bogde/HX711

Thingspeak库:
https://github.com/mathworks/thingspeak-arduino

安装:项目-> 加载库-> 添加.ZIP库

现在开发环境也已经准备就绪,让我们继续下一步!


硬件连接


三、接线

电子元件:


  • ESP32 Firebeetle开发板:该板有一个Expressif微控制器,是负责使用WiFi连接读取变量,处理和向云发送数据的组件。项目代码在这里运行。
  • 负载传感器:负责测量压力的组件,将设备上施加的压力转换为电信号。
  • HX711放大器:电路负责放大由充电电池产生的电信号并进行数字模拟转换。称重传感器产生的信号幅度非常有限(以mV为单位的信号)。电路放大该信号并执行模拟信号到数字信号的转换,并将转换后的信号传送到微控制器。
  • 门传感器开关:由一个在没有磁场的情况下通常关闭的开关组成。当在其附近施加磁场时,开关内部触点闭合,允许电流传导。这个项目中,这种类型的开关用于识别猫砂盒子的顶部是否被打开。顶盖上安装了一块磁铁,而开关则安装在控制盒上并固定在盒子的底部。当盖子关闭时,磁铁和钥匙将对齐并靠近在一起,保持开关闭合。当两个部件分开时,磁铁将离开开关,电路形成开路。


每个设备都根据原理图连接。

201909052402.png

HX711 - 输入:
  • 左上方称重传感器信号(红线)=> HX711 E-引脚
  • 左下方传感器信号(红线)=> HX711 A +引脚
  • 右上方称重传感器信号(红线)=> HX711 A-引脚
  • 右下方称重传感器信号(红线)=> HX711 E +引脚

HX711-输出:
  • HX711 Vcc引脚=> ESP32 3.3V引脚
  • HX711 GND引脚=> ESP32 GND引脚
  • HX711 SCK引脚=> ESP32 GPIO 2(引脚D9)
  • HX711 DT引脚=> ESP32 GPIO 5(引脚D8)

门传感器:
  • 簧片开关(端子1)=> ESP32 GND引脚
  • 簧片开关(端子2)=> ESP32 GPIO 25(针脚D2)


完成接线后,在ESP32上插上USB线,准备上传代码。

软件及代码


四、Thingspeak设置

201909057785.png

有几种云数据存储服务可用于物联网。它们支持微控制器和网络之间的通信,支持发送和接收各种数据。非常易于使用,支持监控各种信息。


1.创建帐户:首先,在https://thingspeak.com/创建帐户。


2. 创建频道:创建帐户后,可以创建存储数据的频道。点击“新频道”并输入频道名称(这里创建了一个名为“IoT Litter Box”的频道)


201909058366.png


3.设置频道的字段:每个频道最多可包含8个字段。每个字段相当于一个存储在你频道上的变量。在这个项目中,使用了6个:


  • 猫#1的体重
  • 猫#2的体重
  • 盒子状态
  • 猫砂量
  • 猫#1每天用了几次
  • 猫#2每天用了几次


201909055232.png


4.记下密钥:单击“密钥”选项并复制。稍后会在Arduino代码中用到它。




准备好了之后,这个频道就可以收到来自控制器的数据信息了。视图可以选择公共视图或私有视图。


五、编写Arduino代码

201909057319.png


代码思路如下:

1 - 必须先校准控制器以了解空盒的重量并调整校准系数。(有关如何校准的信息将在本教程的最后介绍)。该信息将存储在控制器存储器中,并且不会随时间变化。该值将用于计算沙子的体积和猫的个体重量。

2 - 只要打开盒子顶部,控制器就会知道盒子已进入维护(清洁)状态,并应停止测量盒子重量。在这个时候,有人应该放猫砂(添加或去除猫砂,大便等),盒子重量应该会有波动。

3 - 一旦盒子关闭,控制器应该等待一段时间以稳定并重新检查重量。执行的第一次测量应作为箱子+猫砂的重量存储在控制器存储器中。将从未来的测量值中减去该值,根据盒子的重量及猫砂含量来计算猫的重量。

4 - 通过从测量的重量(在箱内没有猫)减去空箱重量(在校准期间存储在控制器中),可以确定箱中的沙子体积。每当清洁垃圾箱时,该值会随着时间的推移而降低。可以设置警报,在垃圾箱中的猫砂量过低时发出警报,表明需要进行一般清洁和更换猫砂。盒子里的猫砂量将发送到云端,可以生成警报。

5 - 每当控制器检测到顶盖关闭,盒子重量显着增加时,表明有猫进来了。在盒子稳定(猫已经不动)之后,控制器将存储测量的平均重量。该值将与每只猫重量的预期最大值和最小值进行比较(假设不止一只猫使用该盒子)从而确定哪只猫进入了盒子。有关猫的重量和猫当天使用盒子的次数的信息也将被更新并发送到云端。

6 - 控制器定期核对服务器的时间。当检测到新的一天开始时,每只猫使用该盒子的时间计数器将被重置。


根据实际的情况更新以下信息:


  • myChannelNumber = Thingspeak频道号码
  • apiKey = ThingSpeak API密钥
  • ssid = WiFi网络的ssid
  • pass = WiFi网络密码
  • weightbox =为空盒子指示的重量
  • cat1MinWeight =猫#1的最小重量
  • cat1MaxWeight =猫#1的最大重量
  • Cat2MaxWeight =猫#2的最大重量
  • cat2MinWeight =猫#2的最小重量


3D打印部分

六、三维建模

通过3D打印制作一些部件。当然,猫砂盒子可以到宠物店或者网上购买。但是一些定制的部件还是需要设计和打印出来的,好把相关的电子器件添加到猫砂盒中。这边,作者所有部件均使用Fusion360 CAD软件设计。
1.gif


设计了以下部件:


  • 负载传感器的支撑:负载传感器嵌入在箱脚上的四个支撑内。这种支架方式方便安装/拆卸传感器。

2.gif

  • 样例:底盖保护电子元件免受物理接触。壳体设计成使用双面胶带安装在盒子中,从而方便移除(比如清洁壳体时)。

3.gif

  • 外壳盖:正面封闭外壳,保护电子元件。

4.gif
七、3D打印

201909054862.png



作者用了两种不同颜色的PLA耗材,花了整整5个小时打印了全部部件,参数选择0.2毫米层高、10%填充密度、无支撑。这是一个实验原型。请注意,这只适用于ESP32开发板模型(ESP32 Firebeetle)。


传感器垫:


201909053769.png

样例:

201909052469.png
样例盖子:


201909052291.png

如果你没有3D打印机,可以:

  • 请朋友给你打印;
  • 找到附件的创客空间,比如蘑菇云创客空间。可以快速打印此模型中使用的部件;
  • 自己买一台3D打印机;
  • 凑合一下!不要3D打印部件,自己尝试用别的材料拼装一下。


组装

八、组装猫砂盒子

打印完零件后,就可以组装了!

1 - 根据前面介绍的原理图,用一些跳线将HX711模块焊接到ESP32;

2 - 在HX711上焊接针脚(凸型),方便之后连接称重传感器;

3 - 使用6个M2x6mm螺丝将ESP32和HX711安装在外壳中;

201909056486.png

4 - 将簧片开关导线穿过外壳的底孔。根据上面的示意图焊接簧片开关;


201909059184.png

5 - 将称重传感器安装在以3D打印的支架内;


201909059416.png

6 - 在盒子背面涂上双面胶带并粘贴在猫砂盒的侧面;


201909054529.png

7 - 将称重传感器粘到猫砂盒底部;


201909055087.png

8 - 根据上面给出的示意图焊接称重传感器的导线。在每个电池的红线上焊接一个连接器,以便连接到HX711上的针脚;


9 - 理线。用绝缘胶带把它们粘在盒子上;


201909057968.png

10 - 根据先前提供的原理图将称重传感器信息收集到HX711模块;


11 - 安装前盖。可以使用三个M2 x 6毫米螺钉固定盖子;


201909053637.png

12 - 将簧片开关固定在盒子(底部)上,将磁铁固定在盒盖(顶部)上。两者应该一致;


201909055873.png

13 - 插入micro USB连接器为电路供电。


201909055084.png

完工!

201909052127.png

项目完成后,打开盖子,把猫砂放入盒子中,连上电源。控制器将连接到互联网并开始运行代码。

然后,静静等待你的它出现,看看会发生什么。

还可以每天在Thingspeak网站上跟踪数据。

库.zip

778.9 KB, 下载次数: 0, 下载积分: 创造力 -1

盒子模型.zip

157.66 KB, 下载次数: 0, 下载积分: 创造力 -1

iot-scale-firebeetle-v01.zip

2.17 KB, 下载次数: 1, 下载积分: 创造力 -1

iot-litter-box-thingspeak-v0.zip

2.94 KB, 下载次数: 1, 下载积分: 创造力 -1

URvj0KkE  见习技师

发表于 2019-9-6 21:15:50

加一!!
回复 支持 反对

使用道具 举报

冷枪  见习技师

发表于 2019-9-7 21:22:13

先进
回复 支持 反对

使用道具 举报

请叫我林辰  见习技师

发表于 2019-9-8 18:52:12

!!!!爱了爱了
回复 支持 反对

使用道具 举报

岑剑伟  见习技师

发表于 2019-9-9 15:04:12

可是没有猫怎么办呢
回复 支持 反对

使用道具 举报

岑剑伟  见习技师

发表于 2019-9-9 15:04:18

可是没有猫怎么办呢
回复 支持 反对

使用道具 举报

RRoy  初级技师
 楼主|

发表于 2019-9-9 15:15:30

岑剑伟 发表于 2019-9-9 15:04
可是没有猫怎么办呢

做个放大版的,自己用
回复 支持 反对

使用道具 举报

EmSECpn6  见习技师

发表于 2019-9-15 21:27:38

科技感十足
回复 支持 反对

使用道具 举报

chen1xuan  见习技师

发表于 2019-9-17 20:23:19

表示没有猫
回复 支持 反对

使用道具 举报

270330905  见习技师

发表于 2019-9-23 08:30:47

学习学习。
回复 支持 反对

使用道具 举报

#嘉诚欧巴#  中级技师

发表于 2019-9-24 17:21:50

盒子做好了,请问楼主猫在哪领?
回复 支持 反对

使用道具 举报

Lii  高级技师

发表于 2019-10-22 12:55:33

铲屎官点了个赞。问题是我家3只猫,能自动识别区分就更好了。
回复 支持 反对

使用道具 举报

jzzgb  见习技师

发表于 2019-11-1 14:16:28

很有趣,我家有两个猫哈!!!!!!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail