电子说
步骤1:材料
糖果分配器
塑料桶
3英寸x 60英寸。圆管
2 Futaba S3003伺服系统
1旧CD
螺母和螺栓
控制箱
塑料项目外壳
大圆顶按钮
16x2串行LCD显示屏
嵌入式5e RJ-45插孔
尺寸M面板安装同轴直流电源插座
12 V DC变压器
C在5电缆处
主机箱
铝制项目机箱
Arduino Duemilanove
Adafruit Protoshield
XBee适配器套件
XBee模块
x10爆竹CM17A
x10收发器
1100 k电阻
通讯桥
ioBridge IO-204
ioBridge串行智能板
XBee适配器套件
XBee模块
烟雾机
X10设备模块
125VAC/10A DPDT插入式继电器(作为与x10组合的开关)
聚苯乙烯泡沫塑料冷却器,干燥器软管和冰,以产生低雾。
(有关更多信息,请查看我去年的万圣节项目https://www.instructables.com/id/Halloween-Dropping-Spider/)。/li》
灯和配件
X10设备模块
白炽灯,频闪灯,黑色灯泡。
步骤2:糖果分配器
第一件事是找出一个装糖果并分配的好方法。我使用了一个塑料桶,一条金属通风管和一个附在伺服电机上的CD,我发现通过从侧面而不是底部分配糖果,可以使糖果更自由地移动并避免糖果阻塞。 》通风管呈“ U”形,因此我在铲斗的底部中央做了一个“ U”形切口。请注意,我没有切掉整个“ U”字,而是在中间留了一块塑料,以固定使CD旋转的伺服电机。
插入通风管后,我做了几处切割,以便将管道扩展为薄片形式。我用了几个螺丝和螺栓将薄板固定在铲斗上。剩下的空间被强大的鸭子胶带覆盖了。
我切割了CD,以使糖果在旋转时能够流动。另外,我在里面装了一个连续的伺服器来充当“摇床”。
步骤3:控制箱
控制框非常简单。我钻了几个孔,以便连接红色的大按钮,ioBridge液晶显示屏,电源插孔和RJ45插孔。
我真的很喜欢使用CAT 5电缆来使事情更加模块化。
第4步:主机箱
主程序在Arduino Duemilanove中运行。电路板初始化后,立即进行Web调用以检查当前代码,并将其显示在LCD屏幕上。
主循环正在等待物理按下红色大按钮或接收远程串行消息。随附的XBee模块与连接到ioBridgeIO-204模块串行板的另一个XBee模块进行通信。
这些是数字I/O引脚配置:
XBee模块(带有adafruit XBee套件)
Pin 13-TX
Pin 12-RX
Gnd and 5v
大圆顶按钮
引脚8-按钮NO(常开)+ GND + 100K。
5v-COM
伺服1(使用连续旋转伺服用于振动)
Pin 7 -Data
Gnd和5v
Servo 2(用于旋转CD)
引脚6-数据
Gnd和5v
X10 C17A(x10设备控制器)
引脚3-DTR线用于C17A-DB9引脚4
引脚2-RTS线用于C17A-DB9引脚7
Gnd-DB9引脚5
ioBridge 16x2串行LCD显示屏
引脚1-LCD数据引脚
Gnd和5v
它还包括一个用于控制ioBridge LCD屏幕的库。
第5步:代码生成器
我意识到,意图不佳的人可以将@Tweetfortreat帐户发为垃圾邮件(或者不太可能是某人)可能会发短信或多次拨打我的Twilio电话),最终我会在地板上堆满糖果。
我当然使用我最喜欢的Web开发工具Oracle Application Expresshttp://apex创建了REST Web服务。 .oracle.com/,以确保每次通过文本,通话或Twitter发出糖果放下请求时都生成唯一且随机的代码。
REST应用程序确实非常简单,我知道也可以使用其他任何应用程序来创建技术,例如LAMP甚至GCI或Perl应用程序。
应用程序对象:
1表(ID,CODE,SELECTED)
1数字序列以生成主键(ID )
1在插入记录之前触发,该记录将获取ID值并将随机数附加到CODE列
1公共过程以检索代码(其中selec ted = 1)
1个公共过程以一次使用一次更新代码并生成一个新代码。
所以我最后得到了这两个URL
http:/my.apexserver .com/pls/apex/getcode
http:/my.apexserver.com/pls/apex/updatecode?code = XXXX
**如果您想使用静态内容来实现相反,我建议使用http://www.random.org/clients/http/获取随机数并将其存储在文件,内存甚至arduino本身中。
步骤6 :IoBridge设置
ioBridge IO-204用作arduino和互联网之间的桥梁(du!)。我正在使用ioBridge串行板连接XBee模块。
ioBridge的主要功能有两个:
请求当前代码
从arduino进行GET调用,以使用ioBridgeSerial Web服务API从我的代码生成器服务中检索当前代码。
Arduino代码:
mySerial.println(“ [[[[get | http:/my.apexserver.com/pls/apex/getcode]]]“);)
按文本,调用或鸣叫开始放糖果的顺序。
ioBridge小部件将通过发送一个开始字符串行消息和糖果放入序列将开始。可以使用ioBridge静态窗口小部件API调用此窗口小部件。
此URL由Twilio和我的自定义Twitter警报脚本调用。
http://www.iobridge.com/widgets/static/id = [widgetID]
这些是数字I/O引脚配置:
ioBridge串行板
TX-RX XBee
RX-TX XBee
GND和5v
步骤7:Twilio设置
Twilio是用于通信应用程序的Web服务API。 Twilio非常简单。我只花了很短的时间即可启动并运行我的SMS和语音应用程序!过去,我曾尝试使用其他技术(VoiceXML甚至Google Voice)创建类似的应用程序,然后告诉我并非如此。
语音应用程序接听电话,播放介绍性声音文件并询问代码后跟#号。如果检测到代码,Twilio将对PHP文件执行“ GET”操作,该文件将从我的代码生成器Web服务中查找当前代码。如果匹配,它将调用ioBridge静态小部件URL,并且将分配糖果。
SMS应用程序具有几乎相同的PHP代码,只是这次不是查找所拨打的数字,而是查找SMS消息的正文。 br》检查生成TwiML XML的附加XML和PHP文件。
总而言之,Twilio是赢家,我对未来还有很多其他想法。
步骤8:Twitter设置
如果没有Twitter集成,没有现代互联网启用的项目是完整的,对吗? :)这是我的:这次我使用bash脚本,twurl和crontab作业检查对@tweetfortreat的答复。这个bash脚本可以在我的Sheevaplug上运行,但可以在任何linux/mac机器上运行,也可以修改为在Windows中以.bat格式运行(使用计划任务)。
Twurl几乎像curl,但适用于Twitter。我对Twitter RSS feed进行了一些丑陋的解析,以检索tweet发件人,但是它起作用了。
这是我的bash脚本
#!/bin/bash
mycode =`curl --silent http:/my.apexserver.com/pls/apex/getcode`
twitter =`twurl/1/statuses/mentions.rss | grep“ @tweetfortreat $ mycode” |切-d‘:’-f1 |尾-n 1 |剪切-d‘》’-f2`
echo $ mycode $ twitter
if [-n“ $ twitter”];然后
iobridge =`curl --silent http://www.iobridge.com/widgets/static/id= [widgetID]`
newkey =`curl --silent -d“ code = $ mycode” http :/my.apexserver.com/pls/apex/updatecode`
update =`twurl -d“状态= @ $ twitter代码$ mycode是正确的。万圣节快乐!”/1/statuses/update.xml`echo $ newkey $ iobridge
fi
Crontab仅允许您每分钟执行一次脚本,我认为目前还可以。或者,可以使用while循环代替。
这是我的crontab条目
*/1 * * * */script_location/HalloweenCandy.sh》/dev/null 2》&1
全部0条评论
快来发表一下你的评论吧 !