6971| 13
|
爱猫人士看过来! |
本帖最后由 RRoy 于 2019-9-5 14:41 编辑 正文共:4786字 36图 预计阅读时间:12分钟 MAKER: igorfonseca83 / 译:Roy 铲屎官们每天关注自己的体重,怎么能不把主人的体重放在心上? 这款物联网的猫砂盒子不仅可以监测猫猫的体重,还可以提醒你什么时候该换猫砂了。在服务猫猫的同时, 你还能学到: - 如何使用Arduino IDE对ESP32进行编程; - 如何使用ESP32读取数字输入; - 如何使用负载传感器和HX711进行重量测量; - 如何使用Thingspeak平台将ESP32数据发送到云端; - 如何使用Fusion360设计和打印3D外壳。 物联网猫砂盒 一个带有WiFi的猫砂盒,使用ESP32开发版,可以测量爱猫的重量,监控清洁条件并在线存储数据 前期工作 一、涉及的工具和材料
其中,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 如果文本框不是空白,则表示之前已经在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库 现在开发环境也已经准备就绪,让我们继续下一步! 硬件连接 三、接线 电子元件:
每个设备都根据原理图连接。 HX711 - 输入:
HX711-输出:
门传感器:
完成接线后,在ESP32上插上USB线,准备上传代码。 软件及代码 四、Thingspeak设置 有几种云数据存储服务可用于物联网。它们支持微控制器和网络之间的通信,支持发送和接收各种数据。非常易于使用,支持监控各种信息。 1.创建帐户:首先,在https://thingspeak.com/创建帐户。 2. 创建频道:创建帐户后,可以创建存储数据的频道。点击“新频道”并输入频道名称(这里创建了一个名为“IoT Litter Box”的频道) 3.设置频道的字段:每个频道最多可包含8个字段。每个字段相当于一个存储在你频道上的变量。在这个项目中,使用了6个:
4.记下密钥:单击“密钥”选项并复制。稍后会在Arduino代码中用到它。 准备好了之后,这个频道就可以收到来自控制器的数据信息了。视图可以选择公共视图或私有视图。 五、编写Arduino代码 代码思路如下: 1 - 必须先校准控制器以了解空盒的重量并调整校准系数。(有关如何校准的信息将在本教程的最后介绍)。该信息将存储在控制器存储器中,并且不会随时间变化。该值将用于计算沙子的体积和猫的个体重量。 2 - 只要打开盒子顶部,控制器就会知道盒子已进入维护(清洁)状态,并应停止测量盒子重量。在这个时候,有人应该放猫砂(添加或去除猫砂,大便等),盒子重量应该会有波动。 3 - 一旦盒子关闭,控制器应该等待一段时间以稳定并重新检查重量。执行的第一次测量应作为箱子+猫砂的重量存储在控制器存储器中。将从未来的测量值中减去该值,根据盒子的重量及猫砂含量来计算猫的重量。 4 - 通过从测量的重量(在箱内没有猫)减去空箱重量(在校准期间存储在控制器中),可以确定箱中的沙子体积。每当清洁垃圾箱时,该值会随着时间的推移而降低。可以设置警报,在垃圾箱中的猫砂量过低时发出警报,表明需要进行一般清洁和更换猫砂。盒子里的猫砂量将发送到云端,可以生成警报。 5 - 每当控制器检测到顶盖关闭,盒子重量显着增加时,表明有猫进来了。在盒子稳定(猫已经不动)之后,控制器将存储测量的平均重量。该值将与每只猫重量的预期最大值和最小值进行比较(假设不止一只猫使用该盒子)从而确定哪只猫进入了盒子。有关猫的重量和猫当天使用盒子的次数的信息也将被更新并发送到云端。 6 - 控制器定期核对服务器的时间。当检测到新的一天开始时,每只猫使用该盒子的时间计数器将被重置。 根据实际的情况更新以下信息:
3D打印部分 六、三维建模 通过3D打印制作一些部件。当然,猫砂盒子可以到宠物店或者网上购买。但是一些定制的部件还是需要设计和打印出来的,好把相关的电子器件添加到猫砂盒中。这边,作者所有部件均使用Fusion360 CAD软件设计。 设计了以下部件:
七、3D打印 作者用了两种不同颜色的PLA耗材,花了整整5个小时打印了全部部件,参数选择0.2毫米层高、10%填充密度、无支撑。这是一个实验原型。请注意,这只适用于ESP32开发板模型(ESP32 Firebeetle)。 传感器垫: 样例: 样例盖子: 如果你没有3D打印机,可以:
组装 八、组装猫砂盒子 打印完零件后,就可以组装了! 1 - 根据前面介绍的原理图,用一些跳线将HX711模块焊接到ESP32; 2 - 在HX711上焊接针脚(凸型),方便之后连接称重传感器; 3 - 使用6个M2x6mm螺丝将ESP32和HX711安装在外壳中; 4 - 将簧片开关导线穿过外壳的底孔。根据上面的示意图焊接簧片开关; 5 - 将称重传感器安装在以3D打印的支架内; 6 - 在盒子背面涂上双面胶带并粘贴在猫砂盒的侧面; 7 - 将称重传感器粘到猫砂盒底部; 8 - 根据上面给出的示意图焊接称重传感器的导线。在每个电池的红线上焊接一个连接器,以便连接到HX711上的针脚; 9 - 理线。用绝缘胶带把它们粘在盒子上; 10 - 根据先前提供的原理图将称重传感器信息收集到HX711模块; 11 - 安装前盖。可以使用三个M2 x 6毫米螺钉固定盖子; 12 - 将簧片开关固定在盒子(底部)上,将磁铁固定在盒盖(顶部)上。两者应该一致; 13 - 插入micro USB连接器为电路供电。 完工! 项目完成后,打开盖子,把猫砂放入盒子中,连上电源。控制器将连接到互联网并开始运行代码。 然后,静静等待你的它出现,看看会发生什么。 还可以每天在Thingspeak网站上跟踪数据。 |
778.9 KB, 下载次数: 5476
157.66 KB, 下载次数: 5369
2.17 KB, 下载次数: 5356
iot-litter-box-thingspeak-v0.zip
2.94 KB, 下载次数: 5428
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed