<aside> 💡
port.config 란?
노드박스 펌웨어에서 어떤 센서 항목(SensorKey) 가 연결되어있는지 등을 정의하는 매핑 문서
~/.ioCrops/sensors/ 에 위치
</aside>
uart2 :
{
con = "sensor6";
add = [ 0x1, 0x2 ];
key = 1;
fnd = [ 1, 0, 3, 10 ];
};
uart3 :
{
sdi0 :
{
con = "sensor5"; //soil
add = [ 0x30 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
sdix1 :
{
con = "sensor22"; //LT1T
add = [ 0x30 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
sdix2 :
{
con = "sensor15"; //PAR
add = [ 0x30 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
sdix3 :
{
con = "sensor12"; //Pyranometer
add = [ 0x30 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
};
gpio0 :
{
con = "sensor2";
cal = [ 10000, 182225, 1065058, 2599 ];
fnd = [ 1, 0, 1, 10 ];
key = 1;
use = 1;
};
gpio1 :
{
con = "sensor4";
cal = [ 5000, 462349, 2777272, 317 ];
fnd = [ 1, 0, 1, 10 ];
key = 1;
use = 1;
calvwc = [ 10, 50 ];
};
gpio2 :
{
con = "sensor23";
cal = [ 5000, 462349, 2777272, 317 ];
fnd = [ 1, 0, 1, 10 ];
key = 1;
use = 0;
};
uart0 :
{
con = "sensor18";
add = [ 0x4 ];
key = 1;
fnd = [ 1, 1, 2, 10 ];
};
uart1 :
{
con = "sensor19";
add = [ 0x2 ];
key = 1;
fnd = [ 1, 1, 3, 10 ];
};
센서 연결이 가능한 포트는 총 13개가 있음
port.config (소프트웨어상) 에 존재하는 포트도 13개 이며, 하드웨어와는 아래와 같이 매칭됨
port.config 정의 포트 종류 | 센서 통신 프로토콜 | USB 포트 종류 |
---|---|---|
gpio0 | 로드셀(HX711) 전용 포트 | |
gpio1 | 로드셀(HX711) 전용 포트 | |
gpio2 | 로드셀(HX711) 전용 포트 | |
uart0 | RS485 포트 | ttyUSB0 |
uart1 | RS485 포트 | ttyUSB1 |
uart2 | RS485 포트 | ttyUSB2 |
uart3 (sdi0, sdi1, sdi2, sdi3) | SDI12 포트 | ttyUSB3#0, ttyUSB3#1, ttyUSB3#2, ttyUSB3#3, |
uart4 | RS232 | ttyUSB4 |
uart5 | 3.3V-LVTTL | ttyUSB5 |
uart6 | 5V-TTL | ttyUSB6 |
- | - | ttyUSB7 (LTE Cat.M1) |
각 센서 제조사 별 연결 가능한 포트 종류 확인 : 하드웨어 - 호환 가능한 센서 목록
필드 | 의미 | 값 예시 | 포트 별 존재 여부 |
---|---|---|---|
con | 해당 포트에 연결되는 센서 종류 | “sensor1” | 모든 포트 필수 |
add | 해당 포트에 연결되는 센서 주소 | [ 0x1 ] | gpio 포트 제외 |
key | 센서키 뒤에 붙는 넘버링 | 1 | |
fnd | 쪽보드 디스플레이 설정 | ||
[0] LED on/off 여부 | |||
[1] 센서가 측정하는 항목 중 표시할 항목이 무엇인지 (sensor.config 상 key 의 순서) | |||
[2] 쪽보드의 3개 LED 중 몇번째에 불 들어오는지 | |||
[3] 다음 센서를 측정하기 전까지의 interval | [ 1, 0, 3, 10 ] | 선택 | |
cal | 로드셀 칼리브레이션 변수 | ||
[0] 레퍼런스 무게 (g) | |||
[1] 저울에 아무것도 달지 않았을 때 센서 신호 값 | |||
[2] 저울에 레퍼런스 무게를 달았을 때 센서 신호 값 | |||
[3] 영점 offset (g) | [ 10000, 182225, 1065058, 2599 ] | 로드셀 센서만 해당 | |
use | 해당 포트 사용 여부 (0 or 1) | 0 | gpio 포트만 해당 |
calvwc | 함수율 계산 변수 | ||
[0] 배지 함수율이 0% 일 때 배지무게 (kg) | |||
[1] 배지 함수율이 100% 일 때 배지무게 (kg) | [ 1, 30 ] | 배지무게 로드셀 센서만 해당 | |
kconstant | EC 센서 k 상수 | 10 | EC 센서만 해당 |
port.config
파일 형식을 다음과 같이 변경uart3 :
{
sdi0 :
{
con = "sensor5";
add = [ 0x30 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
sdi1 :
{
con = "sensor5";
add = [ 0x31 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
sdi2 :
{
con = "sensor22";
add = [ 0x32 ];
key = 1;
cal = 1;
fnd = [ 1, 3, 2, 10 ];
};
};