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>
Reference
이 문제에 관하여(M5 Stack+UIFlow 및 Node-RID를 사용하여 BLE UART를 통해 온도 및 습도 값 전송 및 차트화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/youtoy/items/55b22ec92449bf29d417텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)