M5 Stack+UIFlow 및 Node-RID를 사용하여 BLE UART를 통해 온도 및 습도 값 전송 및 차트화

이번 내용은 제목·아래 영상과 같다.
ENV II 유닛이 있는 M5 Stack Core2에서 BLE UART로 온도와 습도 값을 출력하고 Node-RID로 받아 대시보드로 도표화할 때의 모습입니다.#M5Stack #UIFlow #nodered pic.twitter.com/AQ5zamZ2Yr — you (@youtoy) May 23, 2021

M5 Stack Core2에 설치온도와 습도 등을 제거하는 센서(ENV II Unit)하고 BLE UART로 센서가 얻은 값을 전송하여 차트로 작성br/>
BLE UART에서 보낸 온도와 습도 값은 Mac 동작의 Node-RID로 BLE를 처리할 수 있는 노드와 계기판을 사용하여 값을 취득하고 도표화합니다p>

아래에서 이 점을 실현하는 요점을 제시하였습니다.


사용된 장치


이번에 사용한 장치는 아래 사진의 M5 Stack Core2와 센서(ENV II Unit), Node-RID를 실행하는 Mac입니다.br/>


사용한 프로그램 프로세스의 내용


이번에 사용한 UIFlow 블록의 프로그램과 노드 RED의 절차를 보여 줍니다p>

UIFlow 블록 프로그램



모듈 프로그램 개요


먼저 UIFlow에서 다음 두 가지 절차를 진행하여 UIFlow로 블록을 만드는 프로그램을 사용하기 전의 준비로 한다p>

  • 화면 레이블 2개(온습도 값 표시 및 확인 레이블) 구성
  • ENV II Unit 추가

그리고 위에서 보여준 블록을 만드는 프로그램입니다.대략적으로 처리한 내용은 다음과 같다.


  • A 버튼을 누르면 500mm 간격으로 정기적으로 처리
  • 정기적으로 집행하는 처리는 다음과 같다.
    • 센서에서 온도 습도 값 획득
    • 온도 습도
    • BLE UART를 통해 온도와 습도 값을 JSON으로 전송
      • 온도와 습도에 대응하는 관건은'd1'과'd2'
      • 이다


  • C 단추를 누르면 상기 정기적인 처리를 중지합니다


또한, UIFlow에서 BLE UART를 사용할 수 있는 장치는 글을 작성할 때 "M5 Stack Core2 및 M5 Stack Fire"로만 바뀝니다.p>

노드 RED 프로세스



프로세스 개요


Node-RID가 프로세스를 만들기 전에 아래 글에 적힌 "node-red-contrib-generic-ble"노드를 추가하십시오br/>
● Mac의 Node-RID에서 BLE 제어too(읽기, Notify 수신 값으로) - Qita   https://qiita.com/youtoy/items/3db10e1042a5f2af27a0

또한 차트 섹션에서는 대시보드의 Chart를 사용합니다.


장치에 대한 연결/알림 수신


M5 Stack Core2에 연결하거나 BLE UART를 통해 전송된 값을 수락하려면 위에도 쓰여있는 과거 기사.p>

받은 값을 객체로 변환


M5 Stack Core2에서 받은 데이터 중 JSON의 부분은 바이너리입니다.여기서 온도와 습도 값을 추출한 후 기능 노드와 JSON 노드를 사용하여 대상으로 변환합니다.


기능 노드에서 다음 작업을 수행합니다.br/>msg.payload에서 온도와 습도 데이터를 추출한 부분toString()을 문자열로 변환p>

msg.payload = msg.payload.characteristics["6e400003b5a3f393e0a9e50e24dcca9e"].toString();
return msg;

여기 나오는 6e400003b5a3f393e0a9e50e24dcca9e 문자열은 과거에 쓴 다음 글에도 설명되어 있는데, M5 Stack BLE의 Notify와 관련된 UUID입니다.br/>
● UIFlow의 BLE UART를 사용한 #M5 StackCore2(#M5 Stack) 브라우저에 데이터 전송 및 그래프화 - Qita   https://qiita.com/youtoy/items/1bf6e9390b5dc5d2ba51


위에서 처리한 문자열은 JSON 노드에서 대상으로 변환됩니다(※ 노드의 속성은 아래와 같습니다).


온도와 습도 값을 추출하여 도표화하다


JSON 노드에서 출력할 때 디버깅 노드에서 출력하는 것은 다음과 같습니다br/>
키가 d1이면 온도, d2면 습도br/>


이를 추출msg.payload하면 다음과 같다(※ 다음은 온도의 예)


이후 추출한 값을Chart 노드에 입력하고 계기판으로 도표로 표시합니다br/>
이번에 사용한 설정치와는 다른 부분이 있지만, 대시보드의Chart 노드를 사용하는 절차가 적힌 글이 있으니 절차에 관해서는 여기 참고하시기 바랍니다.br/>
●Node-RID(enebular)에서 대시보드, 실시간 통신을 활용한 [handon 자료] - Qita

   https://qiita.com/youtoy/items/61e4a6c9061d68f09e3b


대시보드에서 출력된 차트


계기판은 온도와 습도를 각각 도표화한 후 다음과 같다.br/>
수치에 큰 변동이 있는 것처럼 보이지만 소수점 이하의 수치는 약간 달라진다(자기 집에서 500밀리초마다 한 번씩 있기 때문에 큰 변동은 없다)br/>


총결산


이번, 상기 절차에 따라 시각 프로그램을 사용하여 센서의 온도와 습도, 설비 간의 발송, 도표화를 순조롭게 실현하였다.p>

좋은 웹페이지 즐겨찾기