[아두이노#384] (릴레이제어#10) 노드레드(node-red)와 IoT스케쥴러2부(UI_TABLE관련된 문제점 해결해보기)(녹칸다/포로리야공대가자)
프로그래밍/N채널릴레이와 자동화매크로 2021. 11. 23. 23:08
회로도는 별도로 필요없음!
(릴레이제어#10) 노드레드(node-red)와 IoT스케쥴러2부(UI_TABLE관련된 문제점 해결해보기)(녹칸다/포로리야공대가자)
녹칸다의 N채널 릴레이를 제어하기 위한 시리즈이다!
이번편 부터는 1~8편에서 진행한 내용에서 한단계 더 진화된 내용을 다루어 보도록 한다!
1~8편에서는 아두이노나 사물인터넷보드(esp8266/wemos d1r1)가 스스로 일정을 관리하면서 N채널 릴레이를 제어하고 외부에서 일정을 입력하거나 변경해주는 형태로 구성을 했었다!
그러나 9편부터는 IoT보드로만 구성해서 완벽하게 외부에서 일정을 관리하고 보드는 명령을 받아서 N채널 릴레이를 개별적으로 제어하는 것을 목표로 한다!
그러기 위해서는 유저로 부터 입력을 받거나 현재 상황을 출력하기 위한 유저인터페이스(UI)가 필요하고 스케쥴 관리를 할 수 있는 시스템이 필요한데 한큐에 해결할 수 있는 노드레드(node-red)라는 툴을 활용하다록 한다!
그러나 노드레드로 원하는 결과물을 만드는 것은 그렇게 호락호락하지 않다! (호락호락 하지 않은것을 해결하기 위해서 녹칸다가 일부 해법을 마련해둔 채로 시작한다)
너무 많은 내용을 한편에 담기 어려울 것 같아서 전체 내용을 4부로 쪼개어서 진행하도록 하는데 정확하게 분리하기 어려운 내용들이라 개념적으로 쪼개었다 하더라도 시간을 보면서 탄력적으로 조정을 하도록 한다!(오늘 내용을 내일 하거나, 내일 내용을 오늘 할 수도있음)
그리고 IoT스케쥴러는 스마트폰 화면에서 유저의 입력을 받고 지정된 스케쥴에 해당하는 시간이 도래하면 지정된 IoT보드에게 작동명령이 가도록 해야한다!
이번편에서는 노드레드(node-red)에서 UI-TABLE에서 발생하는 문제에 대해서 중점적으로 해결해보도록 한다!
노드레드(node-red)가 담당하는 전체 스케쥴을 사람눈에 가장 좋게 보여줄 수 있는 UI가 바로 table이다!
그러나 노드레드에서 table을 활용할때는 의도가 되었든 되지 않았든 약간 이상하게?동작하는 경향이 있다!
미리 알려진 문제에 대해서 아래와 같은 내용을 해결해보도록 한다!
-데이터 넣고 빼기
-새로고침할때 table안에 값이 초기화되는것 해결방안
-레코드가 삭제가능한 형태여야한다
-디바이스아이디로 그룹핑
(오늘 해결한 내용!)
1.테이블에 데이터를 insert했을때 새로고침하거나 탭간이 이동이 있을때 데이터가 소멸한다!
2.디바이스가 여러개가있을때 어떻게하면 같은 디바이스끼리 뭉쳐서 시각적으로 보여줄 수 있을것인가?
3.테이블에서 필요하지 않은 데이터를 삭제하려면 어떻게 해야하겠는가?
4.원래 해야할 스케쥴인데 유저가 강제적으로 하지 않도록 하려면 어떻게 해야하겠는가?
5.사물인터넷보드와 가벼운 연동테스트