您正在使用IE低版浏览器,为了您的雷峰网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
此为临时链接,仅用于文章预览,将在时失效
DIY 正文
发私信给大壮旅
发送

1

怕错过手机通知吗?用Arduino做个通知提醒灯吧

本文作者:大壮旅 2015-11-17 11:53
导语:物联网通知灯:信息通知重度依赖症用户专用。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

编者注:本项目来自Instructables,原作者funelab打造了一个非常亮眼的通知提示灯,该兴趣的创客朋友也可以将其移植到微博平台上吧。

我是个IT从业人员,不过平时总是太忙,所以也不经常上Facebook或者刷Twitter。不过干这一行的人都懂得,效率就是生命,所以我要快速地在各种信息流中摸爬滚打,智能手机的推送服务可以满足我的要求,但我喜欢与众不同,所以就直接动手给自己做了一个通知灯,这可不是手机上那个小亮点,是真的灯哦!

我找了玻璃罐来做灯罩,将Gmail、Twitter和Facebook等图标的卡通灯放进去充当光源。

第一步:通知灯简介

怕错过手机通知吗?用Arduino做个通知提醒灯吧

上图就是我的通知灯,当你收到新的消息,它们就会亮起来,是不是酷毙了!

忘了那些容易漏掉的提示音吧,我的通知灯可以亮起不同的颜色来引起你的注意,当你看过信息后,它还会自动熄灭,用起来绝对超赞!

此外,我的通知灯还装配了Seeedstudio公司的grove传感器,还能充当家里的火警警报器。

第二步:原材料清单

以下就是制作通知灯所需的原材料:

怕错过手机通知吗?用Arduino做个通知提醒灯吧

电子元件:

  • 英特尔Edison开发平台和Arduino Breakout开发套件

  • PCB板

  • Arduino Pro Mini 328 - 5V/16MHz

  • RGB LED灯(150枚)

  • 8位移位寄存器74hc595d SMD(54枚)

  • 收发器74hc245d

  • 电解去耦电容器- 100uF/16V

  • 电线等

  • 结构框架:

  • 亚克力材料

  • 铜线

  • 玻璃罐(9个)

工具:

  • 手锯

  • 电钻

  • 钻头

  • 热熔胶和胶枪

  • 强力胶

  • 电烙铁

  • 焊料

  • 剪线钳

  • 老虎钳等

第三步:电源模块

降压电源模块我选择了LM2596,它可以给LED提供稳定的5V电压并能控制整个电路。此外,英特尔的Edison开发板还集成了稳压器电路。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

下面我列举了一些LM2596模块的详细参数:

输入:3V到40V的直流电(输入电压需要比输出电压高出至少1.5V)。

输出:1.5V到35V的直流电,电压连续可调,最大输出电流可达3A。

功能:电感Q值高,可带动高功率LED提示灯。

三维:长宽高分别为45、20和14毫米。

我利用模块上预载的小型电位计调整了输出电压,一般5V或者稍低就足够了;如果你将电压调到5.5V,就可能会损坏集成电路和LED;所以,调整电压时要慎之又慎。

LM2596模块是我的最爱,它功能丰富,价格实惠。

第四步:HC-SR505 Mini红外动作传感器

这个红外动作传感器可以侦测到靠近通知灯的人,有人移动时,灯就会变色。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

该传感器使用方便,只需一个引脚就能完成输出。

第五步:RGB LED灯移位PWM测试

实话说我对移位寄存器很感兴趣,特别是74HC595这个型号。通过这个移位寄存器,你可以在Arduino平台上控制RGB LED灯。此外,你还可以通过SPI,在Arduino平台上实现PWM调制。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

在上图中,我就利用英特尔Edison平台通过UART(通用异步收发器)与Arduino pro mini 进行了通信,而且我还改变了一系列显示效果。

详解:

每个RGB LED都可显示三原色,从而与3 pin控制器相对应。每个8位的74HC595移位寄存器有8个控制输出,在这个项目中,我需要控制16个RGB LED,所以我需要16x3的48 pin控制,也就意味着我要准备6个移位寄存器。

怎样将代码上传至Aeduino Mini:

近来我一直在搞Arduino编程,希望能在这上面做出点成绩来。不过如果你想将代码上传,需要尝试下下面的方法。

首先,你需要一个USB串行光适配器或Arduino Uno,或Duemillanove,反正只要能充当HOST的可拆卸芯片就行。

大体上来说,只要将Arduino和5V的接地线、发射器、接收器连起来并重置Arduino Mini就好。搞定之后重头戏就来了,将ATMega芯片从HOST板上取下,然后按正常程序将代码上传至Arduino。好啦,这一步也完成啦。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

关于编程:

在这里我使用了ShiftPWM的库,它对我帮助很大。如果需要,你可以去Elcojacops Githup下载,其中的示例文件很值得参考。

参阅了相关文档后,我将脉宽调变的频率设定为60,最高亮度设定为200。

第六步:电路图和Arduino专用的程序

怕错过手机通知吗?用Arduino做个通知提醒灯吧

我为Arduino pro mini开发的脉宽调变RGB LED程序,请各位自行下载使用。

第七步:制作电路板

对于热爱各类电子设备的人来说,制作PCB电路板是个再简单不过的工作了。只要去网上找一个电路图,你就可以制作出任何你喜欢的电路板了。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

这就是我搜集的一些印制电路板,因为我要做九个灯,所以我需要九块电路板,九也是我最喜欢的数字。

链接中的是我制作电路的示意图配置图,需要的小伙伴可自行下载。

第八步:焊接LED灯

怕错过手机通知吗?用Arduino做个通知提醒灯吧

整个焊接过程我非常小心,所以过程也变的比较艰难。所以,这步最好心情好的时候去做,要不你肯定会抓狂的。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

第九步:设计图标灯和框架

找到合适的Twitter、Facebook、Gmail等图标文件

怕错过手机通知吗?用Arduino做个通知提醒灯吧

然后用5毫米厚的亚克力板为其制作框架,接着用2毫米厚的亚克力板为整个框架封口。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

下面的文件就是我当时画的图标,如果需要,你可以下载后在Corel Draw X7或更新版本的软件中打开它。

第十步:激光切割亚克力材料

怕错过手机通知吗?用Arduino做个通知提醒灯吧

我手头上并没有激光切割机,原因很简单:穷!所以我只好找了当地一家工厂帮我加工。如果你跟我的情况类似,我劝你也去找家工厂代工一下吧。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

为了节省材料,我将图标都集中到了一块亚克力板上。此外,你可以为这些图标定制不同的颜色,比如红色的Gmail、蓝色的Facebook和Twitter。

第十一步:为玻璃罐留好位子

怕错过手机通知吗?用Arduino做个通知提醒灯吧

玻璃罐的直径为3英寸,所以我只做了一个直接约14.5英寸的灯架,这样就可以一次挂住九个通知灯了。

如图所示,我让通知灯围成一圈,这样看起来无比地和谐,你们说是不是?

第十二步:测试3毫米LED的亮度

怕错过手机通知吗?用Arduino做个通知提醒灯吧

这一步就要让你的图标灯亮起来了,我选了3毫米的LED灯,它们亮度很强,色彩丰富。通过不同的色彩,我就能获得不同的信息。

搞定之后记得用测试板测一下亮度,因为有些透明的LED亮度比其他的要高的多。

第十三步:组装图标灯

焊接LED灯的时候我选择了并联的方式,完成后我将它们装入图标灯中。慢工出细活,这一步需要你做到一丝不苟。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

用强力胶将LED站在图标灯中,然后再用塑料绳固定好各路线材,以防它们露出灯外影响美观。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

这一步一定要认真,要不然你做出的图标灯肯定很丑。

第十四步:测试图标灯的亮度

怕错过手机通知吗?用Arduino做个通知提醒灯吧

装好图标灯后,我又对它们进行了测试,以保证它们通电时能及时亮起。

第十五步:将图标灯安装在印制电路板上

怕错过手机通知吗?用Arduino做个通知提醒灯吧

这一步中,你需要将图标灯焊接在LED电路板上,一根电线连接5V电源,另一根则作为控制线来使用。

第十六步:将印制电路板安装在玻璃罐罐口

怕错过手机通知吗?用Arduino做个通知提醒灯吧

盖子下面,我用了泡沫胶带为电路板提供支撑。然后用塑料绳将盖子和印制电路板固定在一起,以防玻璃罐掉落。

第十七步:最后的检查

怕错过手机通知吗?用Arduino做个通知提醒灯吧

最后再检查一次,保证通电时灯能正常亮起。

第十八步:用绝缘套管为电线做绝缘处理

怕错过手机通知吗?用Arduino做个通知提醒灯吧

第十九步:将玻璃罐挂在亚克力框架上

怕错过手机通知吗?用Arduino做个通知提醒灯吧

记得用塑料绳来固定。

第二十步:开始对英特尔Edison平台进行配置并检查grove传感器

在这个项目中,我使用了英特尔Edison开发板,所以开始前我好好阅读了该平台的说明书。

英特尔Edison运行时需要一个USB驱动,安装好该驱动后,你的电脑上会出现3个虚拟串口。

如果你是个新手,推荐你看下Edison的入门指南。

接下来,你需要安装Flash Tool Lite,它是更新开发版固件时的首选方式。固件就是你开发板的操作系统,通过它你可以使用Wi-Fi、蓝牙、模拟和数字控制等功能。为了提高开发板的稳定性和性能表现,我推荐你及时对其进行固件升级。

连上Wi-Fi后,你就拥有了一台真正的物联网设备。

连接网络:

想要联网,恐怕你还得对代码做些许修改,请按以下两行代码执行。

char ssid[] = "YOUR NETWORK";      // 你的网络的SSID

char pass[] = "NETWORK PASSWORD";   // 你的网络密码

在制作过程中,我使用了grove传感器系统,该系统很容易连接,它包括MQ2瓦斯传感器、火焰传感器、空气质量传感器、红外温度传感器和扬声器。想要了解更多信息你可以参考Grove的维基百科介绍。

怕错过手机通知吗?用Arduino做个通知提醒灯吧

下载本文件并在英特尔的Arduino IDE中将其打开以进行测试。

第二十一步:为你的英特尔Edison平台编程

怕错过手机通知吗?用Arduino做个通知提醒灯吧

在这次的项目中,我主要通过三种方式来获取信息,不过它们有一个共同点,那就是运行python文件并通过API从互联网上获取信息,随后这些信息会被保存为一个文本文档,我只需要阅读文档就能获取所有想要的信息。

更新天气情况

通知灯的天气信息源来自openweathermap.org。这个程序很方便,只要有一个能用Arduino IDE编程并能连接Wi-Fi的微控制器就行。该程序会对openweather的服务器发出一个HTTP请求,随后还会利用TextFinder Arduino库来寻找详细的相关信息,如当前的温度等,随后它会将这些信息存储下来。

不过想要拿到免费的开发密匙(API Key),你得先去申请个免费账户,这样你就能在openweather的网站上随时获取信息了。请访问本链接来完成这一步。

敲击回车键后,屏幕上会出现以下参数:

{"id":88319,"dt":1345284000,"name":"Benghazi",
    "coord":{"lat":32.12,"lon":20.07},

"main":{"temp":306.15,"pressure":1013,"humidity":44,"temp_min":306,"temp_max":306},

"wind":{"speed":1,"deg":-7},

"weather":[

{"id":520,"main":"rain","description":"light intensity shower rain","icon":"09d"},

{"id":500,"main":"rain","description":"light rain","icon":"10d"},

{"id":701,"main":"mist","description":"mist","icon":"50d"}

],

"clouds":{"all":90},

"rain":{"3h":3}}

我会取其中几个参数用在天气的通知灯中。你只需要将其保存成文本文档并使用Arduino IDE对其进行读取就行。

更新未读邮件

想要知道到底有多少未读邮件?你只需连接到一个IMAP4服务器,然后输入用户名和密码进行验证就行。帮你完成这一切的是存储在英特尔Edison中的python文件。

当Edison发现你有一两封未读邮件,就会亮起Gmail的灯来提示你。

更多信息请参阅Sparkfun的教程。

关于Facebook和Twitter的新通知

在这里,我们需要使用Facebook Graph

你需要生成一个访问令牌(Acess Token)。这一步中,只需要依次在屏幕上点击“Get Access Token”和“Extended Permissions”,然后选择“manage_notification”就好。想要使用这个访问令牌,请访问https://graph.facebook.com/me/notifications?acces...

搞定后你会收到一些JSON格式的信息反馈,不过我们能用到的只有后面的“summary”信息。下面是一些你可能会用到的代码:

while True:      
    r = urllib2.urlopen('https://graph.facebook.com/me/notifications?access_token=your_access_token') 

html = r.read() 

data = json.loads(html); 

if len(data['summary']) == 0: 

write_led(0) 

else: 

write_led(1) 

time.sleep(3)

请下载下列文件并运行。

 IoT_Chandelier.ino

 fb.py fb.py

 mail.py mail.py

注意:请将Python文件保存到/home/root/Chandelier/。

第二十二步:固定好英特尔Edison平台和各类传感器

怕错过手机通知吗?用Arduino做个通知提醒灯吧

第二十三步:挂起通知灯

第二十四步:享受各类信息通知的狂轰滥炸吧

通知灯制作完成。

2015-2016赛季全球创客马拉松北理工珠海学院站已经开始接受报名啦!关注“硬创邦”(微信号:leiphone_bang),回复“北理工”即可参与报名!此外还可加入全球创客马拉松主群(群号:259592983),参与我们的互动讨论~

怕错过手机通知吗?用Arduino做个通知提醒灯吧

雷峰网原创文章,未经授权禁止转载。详情见转载须知

分享:
相关文章
当月热门文章
最新文章
请填写申请人资料
姓名
电话
邮箱
微信号
作品链接
个人简介
为了您的账户安全,请验证邮箱
您的邮箱还未验证,完成可获20积分哟!
请验证您的邮箱
立即验证
完善账号信息
您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
立即设置 以后再说