FarmSense
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 클라우드로 보내는 방법을 확인하세요.

API 문서 보기

설정이 어려우신가요? AI에게 사진을 찍어 물어보세요

CASE 1. KT 연동
KT API 키 발급 화면

KT 스마트팜 연동

"1588-0114에 전화해서 받은 API 키를 어디에 넣어야 할지 모르겠다면?"

AI 답변 보기
CASE 2. 센서 등록
센서 S/N 부착면

센서 등록 오류 해결

"센서 뒷면의 시리얼 번호(S/N) 사진을 찍으면 AI가 숫자를 읽어줍니다."

AI 답변 보기