You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ko/2-farm/lessons/3-automated-plant-watering/virtual-device-relay.md

5.8 KiB

릴레이 제어하기 - 가상 IoT 하드웨어

이 수업의 이번 부분에서는 토양 수분 센서에 더해 가상 IoT 장치에 릴레이를 추가하고, 토양 수분 수준에 따라 이를 제어하는 방법을 배웁니다.

가상 하드웨어

가상 IoT 장치는 시뮬레이션된 Grove 릴레이를 사용합니다. 이는 실제 Grove 릴레이를 사용하는 Raspberry Pi와 동일한 방식으로 실습을 진행할 수 있게 합니다.

실제 IoT 장치에서 릴레이는 일반적으로 열려 있는 릴레이(즉, 릴레이에 신호가 보내지지 않을 때 출력 회로가 열려 있거나 연결이 끊어진 상태)입니다. 이러한 릴레이는 최대 250V와 10A의 출력 회로를 처리할 수 있습니다.

CounterFit에 릴레이 추가하기

가상 릴레이를 사용하려면 CounterFit 앱에 릴레이를 추가해야 합니다.

작업

CounterFit 앱에 릴레이를 추가하세요.

  1. VS Code에서 이전 수업의 soil-moisture-sensor 프로젝트를 열어둡니다. 이 프로젝트에 추가 작업을 진행할 것입니다.

  2. CounterFit 웹 앱이 실행 중인지 확인하세요.

  3. 릴레이를 생성하세요:

    1. Actuators 창의 Create actuator 상자에서 Actuator type 드롭다운을 열고 Relay를 선택합니다.

    2. Pin5로 설정합니다.

    3. Add 버튼을 선택하여 Pin 5에 릴레이를 생성합니다.

    릴레이 설정

    릴레이가 생성되어 액추에이터 목록에 나타납니다.

    생성된 릴레이

릴레이 프로그래밍하기

이제 토양 수분 센서 앱을 가상 릴레이를 사용하도록 프로그래밍할 수 있습니다.

작업

가상 장치를 프로그래밍하세요.

  1. VS Code에서 이전 수업의 soil-moisture-sensor 프로젝트를 열어둡니다. 이 프로젝트에 추가 작업을 진행할 것입니다.

  2. 기존의 import 아래에 다음 코드를 app.py 파일에 추가하세요:

    from counterfit_shims_grove.grove_relay import GroveRelay
    

    이 코드는 Grove Python shim 라이브러리에서 GroveRelay를 가져와 가상 Grove 릴레이와 상호작용할 수 있도록 합니다.

  3. ADC 클래스 선언 아래에 다음 코드를 추가하여 GroveRelay 인스턴스를 생성하세요:

    relay = GroveRelay(5)
    

    이는 Pin 5를 사용하여 릴레이를 생성합니다. 이 핀은 릴레이를 연결한 핀입니다.

  4. 릴레이가 작동하는지 테스트하려면 while True: 루프에 다음 코드를 추가하세요:

    relay.on()
    time.sleep(.5)
    relay.off()
    

    이 코드는 릴레이를 켜고 0.5초 동안 대기한 후 릴레이를 끕니다.

  5. Python 앱을 실행하세요. 릴레이는 10초마다 켜지고 꺼지며, 켜지고 꺼지는 사이에 0.5초의 지연이 있습니다. CounterFit 앱에서 가상 릴레이가 켜지고 꺼지는 모습을 확인할 수 있습니다.

    가상 릴레이가 켜지고 꺼지는 모습

토양 수분에 따라 릴레이 제어하기

이제 릴레이가 작동하므로 토양 수분 센서의 읽기값에 따라 릴레이를 제어할 수 있습니다.

작업

릴레이를 제어하세요.

  1. 릴레이를 테스트하기 위해 추가했던 3줄의 코드를 삭제하세요. 대신 다음 코드를 해당 위치에 추가하세요:

    if soil_moisture > 450:
        print("Soil Moisture is too low, turning relay on.")
        relay.on()
    else:
        print("Soil Moisture is ok, turning relay off.")
        relay.off()
    

    이 코드는 토양 수분 센서에서 읽은 값을 확인합니다. 값이 450을 초과하면 릴레이를 켜고, 450 미만이면 릴레이를 끕니다.

    💁 용량성 토양 수분 센서는 읽기값이 낮을수록 토양에 수분이 많고, 읽기값이 높을수록 토양에 수분이 적다는 것을 기억하세요.

  2. Python 앱을 실행하세요. 토양 수분 수준에 따라 릴레이가 켜지거나 꺼지는 모습을 확인할 수 있습니다. 토양 수분 센서의 Value 또는 Random 설정을 변경하여 값을 확인하세요.

    Soil Moisture: 638
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 452
    Soil Moisture is too low, turning relay on.
    Soil Moisture: 347
    Soil Moisture is ok, turning relay off.
    

💁 이 코드는 code-relay/virtual-device 폴더에서 찾을 수 있습니다.

😀 가상 토양 수분 센서가 릴레이를 제어하는 프로그램을 성공적으로 완료했습니다!

면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 정확성을 위해 최선을 다하고 있지만, 자동 번역에는 오류나 부정확성이 포함될 수 있습니다. 원본 문서의 원어 버전을 권위 있는 출처로 간주해야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 책임을 지지 않습니다.