首页 >> 邻家Party很吵人,怎么办?Edison来帮您!
邻家Party很吵人,怎么办?Edison来帮您!
来源:  时间:2015-04-23
分享到:

当Macklemore的《Thrift Shop》在你的party上响起时,你肯定觉得碉堡了;如果是来自邻家party的说(chao)唱(nao),那就不太美妙了。当然我知道您很喜欢您的邻居,想敲门告诉他们把音乐调小些,但是天儿这么冷,即使穿着最暖和的法兰绒斑马纹睡衣(from:Thrift Shop)也无法抵挡寒冷,您还愿意出去敲门吗?为什么不制作一个短信发射器提醒吵闹的邻家呢?或许Intel Edison就是您的利器!

教程中应用node.js实现短信的发送。

那么裹好你的天鹅绒级别的(仿)貂皮大衣,准备动手制作吧。

第一步:设置 Intel Edison


在进行下面的步骤之前,您的Edison应该装好最新的操作系统并连接Wifi。如果还没有,你可以去官网进行配置。

为了制作短信接收器,现在我们需要准备一些东西。

第一个就是Twilio的node程序包。Twilio坐落于旧金山,是一家提供云通信服务的企业,它允许开发者通过API实现语音、短信功能!(万能的云服务)。您可以通过官方网站申请一个免费账号,以便完成我们的项目。打开电脑,连接 Intel Edison。输入下面的代码,并按回车键。

npm install twilio

酷!现在您就可以发短信了。现在我们需要一个程序包,以便电脑关闭后我们仍然可以用我们的App发送短信。注意,正则表达式flag的标志信息”-g” 在这段程序中是非常重要的。

npm install forever -g

好极了。现在我们需要一个文字编辑器。Intel  Edison上面有Vim和Vi,但都不太好用,所以我们安装一个简单好用的Nano。

wget <a href="http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz" rel="nofollow">http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz</a> && tar xvf nano-2.2.6.tar.gz && cd nano-2.2.6 && ./configure && make && make install

make clean  

rm -r nano*

同时我们需要新建一个文件夹,以便将我们的项目放进去。

cd

makedir mySandbox

makedir partyAlarm

然后重新启动,以便清理内存。

reboot

非常棒!接下来是编译和做电路图。

第二步:编译


在写代码前,请先确认你已经有了 Twilio 的账号,如果没有可以去官网申请免费账号。

我们使用 node.js 写代码,作为 Java 脚本语言,功能妙不可言。我们要做的第一件事情是在Nano里打开我们的代码文件。您可以通过 control+o 保存,control+x退出。

nano partyAlarm.js -$ -i

好的, 现在就可以写代码了。将下面的代码全部录入文本编辑器,保存并退出。因为Nano本身的原因,偶尔会把代码弄乱,不过不要紧,只需要在删掉 <br>,按回车键,另起一行重新开始即可

// Set up our input pin on pin 5 of the Edison Arduino Board

var mraa = require('mraa');

var buttonPin = new mraa.Gpio(5);

buttonPin.dir(mraa.DIR_IN);//Set up the stuffs for Twilio.  You will need to set up an

//account to get your SID and your token/authentication key

var twilio = require('twilio');

var client = new twilio.RestClient('<<twilio sid>>',

  '<<twilio token>>');

//Read our button

var buttonPushed = buttonPin.read();

//If our button was pressed, send our message

//You will need to fill in your own twilio number to make this work.

//Note, we are texting 1(555)123-4567 here.  This is obviously a

//wrong number.  Put your friend's in there instead.

if(buttonPushed){

client.sms.messages.create({

to:'+15551234567',

from: '<<your twilio number>>',

body: 'I can\'t hear my light saber go SWOOSH SWOOSH over your racket.'

}, function(error, message){

if(!error){

console.log("Message sent at " + message.dateCreated);

} else {

console.log("Message wasn't sent...");

}

});

}

//Hold in the program until we release the button.

while (buttonPushed){

setTimeout(emptyFunction, 200); //debounce

buttonPushed = buttonPin.read();

}

//When we use forever.js, it will need to make sure that our program lasts at

//least 1 millisecond each time it runs.  So, we wait for 4 milliseconds before

//ending our function

setTimeout(emptyFunction, 4);

//Basically, we use this for our delay.  We have to call some flavor of

//function to use the setTimeout function.

function emptyFunction(){

}

第三步:连接电路和启动程序


因为是自制作品,所以遵循一切从简的原则,我们使用简单的电路——1个按钮外加一个10K的下拉电阻。如果您不确定如何接线,您可以到谷歌上搜索“Arduino button circuit”。

现在代码写好了,按钮也接好了,我们需要做的就是执行我们的代码。Foever.js 是一个非常小巧整洁的安装包,它可以无限循环运行您的代码。我们需要手动退出node.js APP,这样 forever.js 就会重新启动代码,并一直循环下去。所以在您的 Intel Edison 上输入下面代码,然后按回车键。


forever start --minUptime 1 partyAlarm.js


哈,伙计,上面的教程已经结束。不过在此笔者还想说几句题外话,您可以用它以每秒2条短信的速度轰炸您的小伙伴。不过,请立即停止这疯狂的行为!如何做到这些呢?在 Intel Edison 上输入下面的代码,然后按回车键。


forever list

这样会显示运行的任务和任务数量( job numbers)。如过任务数为“0”,那么 forever.js 不会运行任何程序。所以我么可以用“0”终止forever.js。输入下面的代码,并按回车键。


forever stop 0


棒极了!现在一切就绪了。现在您已经拥有了一个超级武器,去轰炸您的邻居!