아두이노 우노 Q 토양 습도 센서

토양 습도 센서는 토양 내 물의 양을 측정합니다 — 자동 식물 급수 시스템, 온실 모니터링, 농업 자동화에 유용합니다. 이 튜토리얼에서는 커패시티브 토양 습도 센서를 Arduino UNO Q에 연결하고, 습도 값을 읽으며, 습건 임계값을 캘리브레이션하고, Telegram을 통해 원격으로 토양을 모니터링하는 방법을 배웁니다.

※ 주의:

저항식 타입보다는 커패시티브 토양 습도 센서를 항상 사용하세요. 저항식 센서는 노출된 전극을 가지고 있어 전해질에 의해 빠르게 부식됩니다. 커패시티브 센서는 밀폐되어 있고 부식에 강하며, 훨씬 더 긴 수명을 제공합니다.

Arduino UNO Q - 토양 수분 센서

필요한 하드웨어

1×Arduino UNO Q 아마존
1×USB Cable for Arduino Uno Q 아마존
1×용량성 토양 수분 센서 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

토양 습도 센서에 대해

capacitive vs resistive 토양 수분 센서

토양 습도 센서에는 저항식과 커패시티브 두 가지 유형이 있습니다. 이 튜토리얼은 커패시티브 타입만 사용합니다:

  • 저항식 센서: 노출된 전극 사이에 전류를 흐르게 함 → 시간이 지남에 따라 부식 발생
  • 커패시티브 센서: 노출된 도체 없음 → 부식에 강하고 더 긴 수명
resistive 토양 수분 센서 corroded

핀아웃

커패시티브 토양 습도 센서는 세 개의 핀이 있습니다:

  • GND 핀: GND(0V)에 연결
  • VCC 핀: 3.3V에 연결(Arduino UNO Q MCU는 3.3V에서 작동)
  • AOUT 핀: 아날로그 출력 — 토양 습도에 비례하는 전압; 아날로그 입력 핀에 연결
capacitive 토양 수분 센서 사용법 핀아웃

작동 원리

AOUT 핀은 토양이 건조할 때 더 높은 전압을 출력하고 토양이 습할 때 더 낮은 전압을 출력합니다:

  • 건조한 토양 → 높은 전압 → 높은 ADC 값(Arduino UNO Q에서 4095에 가까움)
  • 습한 토양 → 낮은 전압 → 낮은 ADC 값(0에 가까움)

※ 주의:

Arduino UNO Q ADC 차이: STM32 MCU는 12비트 ADC(0–4095)를 사용합니다. 많은 다른 Arduino 보드의 10비트(0–1023)와 비교하면 다릅니다. 캘리브레이션 임계값은 더 높을 것입니다 — 일반적으로 센서에 따라 1500–3000 범위입니다.

배선 다이어그램

Arduino UNO Q 토양 수분 센서 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

센서 핀Arduino UNO Q 핀
GNDGND
VCC3.3V
AOUTA0

※ 주의:

센서의 회로 기판(상단 부분)을 토양이나 물에 묻지 마세요 — 프로브(하단 부분)만 토양에 삽입하세요.

MCU 코드

Arduino UNO Q는 두 개의 프로세서를 가지고 있습니다: STM32 MCU(실시간 하드웨어 제어 처리)와 Qualcomm MPU(Debian Linux 실행). 이 섹션에서는 STM32 MCU만 프로그래밍됩니다 — Linux 측은 유휴 상태로 남아 있습니다. 나중 섹션에서는 두 프로세서가 함께 작동하는 방법을 보여줍니다.

예제 1: 원본 습도 값 읽기

/* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino UNO Q pin connected to AOUT of soil moisture sensor void setup() { // nothing to set up } void loop() { // read 12-bit ADC value from moisture sensor (0 to 4095 on Arduino UNO Q) // higher value = drier soil; lower value = wetter soil int value = analogRead(AOUT_PIN); // TO DO: use value in your logic here // Example: map to a 0-100% dryness scale // int dryness = map(value, WET_VALUE, DRY_VALUE, 0, 100); delay(500); }

빠른 단계

  • Arduino UNO Q를 처음 사용하시나요? 계속 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 개발 환경을 준비하세요.
  • 센서 배선: GNDGND에, VCC를 3.3V에, AOUT을 A0에 연결하세요.
  • 연결: USB-C 케이블로 Arduino UNO Q를 컴퓨터에 연결하세요.
  • Arduino App Lab 열기: Arduino App Lab을 시작하고 Arduino UNO Q를 감지할 때까지 기다리세요.
  • 새 앱 만들기: Create New App 버튼을 클릭하세요.
create new app in 아두이노 app lab on Arduino UNO Q
  • 앱에 이름을 지정하세요. 예: DIYables_SoilMoisture
  • Create를 클릭하여 확인하세요.
  • 새 앱 내에 생성된 폴더 및 파일 집합을 볼 수 있습니다.
아두이노 app lab app folders and files on Arduino UNO Q
  • sketch/sketch.ino 파일을 찾으세요 — 여기가 MCU 스케치를 붙여넣을 곳입니다.
  • 스케치 붙여넣기: 위의 MCU 코드를 복사하여 스케치 파일에 붙여넣으세요. 다른 파일은 기본값으로 유지하세요.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    add sketch 라이브러리 in 아두이노 app lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • 업로드: Arduino App Lab에서 실행 버튼을 클릭하여 STM32에 컴파일 및 업로드하세요.
    click run 버튼 in 아두이노 app lab on Arduino UNO Q
    • 센서 프로브를 토양에 삽입하고 천천히 물을 추가하세요. Bridge Monitor에서 ADC 값이 감소하는 것을 관찰하세요(다음 섹션에서 사용 가능).
    • Pro Tip: 완전히 적신 경우에도 읽기는 0에 도달하지 않을 것입니다. 테스트 중 최소값(습함)과 최대값(건조함)을 기록하세요 — 이들이 캘리브레이션 범위가 됩니다.

    캘리브레이션

    습도 값은 절대값이 아닙니다 — 특정 센서, 토양 구성, 물의 종류에 따라 다릅니다. 습건 토양을 정확하게 감지하려면 임계값을 캘리브레이션해야 합니다:

    1. 코드를 업로드하고 센서를 건조한 토양에 삽입하세요 → ADC 읽기를 기록하세요(예: 2800DRY_VALUE)
    2. 토양에 철저히 물을 주고 몇 분 기다리세요 → ADC 읽기를 기록하세요(예: 1200WET_VALUE)
    3. THRESHOLD를 중간점으로 설정하세요: (DRY_VALUE + WET_VALUE) / 22000
    4. 아래의 예제 2에서 THRESHOLD를 업데이트하세요

    ※ 주의:

    • 순수 증류수로 테스트하는 것을 피하세요 — 전도도가 매우 낮아 읽기를 크게 변경하지 못할 수 있습니다.
    • 회로 기판 부분을 물이나 토양에 담그지 마세요.

    예제 2: 습한 또는 건조한 토양 감지

    캘리브레이션 후 THRESHOLD를 업데이트하고 다음 코드를 사용하여 토양을 WET 또는 DRY로 분류하세요:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-soil-moisture-sensor */ #define AOUT_PIN A0 // Arduino UNO Q pin connected to AOUT of soil moisture sensor #define THRESHOLD 2200 // CHANGE to your calibrated threshold (higher = drier on Arduino UNO Q) void setup() { // nothing to set up } void loop() { // read 12-bit ADC value from moisture sensor (0 to 4095 on Arduino UNO Q) int value = analogRead(AOUT_PIN); // higher ADC value = less water in soil = DRY if (value > THRESHOLD) { // TO DO: soil is DRY — add your logic here (e.g. turn on pump) } else { // TO DO: soil is WET — add your logic here (e.g. turn off pump) } delay(500); }

    빠른 단계

    • 동일한 앱을 사용하여 스케치를 위의 코드로 바꾸세요.
    • 캘리브레이션한 값으로 THRESHOLD를 업데이트하세요.
    • 업로드하고 센서를 토양에 삽입하세요 — 천천히 물을 추가하고 상태 변화를 관찰하세요.
    • Pro Tip: 경계 근처에서 빠른 전환을 피하기 위해 히스테리시스를 몇 점 추가하세요(예: WET 및 DRY용 두 개의 별도 임계값).

    Linux + MCU Bridge 프로그래밍

    Arduino UNO Q는 함께 작동하는 두 개의 프로세서를 가지고 있습니다: MPU(Qualcomm, Debian Linux 실행)와 MCU(STM32, Zephyr OS 실행 및 Arduino 스케치). 그들은 Arduino_RouterBridge 라이브러리를 사용하여 RPC를 통해 통신합니다 — 절대 원본 직렬 포트로 통신하지 않습니다.

    • 센서는 MCU(STM32)에 연결됩니다 — 아날로그 핀 A0에 배선됩니다. MCU는 ADC 값을 읽고 토양 습도를 분류합니다.
    • MPU는 센서를 직접 읽을 수 없습니다Bridge.call()을 통해 MCU에 읽기를 요청해야 합니다. MCU는 현재 습도 값 및 상태로 응답합니다.
    • MPU는 Wi-Fi를 가지고 있습니다 — MPU가 Wi-Fi가 있는 전체 Debian Linux를 실행하기 때문에 Telegram을 통해 토양 습도 상태를 요청에 따라 보낼 수 있습니다.
    • 통신: Linux 측의 Bridge.call()은 MCU 측의 Bridge.provide() 함수를 호출합니다
    • ⚠️ 예약됨: /dev/ttyHS1(Linux) 및 Serial1(MCU)는 Arduino Router에서 사용하고 있습니다 — 절대 직접 열지 마세요

    간단히 말해서: MPU가 습도 읽기를 요청 → MCU가 ADC를 읽고 WET/DRY를 분류 → MCU가 결과를 보고 → MPU가 기록하거나 전달합니다.

    MCU 스케치 — Bridge 및 Monitor 출력을 사용한 토양 습도:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-soil-moisture-sensor */ #include "Arduino_RouterBridge.h" #define AOUT_PIN A0 #define THRESHOLD 2200 // adjust after calibration void read_moisture() { int value = analogRead(AOUT_PIN); const char* status = (value > THRESHOLD) ? "DRY" : "WET"; Monitor.print("Moisture: "); Monitor.print(value); Monitor.print(" ("); Monitor.print(status); Monitor.println(")"); } void setup() { Bridge.begin(); Monitor.begin(); Bridge.provide("read_moisture", read_moisture); Monitor.println("Soil Moisture Bridge ready"); } void loop() {}

    Python 스크립트(Arduino App Lab) — Linux에서 습도 폴링:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-soil-moisture-sensor */ from arduino.app_utils import * import time def loop(): while True: Bridge.call("read_moisture") time.sleep(2) App.run(user_loop=loop)
    • 참고: 파이썬 스크립트를 Linux 측에서 실행하기 전에 MCU 스케치에서 Bridge.begin()이 호출되고 스케치가 업로드되었는지 확인하세요.
    • ⚠️ 경고: /dev/ttyHS1(Linux에서) 또는 Serial1(MCU에서)을 코드에서 직접 열지 마세요 — 이들은 Arduino Router에서 예약되어 있으며 액세스하면 Bridge가 끊어집니다.

    빠른 단계

    • MCU 스케치 업로드: Arduino App Lab을 열고, 새 앱을 만들고, 위의 Bridge MCU 스케치를 sketch/sketch.ino에 붙여넣고, Arduino_RouterBridge 라이브러리를 설치하고, 실행을 클릭하세요.
    • Python 스크립트 추가: 위의 Python 코드를 동일한 앱의 Python 탭에 붙여넣으세요.
    • 앱 실행: 실행을 클릭하세요 — Python 측은 2초마다 습도를 읽습니다.
    • 토양에 물을 추가하고 콘솔에서 DRY와 WET 사이의 상태 전환을 관찰하세요.
    • 콘솔 확인: 콘솔 탭을 열고 → MCU Monitor 서브탭.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Soil Moisture Bridge ready Moisture: 2850 (DRY) Moisture: 2740 (DRY) Moisture: 2100 (DRY) Moisture: 1750 (WET) Moisture: 1320 (WET)

    Telegram 통합

    Telegram을 통해 어디서나 토양 습도를 원격으로 모니터링하세요.

    아직 Telegram 봇이 없다면, 아두이노 우노 Q - 텔레그램 봇를 참조하여 계속하기 전에 봇 토큰을 가져오세요.

    MCU 스케치: 이전의 Bridge 섹션에서 동일한 MCU 스케치를 유지하세요 — 변경 사항이 없습니다. 계속하기 전에 STM32에서 이미 업로드되고 실행 중인지 확인하세요.

    Python 스크립트(Arduino App Lab) — 토양 습도 모니터링용 Telegram 봇:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-soil-moisture-sensor */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/read": result = Bridge.call("read_moisture") send_message(chat_id, result) else: send_message(chat_id, "Commands:\n/read — read soil moisture value and wet/dry status") time.sleep(1) App.run(user_loop=loop)
    • 참고: YOUR_BOT_TOKEN을 Telegram의 @BotFather에서 얻은 토큰으로 바꾸세요.
    • /read를 전송하여 현재 습도 ADC 값과 습건 상태를 가져오세요.

    빠른 단계

    • MCU 스케치 업로드: 이전 섹션에서 Bridge MCU 스케치를 사용하세요(아직 업로드하지 않았으면 먼저 업로드하세요).
    • Telegram 스크립트 붙여넣기: 위의 Python 코드를 Arduino App Lab의 앱의 Python 탭에 복사하세요.
    • 토큰 설정: 스크립트의 YOUR_BOT_TOKEN을 실제 봇 토큰으로 바꾸세요.
    • 앱 실행: 실행을 클릭하세요 — 봇은 Telegram 메시지 수신을 시작합니다.
    • 테스트: 센서를 먼저 건조한 토양에, 그 다음 습한 토양에 삽입하고, 매번 /read를 전송하세요 — 봇은 습도 값과 상태로 응답합니다.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /read [2026-04-29 12:00:01] Moisture: 2850 (DRY) [2026-04-29 12:05:30] Telegram: /read [2026-04-29 12:05:30] Moisture: 1320 (WET)
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /read
    10:15 AM ✓✓
    Moisture: 2850 (DRY)
    10:16 AM
    /read
    10:17 AM ✓✓
    Moisture: 1320 (WET)
    10:18 AM

    OpenClaw 통합

    아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하여 OpenClaw를 이 튜토리얼에 맞게 조정할 수 있습니다.

    응용 프로그램/프로젝트 아이디어

    • 자동 식물 급수: /read가 DRY를 반환할 때 펌프 릴레이 작동 — 릴레이 튜토리얼과 결합
    • 온실 모니터: 크론 작업을 통해 Linux 측에서 매시간 Telegram /read 알림 예약
    • 스마트 관개 시스템: 여러 토양 습도 센서를 자동 관개 시스템 튜토리얼과 결합
    • 토양 건강 추적기: Linux MPU에 토양 습도 읽기를 타임스탐프와 함께 파일에 기록하고 시간 경과에 따른 추세 시각화
    • 날씨 인식 급수: 토양 습도 데이터와 MPU의 온라인 날씨 API를 결합하여 비가 예상될 때 급수 건너뛰기

    도전하기

    • 쉬움: /status Telegram 명령을 추가하여 "토양이 DRY입니다 — 급수를 고려하세요!" 또는 "토양이 WET입니다 — 급수가 필요 없습니다."로 응답하는 명령 추가
    • 중간: 습도 읽기를 10분마다 타임스탐프와 함께 MPU의 Linux 파일 시스템의 CSV 파일에 기록
    • 고급: 토양 습도를 30분마다 읽고 토양이 건조해지면 Telegram 알림을 전송하는 자동 관개 시스템 구축

    함수 참조

    빠른 단계

    • MCU 스케치 업로드: Arduino App Lab을 열고, 새 앱을 만들고, 위의 Bridge MCU 스케치를 sketch/sketch.ino에 붙여넣고, Arduino_RouterBridge 라이브러리를 설치하고, 실행을 클릭하세요.
    • Python 스크립트 추가: 위의 Python 코드를 동일한 앱의 Python 탭에 붙여넣으세요.
    • 앱 실행: 실행을 클릭하세요 — Python 측은 2초마다 습도를 읽습니다.
    • 토양에 물을 추가하고 콘솔에서 DRY와 WET 사이의 상태 전환을 관찰하세요.
    • 콘솔 확인: 콘솔 탭을 열고 → MCU Monitor 서브탭.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Soil Moisture Bridge ready Moisture: 2850 (DRY) Moisture: 2740 (DRY) Moisture: 2100 (DRY) Moisture: 1750 (WET) Moisture: 1320 (WET)

    Telegram 통합

    Telegram을 통해 어디서나 토양 습도를 원격으로 모니터링하세요.

    아직 Telegram 봇이 없다면, 아두이노 우노 Q - 텔레그램 봇를 참조하여 계속하기 전에 봇 토큰을 가져오세요.

    MCU 스케치: 이전의 Bridge 섹션에서 동일한 MCU 스케치를 유지하세요 — 변경 사항이 없습니다. 계속하기 전에 STM32에서 이미 업로드되고 실행 중인지 확인하세요.

    Python 스크립트(Arduino App Lab) — 토양 습도 모니터링용 Telegram 봇:

    /* * 이 Arduino UNO Q 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO Q 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-q/arduino-uno-q-soil-moisture-sensor */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/read": result = Bridge.call("read_moisture") send_message(chat_id, result) else: send_message(chat_id, "Commands:\n/read — read soil moisture value and wet/dry status") time.sleep(1) App.run(user_loop=loop)
    • 참고: YOUR_BOT_TOKEN을 Telegram의 @BotFather에서 얻은 토큰으로 바꾸세요.
    • /read를 전송하여 현재 습도 ADC 값과 습건 상태를 가져오세요.

    빠른 단계

    • MCU 스케치 업로드: 이전 섹션에서 Bridge MCU 스케치를 사용하세요(아직 업로드하지 않았으면 먼저 업로드하세요).
    • Telegram 스크립트 붙여넣기: 위의 Python 코드를 Arduino App Lab의 앱의 Python 탭에 복사하세요.
    • 토큰 설정: 스크립트의 YOUR_BOT_TOKEN을 실제 봇 토큰으로 바꾸세요.
    • 앱 실행: 실행을 클릭하세요 — 봇은 Telegram 메시지 수신을 시작합니다.
    • 테스트: 센서를 먼저 건조한 토양에, 그 다음 습한 토양에 삽입하고, 매번 /read를 전송하세요 — 봇은 습도 값과 상태로 응답합니다.

    App Lab 콘솔 출력

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /read [2026-04-29 12:00:01] Moisture: 2850 (DRY) [2026-04-29 12:05:30] Telegram: /read [2026-04-29 12:05:30] Moisture: 1320 (WET)
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /read
    10:15 AM ✓✓
    Moisture: 2850 (DRY)
    10:16 AM
    /read
    10:17 AM ✓✓
    Moisture: 1320 (WET)
    10:18 AM

    OpenClaw 통합

    아두이노 우노 Q - OpenClaw 튜토리얼의 지침을 참조하여 OpenClaw를 이 튜토리얼에 맞게 조정할 수 있습니다.

    응용 프로그램/프로젝트 아이디어

    • 자동 식물 급수: /read가 DRY를 반환할 때 펌프 릴레이 작동 — 릴레이 튜토리얼과 결합
    • 온실 모니터: 크론 작업을 통해 Linux 측에서 매시간 Telegram /read 알림 예약
    • 스마트 관개 시스템: 여러 토양 습도 센서를 자동 관개 시스템 튜토리얼과 결합
    • 토양 건강 추적기: Linux MPU에 토양 습도 읽기를 타임스탬프와 함께 파일에 기록하고 시간 경과에 따른 추세 시각화
    • 날씨 인식 급수: 토양 습도 데이터와 MPU의 온라인 날씨 API를 결합하여 비가 예상될 때 급수 건너뛰기

    도전하기

    • 쉬움: /status Telegram 명령을 추가하여 "토양이 DRY입니다 — 급수를 고려하세요!" 또는 "토양이 WET입니다 — 급수가 필요 없습니다."로 응답하는 명령 추가
    • 중간: 습도 읽기를 10분마다 타임스탬프와 함께 MPU의 Linux 파일 시스템의 CSV 파일에 기록
    • 고급: 토양 습도를 30분마다 읽고 토양이 건조해지면 Telegram 알림을 전송하는 자동 관개 시스템 구축

    함수 참조

    관련 튜토리얼