DAS Node 구조 설계에 고려해야할 점

> Master는 현재 관리 중인 모든 Node 로부터 통신 정상 수신을 받았는지 여부 체크해야 함

  • Master의 노드 테이블에 100개 노드 ID가 등록되었다면, Sub-Master들은 Slave로부터 peer등록 여부를 100개 모두 받아서 Master에 보고해야 함.
  • 1개 Slave에 N개의 Sub-Master를 Peer등록할 필요가 없으므로 이미 Peer가 등록됐다면 Sub-Master로부터 받는 추가적인 Peer 등록 요청 브로드캐스팅 통신을 무시하도록 로직 필요함(Peer == True : END / Peer == False : Update peer)
  • 클라이언트가 작업 요청을 주면, Master↔Sub-Master↔Slave 점검 절차를 한 사이클 돌게 설계(중간에 노드가 초기화되서 등록된 Peer가 사라진다면? => 점검절차를 매 Job data 송신 때마다 수행? 이런식의 대응책 고민 필요)
  • N개의 브로드캐스팅 및 peer 유니캐스팅이 동시다발적일 경우 통신에 장애가 생기는지 실제로 해봐야 함

> 큐방식으로 한번에 몇개 상품까지 분류할 것인지와 상품들이 분류가되면 추가 큐를 넣어줄 수 있게 설계해야 함

> sub-Master는 ESP-NOW + WIFI 둘다 사용할 수 있어야 함(Flask 서버와 통신은 WIFI, Slave들과는 ESP-NOW)

> Slave Node Status 초기화(작업 마감)

 

기록

> ESP-NOW 브로드캐스팅으로 10m 정도 통신이 됨(사이에 벽은 3개 정도) . 15m까진 될 것 같음

 

Main Server, DAS Node 설계

■ Master : Flask Server

  • Data
    • Order data
      • Order Number
      • Item
      • Item Qty
      • Order SEQ
      • ETC
    • Node data
      • Node ID
      • Node Attribute(Sub-Master/Slave)
      • Location
      • Slave Node Routing Info
    • Func
      • Managing Node Data
      • Receiving order data(From client)
      • Sending Job Queue(To Sub-Master) <= api 호출 or Mqtt 서버 발행 고민 중
      • Receiving Job Status(From Sub-Master)
      • Printing Label

  Sub-Master : ESP32 Node

  • Func
    • Receiving job Queue(From Master)
    • Broadcasting Sub-Master data(MAC addr)
    • Receiving  Peer Status(From Slave)
    • Broadcasting  job data(To Slave)
    • Receiving  job status(From Slave)

  Slave : ESP Node(8 Digits LED, Button)

  • Func
    • Receiving Sub-Master MAC addr
    • Update Sub-Master MAC addr 
    • Receiving job data(From Sub-Master)
    • Update job status
    • Unicasting job status(To Sub-Master)

 

+ Recent posts