在本文上篇中,我谈到了一个模糊的想法——一台物联网模块灯——这个想法可用于布置我新生宝宝的房间。准备工作已经完成,现在就开始动手制作原型机吧!

制作原型机

如前文图一方块图所示,一个与TPS92512 连接的TI SimpleLink™ Wi-Fi® CC3200无线微型控制器(MCU) LaunchPad™工具包可用来驱动LED光束。我用了一个12V的开关电源器作为电源供应,并用EnergiaCC3200撰写了固件。你也可以使用代码生成器™集成开发环境(IDE)撰写固件,这是我最喜爱的工具,但在这里,代码示例和Arduino界面可大大加快我们制作原型机的进程。

我用最新的固件创建了CC3200无线微型控制器LaunchPad工具包,并编程工具箱使之可在MQTT(消息列队遥测传输)代理器上就某特定话题进行对话。MQTT是一种小型传输协议,开销很小,可允许服务器与客户机在网络上建立通讯连接。Facebook即时通信就使用了MQTT协议,该协议被认为是推动未来物联网发展最重要的协议工程之一。

我还为这个项目设计了一个小型的印刷电路板(PCB),框架为一个加强包™插入式组件;结果请见图1。多个PCB可以叠加,以取得想要的LED驱动器通道数量。

1:TPS92512加强包示意图截屏

我的设计可适配50mm x 50mm形状因子,这样就可以降低量产的生产成本。图2所示的是最终版的电路布置图截屏,包括了四个安装孔,以及一致的组件引线。

2:TPS92512加强包最终电路布置图截屏

我使用了评估模块的原理图和布置图作为设计指导。

Würth Elektronik提供了线圈和机电元件,且机电元件都已经蚀刻好了足迹,这简直帮了我的一个大忙。面板设计的准备工作并不困难:如图3所示,我打印出电路布置图,核对了足迹,确保一切正常。

3:在1:1的布置图打印图纸上核对足迹

客户端设计

凭借对HTML、代码生成器集成开发环境(IDE)和JavaScript®的基本了解,我创建了一个简单的用户界面。我的想法是在网页界面创建按钮,使用JavaScript将命令通过MQTT协议发送至代理器并最终到达物联网灯。我用代码生成器创建了网页,并用JavaScript的Paho程序库对网页进行了美化。图4即该网页的截图。

4:远程控制即时网页

我在家庭自动化前端设计上多少有点走极端,但你能明白我的意思,我想要的是一种人们愿意花钱购买的外观和感觉。设计的四个按钮都是我所需要的,且功能都相当不错。网页的设计用到了推特的引导程序,也就是说,同一个网页在不同的屏幕尺寸下,其显示的外观是不同的。

爱和浪漫

我已经搞定了项目的技术细节,毕竟这多多少少是个科学项目。但我的妻子提议将这个原型机转化为真正的产品供我们自己使用,这才是真正的挑战。当时妻子正在待产,她希望可以远程调节宝宝房间的灯光亮度。这盏灯既可以作为房间的照明灯,也可以用作夜明灯、以及“半夜为宝宝换尿布灯”。我没有选择用3D打印技术制作灯外壳,而是回收利用了一个旧液晶显示屏、一些旧玻璃以及结婚前的生日卡片。我和妻子间的浪漫还在,现在该用这一份浪漫去点亮台灯。图5所示的是手工布置的模块灯外壳内的元件布置图。

5:回收PC显示屏内的各种元件布置

把废弃的物品重新搭配起来是个很有意思的过程。图6所示即是成品。

6:成品

严格来说,最终的成品不能称之为是产品,更遑论是一件融合了个性化手工艺术的科技产品。但我们的宝宝很喜欢盯着婴儿床上方这件设计产品看,对此我们深感欣慰。

下一步的工作

目前我正致力于在相同概念基础上开发室内水耕种植所需的生长灯,这正代表了另一种应用程序。

对这个样品来说,安全从来都不是关键,但对物联网产品,安全问题至关重要。因此我目前正在尝试去开发一个安全的解决方案。我用树莓派(Raspberry Pi)做实验,将它设置为本地代理,并考虑将整个网页用户界面移植到SimpleLink Wi-Fi CC3200设备上。这两种办法都可行,但由于都不再接入互联网、或不能从网络上接入,因此不能作为物联网产品安全问题的解决方案。

结语

这个项目只是一个我个人参与的概念验证。有很多朋友请我帮忙做一个同样的产品,现在我都拒绝了他们,但以后说不定我可以给他们一台飞利浦Hue照明灯作为替代。

这个项目最重要的一点是它证明了只要有资源,快速制作一个物联网原型机也是一件很轻松的事。感谢德州仪器、Würth Elektronik和14元素的大力支持。前途一片光明!

原文链接:

https://e2e.ti.com/blogs_/b/powerhouse/archive/2016/06/24/designing-an-iot-modular-light-part-2

Anonymous