对于我们的 IOT 项目,我们决定设计和制作一个狗食碗,用秤称量碗中剩余的狗粮数量,并在需要装满碗时通过短信提醒用户。当狗食碗中的食物不足时,与碗相连的光子会向另一个光子和上面放着一袋狗粮的秤发送信息。这个光子称量袋子里有多少狗粮。然后将此信息转发回第一个光子(即双向通信),并向用户发送一条文本消息,说明碗需要重新装满或需要购买新袋子。秤是通过使用称重传感器和将称重传感器连接到光子的 Hx711 芯片制成的(参见示意图)。然后所有东西都连接到金属外壳上,然后 3D 打印了一个外壳,使秤看起来干净漂亮。
硬件组装好后,光子被编程为读取标度值并通过订阅和发布相互通信,一个基于需要的值。这个发布的值然后被发送到“If This Then That”(IFTTT),它允许发布的数据点触发基于数据点发送的文本消息。基本代码是来自 Instructables.com 上“Jaybuilder”的开源代码,原始代码用于可使用手机上的应用程序显示值的秤。为此添加了额外的代码,以允许将数据发布到云中并进行双向通信。如果狗食碗的秤低于 100 克的阈值,该秤将向云端发布“坏”信息。带有食品袋的秤将推送状态“良好” 当重量超过 1 公斤时,到云端。当碗秤看到“好”时,它会检查它的重量,如果它低于阈值,它会发布“喂我”。同样,当袋秤看到“坏”时,它会检查它的重量,如果低于阈值,它就会发布“购买食物”。如果没有光子之间的双向通信,这个项目将是不可能的。
总的来说,这个项目非常具有挑战性,但也非常有益。在这个项目之前,我们都没有任何编程经验,因此学习如何为光子编码是一个真正的挑战。然而,这个项目是有回报的,因为我们的努力创造了一些有形的东西,可以在现实世界中发挥作用。
系统运行后,我们用我的狗在一周的时间内测试了现实世界中的秤。正如您在下面的实时图表中所见,该系统运行完美。指示光子在每天上午 8 点和晚上 8 点进行读数,并且每次需要重新装满碗或需要更换袋子时,都会向用户手机发送短信提醒。(注意:我故意把我的狗粮袋留了四分之一来测试秤,因此为什么实时图表显示袋子需要重新装满两次。另外,我有一只小狗和一个可以盛放大约 2 分钟食物的碗天,这就是为什么我们在一周内只收到 4 次“喂我”的通知。)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !