技术交流QQ:1356438802
欢迎留言!^_^
去年给爸妈买了一个豆浆机,因为老爸生了病,想着给他补充点营养,家里那只小馋猫(5岁的小妹妹)也好喝一喝。于是在京东上面下了单,买了个美的的豆浆机,快递至赣州,自己回家的时候顺便带回去了。但是出乎意料的是,爸妈不愿意打豆浆,因为很麻烦,每天要泡豆子,然后放进去加水,开始,然后喝完了还要洗豆浆机。“早上起来就要忙,做饭洗衣服,哪有时间打豆浆!”最后豆浆机就一直搁置在楼上,上灰尘了都。
今年媳妇也来深圳上班了,哈哈,好高兴啊!换了个地方住,宽敞了许多,那就要用东西来填喽。正好想着早餐没什么吃,弄点啥有营养好吃的东西,诶,豆浆机,于是端午回家把豆浆机给带回深圳了。
有了豆浆机,天都要翻了,媳妇儿啥都能往里面放,黄豆、绿豆、黑芝麻、花生、玉米、西瓜、芒果、猕猴桃,搭配好真的确实好喝,嘿嘿嘿。但是唯一的问题是,每天早上起来打豆浆好累的啦!我在福田上沙住,在宝安固戍上班,8:30上班,6:30要起床呐。起床后,马上把泡好的豆子和水放入豆浆机,然后选择湿豆——>开始,它要先加热,在破碎,等我洗漱完了它还没有打好。所以我要提前起来弄,完了再躺下眯会儿。两个月了,缺觉啊啊啊啊啊啊,特困!
所以寻思着改装下豆浆机,看能不能让它定时工作,起床就有豆浆喝。其实现在网上有可以预约时间的豆浆机卖,各位看官莫笑,看热闹就行了,阅后即焚。我的改装逻辑是,我要把打豆浆过程中人工参与的部分,用机器替代。因为豆浆机何时加热,何时启动电机驱动刀片搅拌,对于我来说是未知的,我尽量不要去复制或者替换这个过程。我要做的,只是把我用手指按豆浆机上的按键替换掉。
这里有一个哲理:程序员写程序的最终目的就是为了偷懒。人类进化过程的元动力就是为了解放自己的器官,筷子代替手,汽车代替脚,摄像头代替眼睛,人工智能代替大脑思考……所有的一切都是为了偷懒!
好了,废话少说,先把豆浆机拆了,搞清楚两个按键的原理。
按键操作分两步:一,选择模式,干豆、湿豆、汤、果汁;二,开始/停止。
用万用表量了之后,发现按键按下的动作,就是让单片机(ABOV)的IO口接地,这是按键的常用方法。那么我加一个外置电路提供一个低电平脉冲就可以模拟一个按键动作了。
去年在馒头科技工作,主要业务是蓝牙4.0。这个应用场合,刚好适合蓝牙4.0模块,通过手机APP控制蓝牙模块的IO口电平,来模拟一个按键动作。很好,就是这个思路。来看具体实现:手机APP——>(AT指令)——>蓝牙模块——>IO低电平——>ABOV按键IO,20ms后手机APP——>(AT指令)——>蓝牙模块——>IO高电平——>ABOV按键IO。这样就完成了一次模拟按键的动作。
接下来我需要准备什么东西?蓝牙4.0模块,直接去馒头科技买;手机APP,需要自己开发,馒头科技有示例程序可以参考。等这些都弄好后,再把蓝牙模块接入豆浆机电路,就可以了。
于是立即去馒头科技的淘宝店买了两个蓝牙4.0模块。
然后问客服拿到资料,分析AT指令手册:
图中的PIO0 —— PIO6可以用来作为IO电平输出
我的手机APP只要按照上图的格式发送AT指令即可操作IO口的电平高低。在此,我选择PIO0 和 PIO1两个IO来模拟按键操作。
另外馒头科技还提供了APP开发指南(整体服务还不错哈),里面有一些广播数据格式的介绍,以及服务UUID,属性UUID。这些会在APP开发中涉及到,这些UUID都是馒头科技的模块所特有定义的,不同的厂家不同。
要注意的是Android系统从4.3版本开始才官方支持BLE开发,之前一般是手机厂商自己有一些API调用,如三星、摩托罗拉。而我的小米2A系统还是MIUI V5(Android 4.1)的,也就是说即使开发了BLE APP在我手机上也不能用。这里我做过很久的思想斗争,因为小米2A在社区应该是有社区版系统支持Android 4.3的,但是我很不想刷机,想找替代方案。于是去找了找传统蓝牙模块能不能有AT指令控制其IO口电平,最后没有找到,传统的蓝牙协议不方便做这样的控制,多媒体方面倒是很在行,像蓝牙耳机音频传输,还有我们平时会用手机对手机进行传文件。最后我还是给我的小米2A刷机了。
(其实还有一种更好的方案,那就是再买一个新手机喽!!!)
后面就择日进行APP开发了!加油!
PS: 啰嗦一下,CSDN写博客插入图片真TMD麻烦。