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

Node.jsからobnizでBME280(気温、湿度、気圧)センサーを動かす

$
0
0

これまでのおさらい

今回のお話

  • Raspberry Piで、Node.jsからobnizを利用する。
  • obnizでBME280センサーを動かす。
  • BME280センサーで気温、湿度、気圧のデータを取得したら、IFTTTを使って、Google スプレッドシートにデータを書き込む。

順番にやっていきます。

Raspberry Piで、Node.jsからobnizを利用する

参考Obnizのドキュメント

obnizをインストール

npm install obniz

Node.jsからObnizを使うには

constObniz=require("obniz");

BME280センサーを動かす

コードは、このページを参考にしました。
https://karaage.hatenadiary.jp/entry/2019/10/23/073000

10KΩの抵抗を2つ入れています。

IMG_4696.jpg

Obnizと接続します。

IMG_4697.jpg

Obnizのディスプレイにデータを表示してみます。
Obnizの番号はマスクしています。

constObniz=require("obniz");// デバイスに接続varobniz=newObniz("****-****");//Obnizの番号を指定obniz.onconnect=asyncfunction(){varbme280=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))//気圧}

これでObnizでBME280センサーのデータ取得ができました。
Obnizの画面に、気温、湿度、気圧が表示されていると思います。

BME280センサーで気温、湿度、気圧のデータを取得したら、IFTTTを使って、Google スプレッドシートにデータを書き込む。

IFTTT経由でGoogle スプレッドシートにデータを書き込みます。

コードを追加しています。
1回データを書き込んだら、Obnizの接続を切っています。

// デバイスに接続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切断}

実行してみます。

pi@raspberrypi:~/myapp $node BME280.js
Congratulations! You've fired the Record event

Congratulations! の行が表示されたら、成功です。

Google スプレッドシートを確認すると、取得したデータが記録されています。

今回はここまで。


Viewing all articles
Browse latest Browse all 9021

Trending Articles