机友分享 | 基于机智云的懒人声控灯

网友投稿 2019-05-26 14:29

https://cdn.china-scratch.com/timg/190528/142ZSP7-0.jpg

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ 本文概述 ]

本案例由Arduino爱好者通过改造普通灯泡,使用Arduino Pro mini和Wifi模块接入机智云平台,实现远程APP、声控及离线按钮控制开关等功能。作者分材料准备、固件烧录、主程序烧写、灯的模型改造、心得感悟和项目演示等环节记录了改造过程。

机智云平台支持STM32、51单片机、树莓派、Arduino及SoC等方案接入,Demo App提供iOS、Android、APiCloud版开源框架,实现IoT设备产品定义、远程控制、数据采集等功能,详见www.gizwits.com开发者中心。

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ 进入正文 ]

这个灯怎么来的,源于一句话:“我有一个大胆的想法!!!”,应该是这样,然后就有了这个灯。差不多花了20天的时间,也没有20天,就是偶尔花点时间弄一下。

先说下具体功能:

  • 离线按钮控制开关

  • 远程APP控制开关

  • 声控控制开关

  • 胶粘在了懒人支架上

前方高能预警!注意!这不是演习!制作过程如下:

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ 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,厚度2mm

1.9   额外:1路继电器,轻触开关,自锁开关,洞洞板,火牛电源头,散热硅脂、铝制散热块各一个

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ Step2 固件烧录 ]

2.1 固件烧写

机智云烧录GAgent固件方法参考:

http://club.gizwits.com/forum.php?mod=viewthread&tid=3551&highlight=8266

2.2 主控烧录

2.2.1 在机智云中添加两个数据点,LED_Switch,Sound_Switch,布尔类型,可写,

将下载的代码文件夹Gizwits放入Arduino编程器文件目录libraries下。

如果开发流程不清楚可以详见官方开发流程!附上地址:dev.gizwits.com

2.2.2 下载ProtoThreads多线程的库,同上放入libraries。

修改Gizwits文件夹下的Gizwits.h头文件,打开头文件,将公有成员函数void process(void);改为bool process(void);

同样,在Gizwits.cpp中将函数修改为bool类型,还需对代码修改,如下:

https://cdn.china-scratch.com/timg/190528/142Z933N-5.jpg

解释一下为什么,在我的代码中有一行:

                   PT_WAIT_UNTIL(pt,myGizwits.process());

这个函数的第二个参数是布尔类型的参数,所以需要修改Gizwits的源代码,当串口无数据是该线程阻塞的,当串口接收到数据时,线程运行,这样可以节省CPU查询if语句的资源。

2.3总体代码

移植networkConfig中的部分代码,按键1的代码去掉(基本用不到),修改按键2为D4,方便随时都配置网络。

声音传感器使用中断触发的方式,连接在D3(外部中断1),使用计算时差的方式过滤掉一些杂音或避免多次重复触发开关。

由于单片机的IO提供电流太小,所以LED灯通过继电器控制,继电器低电平驱动,连接在D5。

附上代码:

https://cdn.china-scratch.com/timg/190528/142Z92M1-6.jpg

https://cdn.china-scratch.com/timg/190528/142Z95234-7.jpg

https://cdn.china-scratch.com/timg/190528/142Z96441-8.jpg

https://cdn.china-scratch.com/timg/190528/142ZaJ1-9.jpg

https://cdn.china-scratch.com/timg/190528/1429106436-10.jpg

https://cdn.china-scratch.com/timg/190528/1429102544-11.jpg

烧录时由于Pro mini没有自带串口,所以要用FTD1232串口模块下载,若用其它的开发板可以不用FTD1232。

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ Step3 模型设计 ]

3.1 灯的改造

这是买来时的灯:

https://cdn.china-scratch.com/timg/190528/142910F91-13.jpg

拆了后如图:

https://cdn.china-scratch.com/timg/190528/1429103455-14.jpg

这样,把固定灯的环壳用钩刀裁剪下来      https://cdn.china-scratch.com/timg/190528/1429113I0-15.jpghttps://cdn.china-scratch.com/timg/190528/1429115117-16.jpg

在LED灯板上用钻孔机(这个东西实验实有)钻两个孔,涂上硅脂,固定在散热块上

https://cdn.china-scratch.com/timg/190528/1429124N5-17.jpg

https://cdn.china-scratch.com/timg/190528/142912H54-18.jpg

最后,当当当~~~,拼装起来

https://cdn.china-scratch.com/timg/190528/142913B48-19.jpg

3.2 外壳设计

由于灯的最大直径为60mm,所以四面的长方形块大小为60x73mm,顶部的方形块大小为60x60mm,都用钩刀裁剪就可以了。

3.3 顶部电源设计

如图想办法挖槽吧,用钻孔机+钩刀,是的,楼主我只有这些工具。

https://cdn.china-scratch.com/timg/190528/142913A31-20.jpg

然后把开关,按钮等东西用热熔胶粘上去

https://cdn.china-scratch.com/timg/190528/1429133C2-21.jpg

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ Step4 安装模型 ]

先用热熔胶粘两个侧面,然后固定LED灯。再把元器件也粘进去

https://cdn.china-scratch.com/timg/190528/14291443c-23.jpg

接下来把其它两块也粘上去,这样大体就差不多了

https://cdn.china-scratch.com/timg/190528/14291455C-24.jpg

以上步骤在做的时候边粘边连线的!

最后,盖上顶部的盖子。

https://cdn.china-scratch.com/timg/190528/142915K12-25.jpg

呐~~~酱紫的~~~

https://cdn.china-scratch.com/timg/190528/14291532c-26.jpg

现在轮到懒人支架上场表演了,先把脚跺了再说,如下图

https://cdn.china-scratch.com/timg/190528/14291A142-27.jpg

https://cdn.china-scratch.com/timg/190528/14291B5V-28.jpg

再把脚粘在灯的顶部

https://cdn.china-scratch.com/timg/190528/14291H335-29.jpg

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ Step5 装饰灯具 ]

以前做了个大别野,剩了点贴纸,就给敷上去了,字不重要,看下图

https://cdn.china-scratch.com/timg/190528/14291J5K-31.jpg

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ 个人感悟 ]

说一下感悟吧:

         用心做好一个灯

         不只是电科的专业与执着

         更是使命

         用实在的原料

         佐以专业独运的焊接工艺

         所融入的不只是优美代码

         还有与之相得益彰的模型

         让人陶醉,更令人沉迷的

         电科精神

         打包,懒人声控致瞎灯

         以亚克力熔制的躯壳

         融入困、懒、惰、倦之气

         让每一次起床开关灯的想法万念俱灰

         声控也更为庸人自扰

         懒得到豆腐渣工艺

         更享受到无比诚意

         ——修改于匠汤海鲜面

https://cdn.china-scratch.com/timg/190528/142ZW314-1.jpg

[ 项目演示 ]

项目演示视频地址

http://v.youku.com/v_show/id_XMzA4OTQzMzcwOA==.html

题外话:本来想做花样七彩+白色LED灯的(WS2812B RGB七彩转圈圈的,很漂亮,美滋滋),后来发现驱动RGB灯需要占用极大的CPU使用率,又由于Arduino 串口库不能中断收发数据(即实时性低)  影响用户体验,就没做了。

https://cdn.china-scratch.com/timg/190528/14291K226-34.jpg

楼主我走过一些弯路,烧过一些芯片,这是取经之路必定会发生的事情,这是我完美的一面,为各位网友踮脚啦

项目代码&ProtoThreads库源码

阅读原文可打包下载

相关推荐:

  • 27个免费视频教你学安卓APP开发

  • 基于Arduino的七彩灯

  • 远程APP控制车库电动卷帘门

  • 基于51的七彩灯

  • 基于RGB灯的MCU和SOC方案

https://cdn.china-scratch.com/timg/190528/14291U328-35.jpg

扫一扫,开启您的IoT开发之旅

--end--

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com