2025年3月20日木曜日

Nodejs :: onoff-module / firebase-rtdb / mqtt.js

https://qiita.com/ekzemplaro/items/3a982b259db4b1cf19ad :: onoff lib for raspi

------------------------------------------------------------------------------------------

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

リアルタイムサーバ的にうごかすに以下のようにする

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

// 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(dataSnapshot) {

    console.log('refSensor');

    console.log(dataSnapshot.toJSON());

    console.log(dataSnapshot.child("humidity").val());   

  });

ーーーーーーーーーーmqtt.jsーーーーーーーーーーーーーーーーーー

https://qiita.com/emqx_japan/items/d1b9708d7f7f6a2d7284 にあるコードで成功

mqttxでtopicsを/nodejs/mqttとして"on"などを送れる

const mqtt = require('mqtt') const host = 'broker.emqx.io' const port = '1883' const clientId = `mqtt_${Math.random().toString(16).slice(3)}` const connectUrl = `mqtt://${host}:${port}` const client = mqtt.connect(connectUrl, { clientId, clean: true, connectTimeout: 4000, username: 'emqx', password: 'public', reconnectPeriod: 1000, }) const topic = '/nodejs/mqtt' client.on('connect', () => { console.log('Connected') client.subscribe([topic], () => { console.log(`Subscribe to topic '${topic}'`) client.publish(topic, 'nodejs mqtt test', { qos: 0, retain: false }, (error) => { if (error) { console.error(error) } }) }) })

client.on('message', (topic, payload) => { console.log('Received Message:', topic, payload.toString()) })

0 件のコメント:

コメントを投稿