예제 (Recipes)

이 섹션은 ``espzero``를 사용하여 다양한 센서와 부품을 제어하는 실전 예제를 다룹니다. 모든 예제는 ``import espzero; espzero.begin()``이 호출되었다고 가정합니다.

내장 LED (Built-in LED)

보드에 내장된 LED를 제어하는 가장 간단한 방법입니다.

from espzero import esp_led
from time import sleep

esp_led.on()  # 켜기
sleep(1)
esp_led.off() # 끄기
esp_led.blink() # 백그라운드에서 깜빡이기

디지털 출력 (LED)

일반 LED를 특정 핀에 연결하여 제어합니다.

from espzero import LED

led = LED(4) # GPIO 4번

led.on()
led.off()
led.toggle()

# 0.5초 켜지고 0.5초 꺼지기를 5번 반복 (비동기)
led.blink(on_time=0.5, off_time=0.5, n=5)

PWM 제어 (밝기 조절)

led.value = 0.5 # 50% 밝기
led.pulse()     # 서서히 밝아졌다 어두워졌다 반복

RGB LED

빨강, 초록, 파랑 핀을 각각 연결하여 다양한 색상을 만듭니다.

from espzero import RGBLED

rgb = RGBLED(red=25, green=26, blue=27)

rgb.color = (255, 0, 0)   # 빨간색
rgb.color = (0, 255, 0)   # 초록색
rgb.color = (255, 255, 0) # 노란색 (빨강+초록)
rgb.off()

부저 및 스피커 (Buzzer & Speaker)

단순 경고음 (Beep)

from espzero import Buzzer

bz = Buzzer(15)
bz.beep(on_time=0.1, off_time=0.1, n=3) # "삑-삑-삑"

멜로디 연주 (Play)

from espzero import Speaker

spk = Speaker(15)

# (음계, 박자) 튜플의 리스트
tune = [
    ('c4', 0.5), ('d4', 0.5), ('e4', 0.5), ('c4', 0.5),
    ('e4', 0.5), ('c4', 0.5), ('g4', 1.0)
]
spk.play(tune)

입력 장치 (Input Devices)

버튼 (Button)

from espzero import Button

btn = Button(5)

btn.when_pressed = lambda: print("눌림!")
btn.when_released = lambda: print("떨어짐!")

가변저항 (Potentiometer)

from espzero import Pot

pot = Pot(34) # 아날로그 핀 (ADC)

print("현재 값 (0-1):", pot.value)
print("전압 (V):", pot.voltage)

초음파 거리 센서 (Distance Sensor)

HC-SR04 등의 초음파 센서를 사용하여 거리를 측정합니다.

from espzero import DistanceSensor

# echo=14, trigger=13
ds = DistanceSensor(echo=14, trigger=13)

while True:
    print("거리: ", ds.distance, "m")
    sleep(0.5)

온도 센서 (Temperature Sensor)

내장 온도 센서

ESP32 칩 내부의 온도를 측정합니다. (주의: 외부 기온과는 차이가 있을 수 있습니다.)

from espzero import esp_temp_sensor

print("칩 내부 온도:", esp_temp_sensor.temp, "C")

복합 예제: 버튼으로 조명 제어

버튼을 누를 때마다 LED가 토글되는 예제입니다.

from espzero import LED, Button, begin

begin()
led = LED(4)
btn = Button(5)

btn.when_pressed = led.toggle

while True:
    pass # 이벤트 대기