여러센서를 데이터 값을 받을때는 어떻게 하나요?
예를들어 온도센서를 여러군데 설치했습니다. mosquitto에서 topic을 (tmp1, tmp2, tmp3, tmp4, tmp5 ....) 이런식으로 설정되어 있고 각각의 topic에 각각의 온도정보를 담고 있습니다.
그렇다면 Node js에서 다음 부분을 어떤식으로 수정을해서 mongodb에 저장을 해야하나요?
(예제부분을 가져온 것입니다.)
//MQTT서버 접속 및 DHT11 데이터 읽기.
var mqtt = require("mqtt");
var client =mqtt.connect("mqtt://192.168.0.10");
client.on("connect", function(){
client.subscribe("dht11");
});
client.on("message", function(topic, message){
var obj=JSON.parse(message);
obj.created_at=new Date();
console.log(obj);
//mongodb에 DHT11 정보를 저장하는 부분.
var dht11=dbobj.collection("dht11");
dht11.save(obj, function(err,result){
if(err) console.log(err);
else console.log(JSON.stringify(result));
});
});
Answer 3
0
와 감사합니다~~~~~~~~~
이래저래 시도해보다가 혹시나 Q&A 찾아봤는데, 정확하게 해결 되었습니다.
센서 여러개 두고, 각 각 DB저장 및 표출이 잘 되네요 감사합니ㅏㄷ!
0
감사합니다. 내용을 응용해서 IOT 구축을 해보겠습니다. ^^
아! 그리고 한가지 더 궁금한 점이 있는데요. 구독자 수 만큼 모스키토를 실행해야하는데요. 자동으로 모스키토서버 및 구독자를 실행하는 방법이 없을까요? 만약 온도센서가 50개 가량 된다면 1개의 모스키토 서버 실행과 50개의 구독자를 만들어야하는데 명령프롬프트창에서 실행하는 것이 힘든 것 같아서요 ^^ 그리고 만약에 창이 실수로 꺼지게 된다면 또 50개의 구독자를 실행시켜야하는데 너무 번거로운 작업이 될 것 같습니다.
0
네 아래 처럼 topic을 (tmp1, tmp2, tmp3, tmp4, tmp5 ....) 수신자로 등록하시고...
client.on('connect', function () {
client.subscribe('tmp1')
client.subscribe('tmp2')
client.subscribe('tmp3')
~
~
})
그리고 topic (tmp1, tmp2, tmp3, tmp4, tmp5) 이름으로 if else문을 만들어서 수신한 후
mongoDB에 각각 저장하시면 됩니다. mongoDB는 센서별로 만드셔도 될듯하고 하나의 collection에 센서 구분
필드를 만들어서 하나에 입력해도 될듯한데 그것은 알아서 하시면 되구요~~
client.on('message', function (topic, message) {
if (topic == 'tmp1') {
var tmp1Logs = dbObj.collection('tmp1');
var json = JSON.parse(message.toString());
json.device = 'arduino';
json.sensor = 'tmp1';
json.created_at = new Date();
tmp1Logs.save(json, function(err, result) {});
} else if (topic == 'tmp2') {
var tmp2Logs = dbObj.collection('tmp2');
var json = JSON.parse(message.toString());
json.device = 'arduino';
json.sensor = 'tmp2';
json.created_at = new Date();
tmp2Logs.save(json, function(err, result) {});
} 계속 if else ~
})
원하시는 답변이 되셨으면 좋겠습니다. 그럼 성공을 기대합니다.^^
연속으로 질문달아 죄송하지만 궁금한게 있습니다 ㅠㅠ
0
230
1
브로커와 아두이노의 관계에 대해 질문합니다.
0
289
1
MQTT Broker Connercted! 가 뜨지 않습니다ㅠㅠ
0
317
1
정보 받아오기
0
288
1
데이터 받아오기
0
318
1
wifi연결강의중 cmd를통해mosquitto-v를실행시키는과정에서 각소켓주소는하나만사용할수있다고뜹니다ㅠㅠ.왜그런거죠?ㅠㅠ
0
1526
2
node.js 콘솔 관련 오류 (급해요!)
0
365
2
dht 11 센서 데이터 전송에 대한 질문이요!!
0
185
1
다른 wifi 모듈
0
214
1
npm insatll을 눌러도 자꾸 아래 메시지가 떠요 ㅠ cmd로도 했는데 똑같아요..
0
417
3
Rest Full service 통신에서 에러
0
318
2
안드로이드 어플 실행 오류
0
416
1
안드로이드 스튜디오 실행
0
681
6
모스키도 cmd에서 서버구동할 때 실행에서 오류가 나요
0
438
1
방화벽을 꺼도 package.json에 입력하면 node_modules에 들어가지 않스니다 ㅠㅠ
0
362
1
package.josn 다운로드 되지 않습니다 ㅠ,
0
277
2
안드로이드 연결
0
262
1
시리얼 모니터에 MQTT Broker가 연결된다고 뜨지 않습니다,,,
0
448
3
andriod studiot실행
0
165
1
Node.js express project 생성시 package.json 오류 문의
0
388
3
잘되다가 갑자기 서버에 연결 못한다고 하네요
0
190
0
Rest full serveice에서 에러가 발생됩니다
0
174
1
LED불이 안들어와요
0
689
7
mqtt 연결 후 재시작이 됩니다
0
185
1

