[아두이노#383] (릴레이제어#9) 노드레드(node-red)와 IoT스케쥴러1부(스케쥴링 개념만들기/UI-TABLE다뤄보기/간단한UI)(녹칸다/포로리야공대가자)
프로그래밍/N채널릴레이와 자동화매크로 2021. 11. 22. 23:39
회로도는 없음!(아직 보드랑 연계는 안함)
(릴레이제어#9) 노드레드(node-red)와 IoT스케쥴러1부(스케쥴링 개념만들기/UI-TABLE다뤄보기/간단한UI)(녹칸다/포로리야공대가자)
녹칸다의 N채널 릴레이를 제어하기 위한 시리즈이다!
이번편 부터는 1~8편에서 진행한 내용에서 한단계 더 진화된 내용을 다루어 보도록 한다!
1~8편에서는 아두이노나 사물인터넷보드(esp8266/wemos d1r1)가 스스로 일정을 관리하면서 N채널 릴레이를 제어하고 외부에서 일정을 입력하거나 변경해주는 형태로 구성을 했었다!
그러나 9편부터는 IoT보드로만 구성해서 완벽하게 외부에서 일정을 관리하고 보드는 명령을 받아서 N채널 릴레이를 개별적으로 제어하는 것을 목표로 한다!
그러기 위해서는 유저로 부터 입력을 받거나 현재 상황을 출력하기 위한 유저인터페이스(UI)가 필요하고 스케쥴 관리를 할 수 있는 시스템이 필요한데 한큐에 해결할 수 있는 노드레드(node-red)라는 툴을 활용하다록 한다!
그러나 노드레드로 원하는 결과물을 만드는 것은 그렇게 호락호락하지 않다! (호락호락 하지 않은것을 해결하기 위해서 녹칸다가 일부 해법을 마련해둔 채로 시작한다)
너무 많은 내용을 한편에 담기 어려울 것 같아서 전체 내용을 4부로 쪼개어서 진행하도록 하는데 정확하게 분리하기 어려운 내용들이라 개념적으로 쪼개었다 하더라도 시간을 보면서 탄력적으로 조정을 하도록 한다!(오늘 내용을 내일 하거나, 내일 내용을 오늘 할 수도있음)
그리고 IoT스케쥴러는 스마트폰 화면에서 유저의 입력을 받고 지정된 스케쥴에 해당하는 시간이 도래하면 지정된 IoT보드에게 작동명령이 가도록 해야한다!
이번편에서는 노드레드(node-red)로 녹칸다가 사전에 테스트해본 스케쥴러의 결과물을 한번 살펴보고 최종 결과물이 저런 느낌이겠구나를 느껴보도록한다!
그리고 처음부터 정밀하게 다시 구현을 하되 구독자 혹은 시청자분들이 필요한 내용을 반영할 수 있으면 반영해나가면서 구현하도록 한다!
(아래와 같은 내용을 전반적으로 해결해야할듯 하다!)
-시간개념 만들기
-간단한 ui로 구현
-디바이스번호
-모든과정은 전역변수를 베이스로 한다
-오늘 요일을 기준으로 하루가 지나가면 전체 레코드를 초기화한다
-노드레드가 시작된 시점으로 데이터가 절때 실행될 수 없는 조건들이 있을때 처리방안(예를들면 현재 오후 2시인데 입력된 데이터가 오전9시 작동이면 오늘 중으로는 절때 실행될리 없다)
-절때 실행될리없는 항목도 선택했을때 작동할 수 있는 명령을 publish한다(매뉴얼 작동)
-일정한 시간간격으로 전체 레코드를 조회하면서 해당되는 레코드가 있으면 출력하고 MQTT로 publish할 것
-점검하는 요일에 오늘요일이 포함되지 않을 경우 체크하지 않는다
-테이블에 데이터를 밀어넣을때는 row index가 필요한데 효율적으로 발급 및 소멸하는 전략이 필요하다