Advanced Integration
중급/고급 사용자를 위한 연동 가이드
LoRa, RS-485 등 산업용 통신 프로토콜을 사용하는 센서를 FarmSense 게이트웨이에 연결하거나
기존에 사용 중인 타사 센서 데이터를 API로 전송하는 방법을 안내합니다.
LoRaWAN 게이트웨이 설정 (KR920)
FarmSense는 KR920-923MHz 주파수 대역을 표준으로 사용합니다. 자체 LoRa 게이트웨이를 구축하려면 ttn-mapper 설정을 아래와 같이 변경해야 합니다.
global_conf.jsonjson
{
"SX1301_conf": {
"lorawan_public": true,
"clksrc": 1,
"radio_0": {
"enable": true,
"type": "SX1257",
"freq": 922100000, // Korea Standard Channel 1
"rssi_offset": -166.0,
"tx_enable": true
},
"radio_1": {
"enable": true,
"type": "SX1257",
"freq": 922700000, // Korea Standard Channel 4
"rssi_offset": -166.0,
"tx_enable": false
}
},
"gateway_conf": {
"server_address": "router.kr.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
"enabled": true
}
}RS-485 Modbus RTU 연동
산업용 토양 센서(SHT-10 등) 연결 시 사용할 수 있는 Python 스크립트 예제입니다.pymodbus 라이브러리를 사용합니다.
modbus_reader.pypython
from pymodbus.client.sync import ModbusSerialClient
def read_soil_sensor(port='/dev/ttyUSB0'):
client = ModbusSerialClient(
method='rtu',
port=port,
baudrate=9600,
stopbits=1,
bytesize=8,
parity='N',
timeout=1
)
if client.connect():
# Read Holding Registers (Address 0x0000, Length 2)
# SHT-10 Default: Temp(0), Humi(1)
result = client.read_holding_registers(address=0, count=2, unit=1)
if not result.isError():
temp = result.registers[0] / 10.0
humi = result.registers[1] / 10.0
return {"temp": temp, "humi": humi}
client.close()
return None데이터 전송 준비가 되셨나요?
수집한 데이터를 FarmSense 클라우드로 보내는 방법을 확인하세요.