基于机智云的懒人声控灯
这个灯怎么来的,源于一句话:“我有一个大胆的想法!!!”,应该是这样,然后就有了这个灯。差不多花了20天的时间,也没有20天,就是偶尔花点时间弄一下。先说下具体功能:[*]离线按钮控制开关
[*]远程APP控制开关
[*]声控控制开关
[*]胶粘在了懒人支架上
前方高能预警!注意!这不是演习!制作过程如下:[ Step1 材料准备]1.1 主控:Arduino Pro mini以及FTD1232串口下载器1.2 通信:正点原子ESP8266 WIFI模块1.3 声控:声音检测模块1.4 光源:5W 白灯10颗灯珠,5V供电1.5 供电:DC 5V-2A 适配器1.6 支架:懒人手机支架(后续改装用)1.7 工具:电烙铁,热熔胶,钩刀,1.8 模型:亚克力板20x30cm,厚度2mm1.9 额外:1路继电器,轻触开关,自锁开关,洞洞板,火牛电源头,散热硅脂、铝制散热块各一个[ Step2 固件烧录]2.1 固件烧写机智云烧录GAgent固件方法参考:http://club.gizwits.com/forum.php?mod=viewthread&tid=3551&highlight=82662.2 主控烧录2.2.1 在机智云中添加两个数据点,LED_Switch,Sound_Switch,布尔类型,可写,将下载的代码文件夹Gizwits放入Arduino编程器文件目录libraries下。如果开发流程不清楚可以详见官方开发流程!附上地址:dev.gizwits.com2.2.2 下载ProtoThreads多线程的库,同上放入libraries。修改Gizwits文件夹下的Gizwits.h头文件,打开头文件,将公有成员函数void process(void);改为bool process(void);同样,在Gizwits.cpp中将函数修改为bool类型,还需对代码修改,如下:http://5b0988e595225.cdn.sohucs.com/images/20190528/9f4e64e422194c6e8b763ef5e08ee5f3.png解释一下为什么,在我的代码中有一行:PT_WAIT_UNTIL(pt,myGizwits.process());这个函数的第二个参数是布尔类型的参数,所以需要修改Gizwits的源代码,当串口无数据是该线程阻塞的,当串口接收到数据时,线程运行,这样可以节省CPU查询if语句的资源。2.3总体代码移植networkConfig中的部分代码,按键1的代码去掉(基本用不到),修改按键2为D4,方便随时都配置网络。声音传感器使用中断触发的方式,连接在D3(外部中断1),使用计算时差的方式过滤掉一些杂音或避免多次重复触发开关。由于单片机的IO提供电流太小,所以LED灯通过继电器控制,继电器低电平驱动,连接在D5。附上代码:http://5b0988e595225.cdn.sohucs.com/images/20190528/4166cf7d8fa44bf593891f46fb55b227.pnghttp://5b0988e595225.cdn.sohucs.com/images/20190528/3f0e89f811664ee9b3af9f3c81053111.pnghttp://5b0988e595225.cdn.sohucs.com/images/20190528/053b39b3cba246ba8bf4abe63ab0cb7d.pnghttp://5b0988e595225.cdn.sohucs.com/images/20190528/cbbc498ddfba4b589a54c72410512226.pnghttp://5b0988e595225.cdn.sohucs.com/images/20190528/323a0dac6ea14e1d80c98920c51012a7.pnghttp://5b0988e595225.cdn.sohucs.com/images/20190528/ffffdb1ad4a44234a3eab2697de0f691.png烧录时由于Pro mini没有自带串口,所以要用FTD1232串口模块下载,若用其它的开发板可以不用FTD1232。[ Step3 模型设计]3.1 灯的改造这是买来时的灯:http://5b0988e595225.cdn.sohucs.com/images/20190528/ddc506d031474b1c8bf4930d3c670606.jpeg拆了后如图:http://5b0988e595225.cdn.sohucs.com/images/20190528/6bf8a0ef7c2c4908952c89c096a9036b.jpeg这样,把固定灯的环壳用钩刀裁剪下来http://5b0988e595225.cdn.sohucs.com/images/20190528/d5718132e3dd46dd9d3ce56ad8100bee.jpeghttp://5b0988e595225.cdn.sohucs.com/images/20190528/2ede1f9b5ab04615b856b6874b9a7601.jpeg在LED灯板上用钻孔机(这个东西实验实有)钻两个孔,涂上硅脂,固定在散热块上http://5b0988e595225.cdn.sohucs.com/images/20190528/520dfcfc17f548e2b675544ee1dc5347.jpeghttp://5b0988e595225.cdn.sohucs.com/images/20190528/8ac373db38e240eaa0a2fad0f5124175.jpeg最后,当当当~~~,拼装起来http://5b0988e595225.cdn.sohucs.com/images/20190528/35237a34ac1f4ace87082ba6cb78b12b.jpeg3.2 外壳设计由于灯的最大直径为60mm,所以四面的长方形块大小为60x73mm,顶部的方形块大小为60x60mm,都用钩刀裁剪就可以了。3.3 顶部电源设计如图想办法挖槽吧,用钻孔机+钩刀,是的,楼主我只有这些工具。http://5b0988e595225.cdn.sohucs.com/images/20190528/9d48b77bdb9d4fddb7b17728b3dedbe2.jpeg然后把开关,按钮等东西用热熔胶粘上去http://5b0988e595225.cdn.sohucs.com/images/20190528/0ca877b3ecee4a0e94c6d300c2597110.jpeg[ Step4 安装模型]先用热熔胶粘两个侧面,然后固定LED灯。再把元器件也粘进去http://5b0988e595225.cdn.sohucs.com/images/20190528/8c98d61c0c47489aadfbb1945078e121.jpeg接下来把其它两块也粘上去,这样大体就差不多了http://5b0988e595225.cdn.sohucs.com/images/20190528/2c48ca4842e445f6b03eee45fa82a8a1.jpeg以上步骤在做的时候边粘边连线的!最后,盖上顶部的盖子。http://5b0988e595225.cdn.sohucs.com/images/20190528/90d792576feb4081a31691cad6c1ee1a.jpeg呐~~~酱紫的~~~http://5b0988e595225.cdn.sohucs.com/images/20190528/9c6c383636e9449abb685f007ced2dc8.jpeg现在轮到懒人支架上场表演了,先把脚跺了再说,如下图http://5b0988e595225.cdn.sohucs.com/images/20190528/3711584b77d943b0bcbef464444ff9de.jpeghttp://5b0988e595225.cdn.sohucs.com/images/20190528/19ad8baf136e465aa163925c0748dfaa.jpeg再把脚粘在灯的顶部http://5b0988e595225.cdn.sohucs.com/images/20190528/e12d1f8f933c453ea5d52e1cd2328eac.jpeg[ Step5 装饰灯具]以前做了个大别野,剩了点贴纸,就给敷上去了,字不重要,看下图http://5b0988e595225.cdn.sohucs.com/images/20190528/ec6b31afce924d489bc0dcd2b1f73d9f.jpeg[ 个人感悟]说一下感悟吧:用心做好一个灯不只是电科的专业与执着更是使命用实在的原料佐以专业独运的焊接工艺所融入的不只是优美代码还有与之相得益彰的模型让人陶醉,更令人沉迷的电科精神打包,懒人声控致瞎灯以亚克力熔制的躯壳融入困、懒、惰、倦之气让每一次起床开关灯的想法万念俱灰声控也更为庸人自扰懒得到豆腐渣工艺更享受到无比诚意——修改于匠汤海鲜面[ 项目演示]项目演示视频地址http://v.youku.com/v_show/id_XMzA4OTQzMzcwOA==.html题外话:本来想做花样七彩+白色LED灯的(WS2812B RGB七彩转圈圈的,很漂亮,美滋滋),后来发现驱动RGB灯需要占用极大的CPU使用率,又由于Arduino 串口库不能中断收发数据(即实时性低) 影响用户体验,就没做了。http://5b0988e595225.cdn.sohucs.com/images/20190528/a9c4f9f47148449584d6df7190fdf370.jpeg楼主我走过一些弯路,烧过一些芯片,这是取经之路必定会发生的事情,这是我完美的一面,为各位网友踮脚啦项目代码&ProtoThreads库源码
顶下,谢谢分享
Arduino也是很强大的 支持动手
页:
[1]