ESP32 토양 센서 과학적 데이터 보정: 원시 데이터에서 정밀 농업 추천까지
JXCT 7-in-1 토양 센서는 원시 Modbus RTU 데이터를 제공하지만, 온도와 습도 보정이 없으면 EC, pH, NPK 수치가 크게 왜곡됩니다. 이 오픈소스 ESP32 펌웨어는 연구 기반 보정 알고리즘을 적용해 주요 IoT 플랫폼과 연동되며, 24개 주요 작물에 맞춤형 추천을 제공합니다.
시스템 아키텍처와 배선
시스템은 ESP32 마이크로컨트롤러를 중심으로 구성되며, SP3485E 트랜시버를 통해 RS485로 센서와 통신합니다. 센서는 별도의 12~24V 전원이 필요하며, ESP32와 SP3485E는 3.3V로 작동합니다.
주요 배선 구성 요소:
- ESP32 GPIO16 (RX)와 GPIO17 (TX)로 직렬 통신.
- GPIO4와 GPIO5로 트랜시버 DE/RE 핀 제어.
- ESP32, SP3485E, 센서 전원 간 필수 공통 접지(GND) 연결.
- 긴 케이블 구간에서 올바른 RS485 극성(A+/B-)과 120Ω 종단 저항기.
측정 보정의 과학적 기초
펌웨어는 2단계 데이터 처리 파이프라인을 사용합니다. 1단계는 스케일링과 오프셋 팩터를 적용한 기본 SensorCorrection입니다. 2단계(선택)는 동료 검토 모델을 활용한 SensorCompensationService입니다.
구현된 보정 모델:
- 전기전도도(EC): Rhoades 등(1989) 모델. 25°C 초과 시 °C당 약 2.1% 상승.
EC_comp = EC_raw × (1 + 0.021 × (T - 25))
- pH: Ross 등(2008)의 Nernst 방정식. 25°C 초과 시 °C당 0.003 단위 하락.
pH_comp = pH_raw - 0.003 × (T - 25)
- NPK 함량: Delgado 등(2020) 모델. 온도, 습도, 토양 유형(모래~피트 13종)을 고려.
N_comp = N_raw × e^(δ_N(T-20)) × (1 + ε_N(θ-30))
NutrientInteractionService는 길항성(N↔K, P↔Zn) 및 시너지성(N+S, Ca+B) 영양소 상호작용도 고려합니다.
작물 추천 엔진
CropRecommendationEngine은 토마토·오이 같은 채소, 딸기·라즈베리 같은 과실, 사과·포도 같은 과수, 밀·콩 같은 작물 등 24종 프로필을 포함합니다. 각 작물마다 7개 센서 매개변수의 최적 범위를 설정했습니다.
추천 형성 요인:
- 토양 유형(13분류).
- 계절(봄, 여름, 가을, 겨울).
- 재배 환경(노지, 비닐하우스, 실내).
시스템은 정상, 주의, 경고, 위험으로 색상 코딩된 상태 표시를 사용합니다.
캘리브레이션과 관리
캘리브레이션은 실험실 기반 CSV 업로드(원시/보정 쌍) 또는 REST API 실시간 조정을 지원합니다.
캘리브레이션 주요 API 엔드포인트:
POST /api/calibration/{parameter}— 특정 매개변수 캘리브레이션 포인트 추가.GET /api/calibration/export&POST /api/calibration/import— 캘리브레이션 테이블 내보내기/가져오기.GET /api/correction/factors— 기본 보정 계수(기울기/오프셋) 관리.
IoT 생태계 연동
다양한 출력 및 제어 채널을 지원합니다.
지원 플랫폼 및 프로토콜:
- 웹 인터페이스: WiFi/MQTT 설정, 실시간 데이터 보기, 펌웨어 업데이트를 위한 내장 반응형 서버.
- REST API (v1): 센서 데이터(
/api/v1/sensor), 진단, 설정 관리 프로그램 접근. - MQTT: 변화 시에만 델타 필터링으로 사용자 지정 토픽 게시. Home Assistant 자동 발견 지원.
- ThingSpeak: 내장 검증과 설정 간격으로 채널에 데이터 전송.
고급 기능과 배포
펌웨어는 신뢰성 강화 기능 포함: 습도 급등으로 관개 이벤트 감지, 위치 기반 계절 조정, 데이터 필터링(Kalman, 중앙값), 감시 타이머, SHA256 무결성 검사 OTA 업데이트.
개발자 빠른 시작:
- 저장소 복제:
git clone https://github.com/Gfermoto/soil-sensor-7in1.git - 종속성 설치:
pip install -r requirements.txt - PlatformIO로 펌웨어 빌드 및 플래시:
pio run -t upload - 파일시스템 업로드:
pio run -t uploadfs - ESP32 액세스 포인트 연결로 초기 네트워크 설정.
기술 스택: C++17, PlatformIO, Arduino 프레임워크, Modbus RTU. AGPL-3.0 라이선스.
주요 요약
- 원시 토양 센서 데이터는 정확한 EC, pH, NPK를 위해 온도·습도 보정이 필수.
- 펌웨어는 입증 모델(Rhoades, Nernst, Delgado)과 영양소 상호작용 적용.
- 토양, 계절, 재배 조건 기반 24종 작물 맞춤 추천.
- Home Assistant, MQTT, ThingSpeak, REST API 원활 연동.
- 커스텀 적응을 위한 완전 오픈소스 및 문서 제공.
— Editorial Team
아직 댓글이 없습니다.