广告

利用Simblee蓝牙控制系统DIY一个智能百叶窗

2017-09-15 Duane Benson 阅读:
苦命的上班族工作日不得不早早起床,要在规定的时间赶到办公室,哪怕多睡一分钟都是奢望。好不容易盼到周末,本想睡到日上三竿,却被透过窗帘的日光扰了清梦,好不烦恼。当我们的美国工程师遇到同样的问题时,就在家里的百叶窗上装了一个Simblee蓝牙控制系统,窗帘可以在预设的时间自动打开或关闭了......

灵感来得很突然。在一个星期六的早上,我想多睡一会儿(事实上每天我都想多睡几分钟,但只有星期六才可以这样任性)。然而事与愿违,我的百叶窗太差了,根本就遮不住光,我感觉光线透过百叶窗后更加刺眼了。下面的图像尽可能准确地显示了光线的亮度级别。左边是实际亮度,右边是我期望的亮度。zEgednc

Simblee_F1_20170915

(来源: Duane Benson)zEgednc

zEgednc

我决定用安卓版的Simblee应用程序来解决这个问题。Simblee是与Arduino兼容的蓝牙控制系统,使用Arduino IDE进行编程,与iPhone或Android应用程序配合使用,就可以轻松地对小设备进行复杂的无线控制。zEgednc

硬件

我打算用Simblee控制与遮光百叶窗连接的步进电机。我在Simblee的哥们给了我一些芯片和印刷电路板,还有我自己的Adafruit电机扩展板,另外我还设计了一个带3至5伏线路电平转换器的通过Simblee连接的Arduino扩展板。zEgednc

最初我设计的是一个不带线级电平转换器的部分功能板,只使用了开漏线路电平转换器芯片,把上拉电阻给忘了。zEgednc

新的版本在I2C线路上使用了更传统的推挽转换器芯片(Ti TXB0108)作为数字I/O、两个MOSFET和四个电阻转换器。在第三版中,我将Simblee模块直接放在具有Arduino外形的PC板上。这就是带Simblee蓝牙控制功能的独立Arduino。zEgednc

下图是我用到的组件。从顶部中间按顺时针方向,这些组件分别是:zEgednc

* Adafruit电机扩展板和步进电机
* 用DS3231 RTC(实时[**时钟**](http://pubads.g.doubleclick.net/gampad/clk?id=4417008426&iu=/122049170/TEXT_AD))设计的多传感器扩展板
* Simblee RFD22122 RGB LED /按钮扩展板
* Simblee RFD22121 USB编程扩展板
* Simblee RFD77201 7-GPIO分线板
* 具有Arduino外形尺寸通过Simblee连接的扩展板
* 不带Atmega328P MCU的Arduino Uno

Simblee_F2_20170915

(来源: Duane Benson)zEgednc

zEgednc

你也许会好奇最后一个组件为什么要用不带微控制器的Arduino。实际上Simblee自带32位MCU,我会用它执行所有的计算,所以就用不着Arduino了。 但是这些组件中没有5伏电源,所以使用Uno板作为电源。通过Simblee连接的扩展板需要一个电源输入连接器以及3V和5V电压调节器。3.3V电源已经有了,但是没有外部调节5伏电源,如果不使用无MCU的Arduino,会很麻烦。zEgednc

下图中所有组件叠装在一起了。zEgednc

Simblee_F3_20170915

(来源: Duane Benson)zEgednc

zEgednc

它的基本作用是在晚上自动关下百叶窗,并在不同的日子里,在早上不同的时间拉开窗帘。工作日的早上会早点开窗,周末就会让我睡会儿懒觉,上午10:00或11:00再开窗。窗帘开关的时间由RTC控制,手机上安装的应用程序用于控制百叶窗打开的程度,可以全开,也可以半开,这样我就不用下床啦。zEgednc

Simblee通过蓝牙协议栈与手机通信,它使用其I2C接口与电机扩展板通话。Simblee还能够与基于云的应用和网站进行通信,因此一旦可以用了,我就会设置远程控制和调度,不过这是另外一个故事了…...zEgednc

软件

Simblee使用Arduino IDE编程,包括Simblee的微控制器功能和手机上的UI(用户界面)。微控制器组件与标准Arduino代码大致相同并兼容。手机UI也在Arduino IDE中编码。zEgednc

例如,下面是在手机上创建向上箭头控制的代码:zEgednc

uibuttonUp = SimbleeForMobile.drawButton(120,100,100,“Blinds up”);zEgednc

下面是按下按钮时调用函数的代码:zEgednc

SimbleeForMobile.setEvents(uibuttonUp,EVENTPRESS);zEgednc

Simblee Arduino兼容代码有三个模块:SimbleeForMobile,用于与手机通话; SimbleeCOM,用于Simblee到Simblee通信;SimbleeCloud,用于与网络连接。目前我只用了SimbleeForMobile,需要基于Web的远程控制功能时,就可使用SimbleeCloud。zEgednc

不得不说Simblee与Arduino的兼容性相当不错。Adafruit的电机扩展板和RTC代码根本不需修改,复制再粘贴就可以使用。没有比这更省事的了。zEgednc

安装

安装很容易,如下图。在窗帘的一侧装一个标准支架;在另一侧,用一小段软管将步进轴连到百页窗,它将作为安装和驱动轴。最后,用小接近传感器作为百叶窗移动的限位开关。zEgednc

Simblee_F4_20170915

(来源: Duane Benson)zEgednc

zEgednc

将电机轴连到百叶窗的滚轴并安装光传感器,一切准备就绪。然后需要稍微调整一下步进电机的安装位置。启动之后,它的轰鸣声好像一辆卡车正向我撵来。zEgednc

读者朋友,看了这篇文章,你有没有想要一试身手的冲动呢?zEgednc

原文刊登在EDN姊妹网站Embedded,参考链接Using Simblee Bluetooth to improve one's sleep,由Jenny Liao编译整理。zEgednc

20160630000123zEgednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
您可能感兴趣的文章
相关推荐
    广告
    近期热点
    广告
    广告
    广告
    可能感兴趣的话题
    广告
    向右滑动:上一篇 向左滑动:下一篇 我知道了