관련 백로그

[1] 복잡 센서 노드 MQTT Subscribe 파이프라인 개발

사용자 시나리오

센서 연결 항목 및 계산 변수 수정

[하드웨어에서]

  1. 노드박스의 MPU에 직접 접속하여 ~/.ioCrops/sensors/ 디렉토리의 port.config 파일을 수정
  2. port.config 파일의 형식과 센서 별 포트의 종류는 다음과 같음
uart1 :
{
con="sensor7";
add=[0x01];
key=2;
fnd = [1, 2, 3, 10]; 
kconstant = 10;
};

[어드민에서]

  1. 어드민 웹 로그인
  2. 센서 연결 항목 수정을 진행할 특정 노드(아이오크롭스 제조사)를 선택
  3. 연결 항목 수정 및 기타 세부 정보 기입하여 하드웨어로 해당 정보 전송
    1. 일단은 port.config 파일을 그대로 입력할 수 있는 창
  4. 노드에 센서키 맞게 연결 (원래도 있는 과정)
  5. 해당 센서키의 데이터가 잘 들어오는지 확인

[아이오팜에서]

  1. 농가가 아이오팜 웹/앱 로그인
  2. 농가가 계산함수율 변수 변경
  3. 하드웨어에 적용

센서 프로그램 재시동 및 웜부팅

[하드웨어에서]

  1. 재시동 : 노드박스의 MPU에 직접 접속하여 데몬 프로세스(백그라운드) 로 실행되고 있는 프로그램을 재시작

    $ sudo systemctl restart sensor #센서 로깅 앱
    $ sudo systemctl restart publisher #클라우드 전송 앱
    $ sudo systemctl restart sensor-publisher #통합 앱
    
  2. 웜부팅 : 노드박스의 MPU에 직접 접속하여 os 재부팅

[어드민에서]

  1. 어드민 웹 로그인

  2. 재시동 또는 웜부팅을 진행할 특정 노드(아이오크롭스 제조사)를 선택

  3. 재시동의 경우, 재시동할 프로그램 선택하여 하드웨어에 명령 전송

  4. 웜부팅의 경우, 하드웨어에 명령 전송

  5. 재시동 또는 웜부팅 이후 에러 없이 동작하는지 확인

센서 에러 로그 확인

[하드웨어에서]

  1. 프로그램을 포그라운드 실행할 시에는 에러 로그 실시간으로 확인 가능
  2. 백그라운드 실행 시에는 로그 파일에서 확인

[어드민에서]

  1. 어드민 웹 로그인
  2. 에러 로그를 볼 수 있는 페이지에서 노드 별로 필터를 걸어서 확인 → 에러 로그를 보는게 꼭 필요할까? 일단은 그냥 DB 에만 쌓기
    1. 그러나 어드민의 최근 데이터 갱신 시간 처럼 노드 리스트에 에러 여부 정도는 간단히 표시되어있으면 좋겠음 (정상 / 에러)
      1. 에러 떠있는건 상세로 들어가서 봐도 되고
  3. 크리티컬한 에러 발생 시 슬랙 알람
    1. 크리티컬한 에러의 종류 정의 필요
      1. 모뎀이 수신이 원활하지 않을 때, 신호가 약할때도
      2. 데이터가 잘 안 보내졌을 때, 측정은 되고 있는데, 데이터가 잘 안 보내졌을 때
      3. 센서 포트를 열어놓았는데, 실제로 센서가 연결이 안되어있을 때 → 근데 이건 쓸데없는 알람이 많이 울릴 것 같긴함

펌웨어 업데이트