Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8902

Node.jsのコードを定期実行する(crontabを利用)

$
0
0

これまでのおさらい

今回のお話

  • node.jsをcrontabで定期実行する。

前回書いたコードは、「BME280センサーの値を読み取り、Google スプレッドシートに書き込む」というものでした。
これは一回だけ実行する作りになっています。
このままでは、毎回手動で実行する必要があります。

// デバイスに接続constObniz=require("obniz");// デバイスに接続varobniz=newObniz("****-****");//Obnizの番号を指定varwebclient=require("request");obniz.onconnect=asyncfunction(){constifttt_event="Record";//イベント名constifttt_secret_key="あなたのキーを書く";//キーconstIFTTT_URL_GoogleSheets='https://maker.ifttt.com/trigger/'+ifttt_event+'/with/key/'+ifttt_secret_key;constbme280=obniz.wired("BME280",{vio:0,vcore:1,gnd:2,csb:3,sdi:4,sck:5,sdo:6});awaitbme280.applyCalibration();awaitbme280.setIIRStrength(1);val=awaitbme280.getAllWait();//obniz画面表示obniz.display.clear();obniz.display.print("temperature:"+val.temperature.toFixed(1))//気温obniz.display.print("humidity:"+val.humidity.toFixed(1))//湿度obniz.display.print("pressure:"+val.pressure.toFixed(1))//気圧//送信データ作成constp1=val.temperature.toFixed(1);constp2=val.humidity.toFixed(1);constp3=val.pressure.toFixed(1);//IFTTTリクエストwebclient.post({url:IFTTT_URL_GoogleSheets,headers:{"content-type":"application/json"},body:JSON.stringify({'value1':p1,'value2':p2,'value3':p3})},function(error,response,body){console.log(body);});obniz.close();//Obniz切断}

Node.jsのコードを定期実行する方法

今回は、crontabで試してみます。

crontabの設定

crontabでは、コマンドのフルパスが必要です。

whichコマンドで、nodeコマンドのフルパスを調べます。
/home/pi/.nodebrew/current/bin/nodeの部分を使います。
~/myapp/BME280.jsの部分が実行するファイルです。

pi@raspberrypi:~/myapp $which node
/home/pi/.nodebrew/current/bin/node

crontabは、-eオプションが編集です。

pi@raspberrypi:~/myapp $crontab -e

先程調べたnodeのフルパスを指定し、実行するファイルを指定します。
以下の設定を登録しました。
*/10の部分が、10分周期で実行の意味となります。
参考:crontabの書き方

*/10 * * * * /home/pi/.nodebrew/current/bin/node ~/myapp/BME280.js

-lオプションがリスト表示です。

pi@raspberrypi:~/myapp $crontab -l(略)

*/10 * * * * /home/pi/.nodebrew/current/bin/node ~/myapp/BME280.js

実行結果

Google スプレッドシートのデータを見てみます。

crontabで実行されたコードによって、10分周期に気温、湿度、気圧が記録されています。

10minits.PNG


Viewing all articles
Browse latest Browse all 8902

Trending Articles