2025年3月24日月曜日

Johnny-five-uno:: wifi only / firebase-rtdb(old v?)でledonoff成功


https://hollywis.hatenablog.com/entry/2016/03/25/191147 

:: IoT的にJohnny-fiveでLED制御する! 非遠隔版

----------------遠隔版------------------------------------------------------

https://zenn.dev/protoout/articles/28-firebase-realtimedb-nodejs 

をもとにしているがref.onceでは一回処理になるのでref.onに変更している

 var admin = require("firebase-admin");

const { Board, Led } = require("johnny-five");

const board = new Board();

board.on("ready", () => { // この枠内でのみled制御可能

  const led = new Led(12);

  // よって以下のfirebase要素を組み込む

  // 1. サービスアカウント鍵を生成しserviceAccountKey.jsonで

  //  リネームしてfirebaseフォルダ直下に配置

  var serviceAccount = require("./serviceAccountKey.json");

  admin.initializeApp({

    credential: admin.credential.cert(serviceAccount),

  // 2. Realtime DatabaseのページでdatabaseURLを確認して反映

    databaseURL: "https://my-nodejs-e9414-default-rtdb.firebaseio.com"

  });

  var db = admin.database();

  var refSensor = db.ref("protoout/studio/sensor");

  refSensor.on('value', function(snapshot){  // このonでデータ変更をリアルタイムに反映

console.log('value', snapshot.val());

//console.log(typeof snapshot.child("humidity").val());//return number

if (snapshot.child("humidity").val()>=50)

  { 

  led.on(); 

  }

else 

  {

  led.off();

          }

 });

});

0 件のコメント:

コメントを投稿