반응형

https://youtu.be/-_RqfS9E8as

(3부)THINGSPEAK에 LoRa모듈(E220-900T30D)의 데이터를 저장하는 방법!(클라우드DB)
이번편은 LoRa로 수신받은 데이터를 클라우드 데이터베이스인 thingspeak에 저장하는 것을 목표로 해보자!
LoRa모듈은 최근 녹칸다가 즐겨 사용하고 있는 E220-900T30D를 활용해보도록 한다!

LoRa데이터를 수집하는 쪽을 게이트웨이라고 부르고 전송하는 쪽을 노드라고 이름을 붙혀보자!
게이트웨이쪽 보드가 인터넷에 연결된다면 수집한 정보를 띵스피크에 저장을 할 수 있을 것이다!

게이트웨이 1대와 노드 1대로 개념을 잡아본다면 그다지 큰 문제가 없을 것이다!
하지만 노드가 2대 이상이 되면 약간의 문제가 생긴다!

일단 우리가 활용하게 될 database인 thingspeak는 최소 15초 간격으로 데이터를 업로드 해야한다!
게이트웨이가 노드의 값을 수신한다음 데이터베이스로 업로드한다고 하면 고민을 해보아야한다!

노드1번과 노드2번이 게이트웨이쪽으로 센서값을 전송을 할텐데 불행하게도 업로드 간격이 비슷하다고 해보자!
그럼 게이트웨이는 노드1번의 데이터는 업로드해도 15초 쿨타임동안 노드2번의 데이터는 업로드할수 없게된다!

이런것을 어떻게 하면 현명하게 구렁이 담넘어 가듯이 비껴갈 수 있을지 알아보도록 하자!
(물론 이것은 녹칸다 생각이므로 최선의 방법이라는 것은 아님)

 

(실제로한거)

1.LoRa노드에서 업로드한 가상의 온도와 습도값을 LoRa게이트웨이가 수신한다음 thingspeak 클라우드 데이터베이스에 업로드하시오!

529-1-1(게이트웨이).txt
0.01MB
529-1-2(노드).txt
0.01MB

2.(1)예제에서 가상의 센서가달린 LoRa노드가 1개 더 생겼다면 게이트웨이가 어떻게 바뀌어야겠는가? 게이트웨이는 항상 16초에한번씩 thingspeak로 데이터를 업로드한다! 그안에 2개의 노드데이터가 수집이 이루어진다면 수집된 정보를 업로드하고 아니라면 0을 업로드하겠다!

529-2-1(게이트웨이).txt
0.01MB
529-2-2(노드1).txt
0.01MB
529-2-3(노드2).txt
0.01MB

3.저장소(채널)를 노드마다 1개씩 만들어서 업로드하는게 더 낫지 않을까?
//3개의 노드로부터 나오는 데이터를 승객이라고 생각하자!
//각 노드에서 나오는 승객은 목적지가 다 다르다!
//버스 승강장에서 어떤 승객이 기다리느냐에 따라서 목적지로 향하는 버스를 배정한다!
//3개의 노드에서 나온 승객이 모두 승강장에 기다리고 있다면 온 순서대로 15초마다 한번씩 버스를 배정해야한다!(승객 큐를 만들어야겠다)
LoRa노드가 데이터를 업로드하는 간격= t1
LoRa게이트웨이가 thingspeak로 업로드하는 시간 = t2
Lora노드의 갯수를 = N
t2 > t2*N 이어야 한다

529-3-1(게이트웨이).txt
0.01MB
529-3-2(노드1).txt
0.01MB
529-3-3(노드2).txt
0.01MB

4.thingspeak채널별로 15초업로드 제약조건이 생기는거라면 채널이 다르면 상관없지 않을까?(이게 정답)

529-4-1(게이트웨이).txt
0.01MB
529-4-2(노드1).txt
0.01MB
529-4-3(노드2).txt
0.01MB

5.노드레드(node-red)에서 게이트웨이가 업로드한 각 노드별 데이터를 시각화하시오!

529-5(노드레드).txt
0.00MB

반응형
Posted by 덕력킹
,