亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

$20 Zigbee Door Chime

组件和用品

Arduino Nano R3
× 1
Cree 连接 LED 灯泡
Cree 的 Zigbee LED 可调光智能灯泡
× 1

应用和在线服务

Arduino IDE

关于这个项目

我的设置

我有一个相当广泛的 zigbee/z-wave 网状网络,用于我的互联网连接的家庭自动化系统(通过 SmartThings),它可以完成从控制我的灯和监控用电量到警告极端天气和提醒我喂狗的所有事情。

整个用户界面通过智能手机应用程序实现,警报可以通过应用程序推送或通过短信发送。我觉得已经从裂缝中溜走的一个用例是一种友好的钟声,它可以提醒住户注意房屋内的状态变化(门/窗/保险箱/大门打开、恶劣天气或托儿所的温度过高)。


问题

当运动传感器或门窗传感器跳闸时,已经有一些选项可以触发超响亮的警报器,但我找不到任何简单的门铃。这是几乎所有家庭安全系统的基本功能,所以我真的很惊讶地发现它不存在。我研究过破解远程门铃传感器,但困难/昂贵的部分是将它安装到我的 z-wave/zigbee 网状网络上。 SmartThings 有一个用于 SONOS 扬声器的 API [昂贵],我见过人们菊花链式地将多个集成从 SmartThings 到 IFTTT 再到 Twitter,再到连接 wifi 的 arduino [过于复杂和缓慢]。

总而言之,这些解决方案中的任何一个都将超过 40 美元,而我希望以低于 20 美元的价格获得相同的功能和更好的性能。


进入 Cree Connected LED 灯泡

Home Depot 以 15 美元的价格出售 Cree Connected Bulb,它们是迄今为止我最喜欢的智能灯泡。低于 50 美元的其他产品在光输出、色温、可调光范围、寿命或无线范围方面都无法与之媲美。

我已经把我所有的旧智能灯泡都换掉了,还有一些剩下的,所以现在我想看看我还能用这个便宜又可靠的硬件做什么。其他人拆掉了灯泡,发现所有 zigbee 组件都在一个分线板上,并且使用 3.3v 电源……我的 arduino 感觉很刺痛。

事实证明,zigbee 板实际上有一个 Atmel SAMR21,它是一个 32 位 ARM Cortex 芯片,具有 256KB 的闪存 (pdf)。 Atmel 以 42 美元的价格出售一个开发 SAMR21 板,因此以 15 美元的价格购买它是很划算的。

低于 20 美元的硬件

使用 SmartThings 进行概念验证

这是一个快速的 PoC,它使用 arduino 上的状态变化监视器来触发压电蜂鸣器上的“铃声”。灯泡调光和开/关输出引脚仍然有效,使用 SmartThings 应用引擎,我可以构建我想要的任何逻辑。

即使没有 arduino,您也可以将数字引脚直接连接到继电器以打开/关闭几乎任何东西。这可以驱动 LED 灯条、打开/关闭车库门、打开电机/泵等。

使用 SmartThings 进行概念验证

由于其中一个引脚输出 PWM,我可以将其连接到映射到 1-100% 之间读取值的 arduino 上的模拟 I/O 引脚之一。在 SmartThings 中,这些被分成 10% 的间隔,因此在该间隔和开/关之间,我可以通过 zigbee 板发送 11 个不同的输出。这将允许它根据打开的门/窗触发不同的警报。

这可以扩展到不仅仅是警报或提示音。另一个项目我正在为我的窗户空调装置开发 arduino 控制的 IR 发射器,现在我可以使用上述方法直接与 SmartThings 集成,它将识别我的存在/占用传感器和房屋状态。

此外,因为这都是 3.3v,所以它是 ATtiny85 和 3.7v 锂离子电池的完美用例,用于超小型便携包装。我还保留了灯泡的电源,因为它从 120 伏交流电下降到 3.3 伏直流电,毫无疑问会在未来的项目中派上用场。

我相信这个社区可以想出其他用途,所以请评论您如何使用它,甚至构建自己的演绎并发布项目!

代码

  • 门铃草图
  • pitches.h
DoorChime SketchC/C++
DoorChime 的 Arduino Sketch
#include #include "pitches.h"/*快速草图作为 PoC,用于使用 Cree Connected LED 的 zigbee 板驱动其他设备(在这种情况下为扬声器)的可行性。修改者Buddy Crotty - 2015 年 3 月版本 0.1.2 完全复制自 Tom Igoe 的示例草图:状态变化检测(边缘检测)toneMelody 这个示例代码在公共领域。 http://arduino.cc/en/Tutorial/ButtonStateChange http://arduino.cc/en/Tutorial/ToneZigbee 板来自 Cree 连接 LED 引脚 1 接地引脚 2 3.3Vin 引脚 3 PWM 输出引脚 4 数字输出电路:* 8数字引脚 8 上的 -ohm 扬声器 * 引脚 2 连接到 zigbee 板引脚 4 */// 这个常数不会改变:const int buttonPin =2; // 按钮连接到的引脚 const int SpeakerPin =8; // 扬声器连接的引脚// 变量会改变:int buttonPushCounter =0; // 按钮按下次数的计数器int buttonState =0; // 按钮的当前状态int lastButtonState =0; // 按钮的先前状态// 旋律中的音符 (7nationArmy):int melody[] ={ NOTE_GS2, NOTE_GS2, NOTE_B2, NOTE_GS2, NOTE_FS2, NOTE_E2, NOTE_DS2};// 音符持续时间:4 =四分音符,8 =八分音符等:int noteDurations[] ={ 4, 8, 8, 8, 8, 3.5, 3};void setup() { // 将按钮引脚初始化为输入:pinMode(buttonPin, INPUT); // 将 LED 初始化为输出:pinMode(speakerPin, OUTPUT);}void loop() { // 读取按钮输入引脚:buttonState =digitalRead(buttonPin); // 将 buttonState 与其之前的状态进行比较 if (buttonState !=lastButtonState) { // 如果状态发生变化,则增加计数器 if (buttonState ==HIGH) { // 如果当前状态为 HIGH,则按钮 // wend从关到开:buttonPushCounter++; //播放音 // 迭代旋律的音符: for (int thisNote =0; thisNote <8; thisNote++) { // 计算音符持续时间,用一秒 // 除以音符类型。 //例如。四分音符 =1000 / 4,八分音符 =1000/8,等等 int noteDuration =10000 / noteDurations[thisNote];音调(speakerPin,旋律[thisNote],noteDuration); // 为了区分音符,设置它们之间的最短时间。 // 音符的持续时间 + 30% 似乎效果很好: int pauseBetweenNotes =noteDuration * .32;延迟(pauseBetweenNotes); // 停止播放音调: noTone(speakerPin); } } else { // 如果当前状态为 LOW 则按钮 // 从开到关:Serial.println("off"); } // 延迟一点以避免反弹 delay(50); } // 将当前状态保存为上次状态, // 下次通过循环 lastButtonState =buttonState; // 每两个状态改变都会打开响铃(仅当门打开时) // 模函数为您提供 // 两个数字除法的余数: if (buttonPushCounter % 2 ==0) { digitalWrite(speakerPin, HIGH ); } else { digitalWrite(speakerPin, LOW); }}
pitches.hC/C++
音高库,因此您不必自己搜索
/************************************* **************** * 公共常量 ******************************* ******************/#define NOTE_B0 31#define NOTE_C1 33#define NOTE_CS1 35#define NOTE_D1 37#define NOTE_DS1 39#define NOTE_E1 41#define NOTE_F1 44#define NOTE_FS1 46#define NOTE_G1 49#define NOTE_GS1 52#define NOTE_A1 55#define NOTE_AS1 58#define NOTE_B1 62#define NOTE_C2 65#define NOTE_CS2 69#define NOTE_D2 73#define NOTE_DS2 78#define NOTE_E2 82#FS#define 2 NOTE_E2 82#FS#define_F定义 NOTE_G2 98#define NOTE_GS2 104#define NOTE_A2 110#define NOTE_AS2 117#define NOTE_B2 123#define NOTE_C3 131#define NOTE_CS3 139#define NOTE_D3 147#define NOTE_DS3 156#define NOTE_E3#define 16#define NOTE_E3#define 135F 13 NO NOTE_B2 123#define NOTE_C3 196#define NOTE_GS3 208#define NOTE_A3 220#define NOTE_AS3 233#define NOTE_B3 247#define NOTE_C4 262#define NOTE_CS4 277#define NOTE_D4 294#define NOTE_DS4 311#define NOTE_E4 330#define 4精细 NOTE_FS4 370#define NOTE_G4 392#define NOTE_GS4 415#define NOTE_A4 440#define NOTE_AS4 466#define NOTE_B4 494#define NOTE_C5 523#define NOTE_CS5 554#define NOTE_D5 587#define NOTE_DS5#define 6F NOTE_DS5#define 2F NOTE_DS5#define 8F 740#define NOTE_G5 784#define NOTE_GS5 831#define NOTE_A5 880#define NOTE_AS5 932#define NOTE_B5 988#define NOTE_C6 1047#define NOTE_CS6 1109#define NOTE_D6 1175#define NOTE_DS6 1395NOTE_DS6 16Edefine 16F 16E 124 FNOTE_DS6 16E 4 F define NOTE_G6 1568#define NOTE_GS6 1661#define NOTE_A6 1760#define NOTE_AS6 1865#define NOTE_B6 1976#define NOTE_C7 2093#define NOTE_CS7 2217#define NOTE_D7 2349#define NOTE_D7 2349#define NOTE_DS7#define 2377F NOTE_DS7#define 2727F NOTE_DS7#define 427F NOTE_S6 1865#define NOTE_B6 1976 3136#define NOTE_GS7 3322#define NOTE_A7 3520#define NOTE_AS7 3729#define NOTE_B7 3951#define NOTE_C8 4186#define NOTE_CS8 4435#define NOTE_D8 4699#define NOTE_DS8 4978

示意图

带有草图代码的DoorChime的Fritzing电路图 DoorChime.fzz

制造工艺

  1. 银行金库
  2. 旋转门
  3. 风铃
  4. 灯泡
  5. Z-Wave 对比。 Zigbee
  6. ZigBee Vs. XBee:易于理解的比较
  7. 使用 Zigbee 传感器的交互式激光投影仪
  8. Windows IoT:人脸识别门
  9. 建立联系
  10. 什么是插销?
  11. 什么是边框开关?
  12. 如何修理你的车门把手