项目六宠物投食机养宠物的朋友们,有没有过这样的苦恼,每次出门一整天不在家,没有办法及时给宠物喂食,就会担心它们会不会饿到。要是出差或者是旅行最先考虑的不是把宠物寄养在宠物医院会花多少钱,而是宠物换了环境会不适应、食欲不振,让人非常心疼。
那有没办法让独自在家的宠物也能按时“吃饭”呢?接下来,就让我们想想办法,一起来做一个能让独自在家的宠物也能被好好照顾的宠物投食机!
头脑风暴:宠物投食机需要具备哪些功能?问题清单
1、主人不在家时,如何保证宠物按时有粮吃?
2、主人在家时,如何随时用投食机喂粮?
3、当主人不在家,但是想要远程给宠物加餐,怎么办呢?
4、主人如何知道宠物一天吃了几顿呢?
5、实现这些设想需要哪些硬件支持?
物联网
物联网就是将现实世界中的物体连到互联网上,使得物与物、人与物可以很方便的互相沟通。举一个简单的例子,比如共享单车,单车上面的锁连上网后就不再需要钥匙开锁,只需要用手机扫码,锁就能通过网络收到开锁的命令自己开锁。物联网的本质还是互联网,只不过终端不再是计算机,而是嵌入式计算机系统及其配套的传感器。只要有硬件或产品连上网,发生数据交互,就叫物联网。
规划方案功能分解在宠物投食机中最重要的功能就是投放粮食,这里假定我们使用电机完成投放粮食的动作,电机转动即可投放,当然需要配合外观搭建才能实现功能。从前面的头脑风暴中,可以对宠物投食机作功能分解如下。
构造外观
问题记录在后面项目实现过程中,可能会遇到各种各样的困难,尝试在下表中记录你遇到的问题和解决办法,便于以后出现类似问题时能更好的面对。
功能实现功能1:定时投喂这里通过电机的转动与否表示是否投喂,当电机转动时,表示宠物投食机投放粮食;电机停转则停止投放。加入一个LED灯作为喂食指示灯,喂食时灯亮,否则灯灭。连线图:
*使用电机时,扩展板外需接电池盒。
软件设置:使用电机需要打开Mind+软件的“扩展”,在“扩展板”下点击加载“掌控扩展板”。
程序:
运行结果:每隔5秒,电机转动1次。“喂食”函数中定义电机以50的速度转动1秒,后面项目实现过程中可根据实际需求进行修改,结合外观构建达到最佳的效果。
思考一下,如何实现呢?让我们来写几个程序试验一下。试验程序1:如果在功能1程序基础上,加入对按钮的判断是否能实现功能呢?
运行结果:定时投喂功能正常,按钮几乎不起作用,无法实现触发投喂。这是为什么呢?让我们一起画个流程图,分析一下!
通过使用变量获取
试验程序2:使用
功能3:远程投喂通过使用物联网,主人可在电脑或手机端发送指定消息,实现远程投喂,这里我们选择EasyIoT。*关于EasyIoT的介绍和用法详见掌控板入门教程14智能物联手表。在功能2程序基础上,程序修改如下:
运行结果:程序运行后,掌控板屏幕会显示文字“宠物投食机”,然后进行WIFI和MQTT连接,完成连接后,实现功能如下。
关于功能4使用物联网平台反馈记录喂食次数,程序实现较为简单,只需要新增一个变量在“喂食”函数中,每次触发“喂食”函数,变量加1,然后将这个变量作为MQTT消息发送到EasyIoT即可。这里不再做程序介绍。构造外观构造外观有多种方法,下图仅作示例:
自我反思梳理自己设计项目的思维逻辑、项目在执行层面的问题和经验等等,可以帮助我们形成学习的闭环,加深在项目进行的过程中对知识点和内容的理解,找到可以改进和提高的地方。