전체 구조

 
 

왼쪽/오른쪽 벽면

 

앞쪽/뒷쪽 벽면

 
 
■ 필요자재

<왼쪽면>
방부목 38*89*3600 : 11개
폴리카보네이트(PC/평판/투명) 1m/2m/2T : 8개

<오른쪽면>
방부목  38*89*3600 : 11개
폴리카보네이트(PC/평판/투명) 1m/2m/ 2T : 8개

<앞면>
방부목  38*89*3600 : 6개
폴리카보네이트(PC/평판/투명) 1m/2m/2T : 4개

<뒷면>
방부목  38*89*3600 : 6개
폴리카보네이트(PC/평판/투명) 1m/2m/2T : 4개 +여분1개

<더블>
방부목  38*89*3600 : 8개

<릿지>
방부목  38*89*3600 : 7개

<서까래>
방부목  38*89*3600 : 26개
폴리카보네이트(PC/V-250/투명) 2.4m/1T  : 10개 * 2

 

당뇨에 도움이 될 수 있는 에센셜 오일은 혈당 조절과 혈액 순환 개선, 염증 완화에 도움을 줄 수 있는 오일들이다. 아래는 당뇨 관리를 돕는 블렌딩 레시피를 소개한다. 이 블렌드는 혈당을 안정화하고 순환을 개선하며, 스트레스를 줄여 건강에 도움을 줄 수 있는 오일들로 구성되어 있다.

시나몬, 레몬, 라벤더, 로즈마리



<필요한 재료>
1. 시나몬 오일(Cinnamon Essential Oil) : 4방울
혈당 조절에 도움을 줄 수 있는 오일로, 인슐린 민감성을 개선하는 데 도움이 될 수 있다.

2. 레몬 오일(Lemon Essential Oil) : 3방울
항산화 작용이 뛰어나며, 혈당을 안정시키는 데 도움이 된다. 또한, 스트레스 완화에 유효하다.

3. 라벤더 오일(Lavender Essential Oil) : 2방울
스트레스와 불안을 완화하고, 혈당 변동을 줄이는 데 도움을 줄 수 있다.

4. 로즈마리 오일(Rosemary Essential Oil) : 1방울
혈액 순환을 개선하고, 인슐린 저항성을 줄이는 데 도움을 줄 수 있다.

5. 캐리어 오일(코코넛 오일, 호호바 오일 등) : 10ml (피부에 사용할 경우 희석하기 위한 오일)


<사용 방법>
1. 인헤일러 : 위의 블렌딩을 인헤일러에 사용하여 하루에 여러 번 깊게 흡입한다. 스트레스 완화와 혈당 변동 조절에 도움을 준다.

2. 마사지 : 10ml의 캐리어 오일에 위의 블렌딩 오일을 모두 섞어, 발바닥, 손목, 복부 등에 부드럽게 마사지한다. 순환을 개선하고, 당뇨 관리에 도움이 될 수 있다.

3. 디퓨저 : 방에 디퓨저로 퍼뜨리면 편안한 환경을 조성해 스트레스를 줄이고, 혈당 안정화에 기여할 수 있다.


<주의 사항>
에센셜 오일을 사용할 때는 항상 캐리어 오일에 희석하여 피부에 사용한다.
시나몬 오일은 농도가 강할 수 있으니 적절한 양을 사용하는 것이 좋다.
당뇨 환자의 경우, 에센셜 오일 사용 전 의사와 상의하는 것이 좋다.


<심혈관 질환자의 레시피>
심혈관 질환이 있는 경우 다음 레시피가 더욱 안전하다.
처음 사용 시 시나몬 비율을 줄이고, 괜찮을 시 점차 늘리기를 추천한다.

- 시나몬 오일 : 1방울
- 레몬 오일 : 3방울
- 라벤더 오일 : 2방울
- 파인 오일 : 2방울

시나몬, 레몬, 라벤더, 파인



<요약>
이 블렌딩은 혈당 조절과 혈액 순환을 돕는 성분을 포함하고 있어, 당뇨 관리에 긍정적인 효과를 줄 수 있는 조합이다.


핀란드 사우나에서 사용할 에센셜 오일 레시피는 사우나의 뜨거운 증기와 함께 상쾌하고 편안한 향을 퍼뜨리기 위해 설계되어야 한다. 사우나의 열기와 습도가 함께 증기 속에서 오일이 퍼지도록 하기 위해, 적절한 오일과 비율로 혼합하는 것이 중요하다.

유칼립투스, 페퍼민트, 소나무, 라벤더


<필요한 재료>
1. 유칼립투스(Eucalyptus) 오일 (탑) : 5방울 (상쾌한 호흡을 돕고, 상쾌한 향 제공)
2. 페퍼민트(Peppermint) 오일 (탑) : 3방울 (시원하고 청량한 느낌을 줌)
3. 소나무(Pine) 오일 (미들) : 3방울 (숲의 향과 같은 상쾌한 느낌, 피로 완화)
4. 라벤더(Lavender) 오일 (미들) : 2방울 (긴장 완화, 진정 효과)
5. : 1리터


<5ml용 필요한 재료> : (100방울)
1. 유칼립투스 오일 : 40방울 (전체의 40%)
2. 페퍼민트 오일 : 30방울 (전체의 30%)
3. 소나무 오일 : 20방울 (전체의 20%)
4. 라벤더 오일 : 10방울 (전체의 10%)


<제조 방법>
1. 물 1리터를 준비한 후, 물에 위의 에센셜 오일을 모두 넣는다.
2. 잘 섞어서 핀란드 사우나용 스토브에 직접 뿌릴 수 있도록 준비한다.


<사용 방법>
1. 사우나 스토브에 에센셜 오일을 섞은 물을 뿌리면, 물이 증발하면서 상쾌한 향기가 사우나 전체에 퍼진다.
2. 한 번에 물을 너무 많이 붓지 말고, 적절한 양을 나누어 천천히 뿌려야 증기가 균일하게 퍼진다.


<레시피 설명>
1. 유칼립투스 오일 : 사우나에서 호흡기를 열어주고, 상쾌한 느낌을 준다.
2. 페퍼민트 오일 : 시원하고 청량한 향이 더해져, 사우나의 열기 속에서 신선한 느낌을 더한다.
3. 소나무 오일 : 숲의 향을 더해 자연적인 편안함과 스트레스 해소를 돕는다.
4. 라벤더 오일 : 사우나 후 편안한 휴식을 위한 진정 효과를 준다.

이 레시피는 사우나의 열기와 함께 상쾌한 향이 나면서 몸과 마음을 이완시키는 데 도움을 줄 수 있다.

에센셜 오일을 사용한 천연 농약은 해충을 퇴치하고 식물을 보호하는 데 효과적이다. 특히, 화학 농약에 비해 안전하고 환경친화적인 방법이다. 여러 가지 에센셜 오일을 함께 사용하면 해충을 퇴치하는 데 더 강력한 효과를 낼 수 있다.

페퍼민트, 로즈마리, 시트로넬라, 계피



<필요한 재료>

1. 페퍼민트((Peppermint) 오일 (탑) : 10방울 (해충을 퇴치하는 데 효과적)
2. 로즈마리(Rosemary) 오일 (미들) : 10방울 (벌레 퇴치 효과)
3. 시트로넬라(Citronella) 오일 (탑) : 10방울 (모기와 같은 해충 퇴치)
4. 계피(Cinnamon) 오일 (미들) : 5방울 (강력한 항균 및 해충 기피 효과)
5. 멀티가용화제 (KC80LT) : 1~2ml (오일과 물을 잘 섞이도록 사용)
6. : 500ml


<제조 방법>
1. 500ml 용량의 스프레이 병을 준비한다.
2. 멀티가용화제(KC80LT) 1~2ml를 스프레이 병에 넣고, 이 가용화제는 에센셜 오일과 물을 잘 혼합되도록 도와준다.
3. 에센셜 오일을 순서대로 추가한다.
  - 페퍼민트 오일 10방울
  - 로즈마리 오일 10방울
  - 시트로넬라 오일 10방울
  - 계피 오일 5방울
4. 나머지 공간에 물 500ml를 채운다.
5. 뚜껑을 닫고 잘 흔들어 오일과 물이 완전히 섞이도록 한다.


<사용 방법>
1. 사용 전에 항상 잘 흔들어 에센셜 오일과 물이 잘 섞이도록 한다.
2. 식물의 잎과 해충이 있는 부분에 직접 스프레이한다.
3. 해충 방제가 필요할 때마다, 또는 일주일에 한두 번 사용하면 좋다.


<오일 설명>
1. 페퍼민트 오일 : 해충을 퇴치하며, 강한 향이 해충들을 멀리한다.
2. 로즈마리 오일 : 해충 퇴치뿐만 아니라 식물의 건강을 증진시키는 데 도움을 준다.
3. 시트로넬라 오일 : 모기와 같은 작은 해충들을 효과적으로 쫓아준다.
4. 계피 오일 : 정향 오일을 대신하여 강력한 항균 및 해충 기피 효과를 제공한다.

스위치를 이용하여 LED의 밝기를 조절할 수 있는 스텐드를 만들어 본다.


<준비물>
- 브레드보드 : 1개
- LED 흰색 : 1개
- 220옴(빨빨갈) 저항 : 1개
- 스위치 : 1개
- 암/수 점퍼케이블 : 4개
- 수/수 점퍼케이블 : 1개


<회로도>



<코드>
from gpiozero import PWMLED,Button
from time import sleep

led_white = PWMLED(12)
swPin = Button(21)

swState = 0

newSw = 0
oldSw = 0

def swOn():
    global newSw
    global oldSw
    newSw = swPin.is_pressed
    
    if newSw != oldSw:
        oldSw = newSw
        if newSw == 1:
            return 1
        
    return 0

try:
    while True:
        if swOn() == 1:
            swState = swState + 1
            if swState >= 4:
                swState = 0
            sleep(0.2)
            
            print(swState)
            
            if swState == 0:
                led_white.value = 0
                print("duty:0")
            elif swState == 1:
                led_white.value = 0.3
                print("duty:30")
            elif swState == 2:
                led_white.value = 0.6
                print("duty:60")
            elif swState == 3:
                led_white.value = 1.0
                print("duty:100")
        
except KeyboardInterrupt:
    pass

led_white.value = 0


<코드설명>
이 코드는 PWM(Pulse Width Modulation)을 이용하여 LED의 밝기를 조절하고, 버튼을 눌러 밝기 단계를 변경하는 프로그램이다. 버튼을 한 번 누를 때마다 LED의 밝기가 0%, 30%, 60%, 100%로 순차적으로 변경된다.

1. 모듈 임포트
from gpiozero import PWMLED, Button
from time import sleep

gpiozero 라이브러리에서 PWMLED(LED 밝기 조절), Button(스위치 제어)을 불러온다.
time.sleep() 함수로 잠깐 대기할 수 있도록 time 모듈에서 sleep 함수를 불러온다.

2. 변수 초기화
led_white = PWMLED(12)
swPin = Button(21)

swState = 0
newSw = 0
oldSw = 0

12번 핀에 연결된 LED를 PWMLED로 선언하고, LED의 밝기를 조절할 수 있게 한다.
21번 핀에 연결된 스위치를 제어하기 위해 Button으로 선언한다.
swState는 버튼이 눌렸을 때 LED의 밝기 단계를 추적하는 변수이고, 0부터 3까지의 값을 가질 수 있다.
newSw와 oldSw는 스위치 상태 변화를 추적하기 위한 변수이고, 버튼이 눌릴 때만 이벤트를 감지하기 위함이다.

3. 스위치 상태를 확인하는 함수
def swOn():
    global newSw
    global oldSw
    newSw = swPin.is_pressed

    if newSw != oldSw:
        oldSw = newSw
        if newSw == 1:
            return 1

    return 0

이 함수는 버튼이 눌렸을 때만 1을 반환하고, 그렇지 않으면 0을 반환한다.
newSw는 현재 스위치 상태를 나타내며, oldSw는 이전 스위치 상태를 저장합니다.
두 상태가 다를 때(즉, 버튼이 눌리거나 떼어질 때) 상태를 업데이트하고, 스위치가 눌렸을 때(1일 때) 1을 반환한다. 그렇지 않으면 0을 반환하여 동작을 처리하지 않는다.

4. 메인 루프
try:
    while True:
        if swOn() == 1:
            swState = swState + 1
            if swState >= 4:
                swState = 0
            sleep(0.2)

swOn() 함수가 1을 반환할 때(즉, 버튼이 눌릴 때), swState 값을 1씩 증가시키고, swState가 4 이상이 되면 다시 0으로 돌아가게 한다.
sleep(0.2)는 버튼이 너무 빠르게 반복해서 눌리는 것을 방지하기 위해 디바운스 효과를 준다(즉, 짧은 시간 동안 버튼이 눌리는 것을 무시함).

5. LED 밝기 조절
if swState == 0:
    led_white.value = 0
elif swState == 1:
    led_white.value = 0.3
elif swState == 2:
    led_white.value = 0.6
elif swState == 3:
    led_white.value = 1.0

swState 값에 따라 LED의 밝기를 변경한다.
swState == 0: LED 밝기를 0%로 설정(꺼짐),
swState == 1: LED 밝기를 30%로 설정.
swState == 2: LED 밝기를 60%로 설정,
swState == 3: LED 밝기를 100%로 설정한다(최대 밝기).

6. 프로그램 종료 시
except KeyboardInterrupt:
    pass

led_white.value = 0

Ctrl + C로 프로그램을 종료할 때, 프로그램이 안전하게 종료되도록 처리한다.
프로그램 종료 시 LED의 밝기를 0%로 설정하여 LED를 끈다.


<요약>
이 프로그램은 버튼을 눌러 LED의 밝기를 4단계로 조절한다. 0%, 30%, 60%, 100%의 밝기로 변하며, 다시 0%로 돌아온다. 스위치를 누를 때만 상태가 변하며, LED는 해당 상태에 맞는 밝기를 유지한다.


<시연영상>

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

경찰차 지분위에 달린 경관등을 만든다. 스위치를 추가하여 스위치로 경광등을 켜고 끌 수 있게 동작 시킨다.


<준비물>
- 브레드보드 : 1개
- LED 파랑 : 1개
- LED 빨강 : 1개
- 220옴(빨빨갈) 저항 : 2개
- 스위치 : 1개
- 암/수 점퍼케이블 : 5개
- 수/수 점퍼케이블 : 1개


<회로도>



<코드>
from gpiozero import Button
from gpiozero import LED
from time import sleep

ledRed = LED(23)
ledBlue = LED(24)
swPin = Button(21)

swState = 0

try:
    while 1:
        swValue = swPin.is_pressed
        if swValue == True:
            if swState == 0:
                swState = 1
            else:
                swState = 0
            sleep(0.5)
            
        if swState == 1:
            ledRed.on()
            ledBlue.off()
            sleep(0.1)
            ledRed.off()
            ledBlue.on()
            sleep(0.1)
        else:
            ledRed.off()
            ledBlue.off()
    
except KeyboardInterrupt:
    pass

ledRed.off()
ledBlue.off()


<코드설명>
이 코드는 스위치(버튼)를 사용하여 LED 두 개(빨간색과 파란색)를 제어하는 프로그램이다. 스위치가 눌리면 두 개의 LED가 교대로 깜빡이고, 스위치가 눌리지 않으면 LED가 꺼진다. 아래는 코드에 대한 자세한 설명이다.

1. 모듈 임포트
from gpiozero import Button
from gpiozero import LED
from time import sleep

gpiozero 라이브러리에서 Button(스위치 핀 제어)과 LED(LED 제어)를 임포트한다.
time.sleep() 함수를 사용하여 특정 시간 동안 기다릴 수 있도록 time 모듈의 sleep 함수를 불러온다.

2. LED 및 버튼 핀 설정
ledRed = LED(23)
ledBlue = LED(24)
swPin = Button(21)

23번 핀에 빨간색 LED, 24번 핀에 파란색 LED, 21번 핀에 스위치(Button)를 설정한다.

3. 스위치 상태 변수 초기화
swState = 0

swState는 스위치 상태를 나타내는 변수이다. 처음에는 0으로 설정되어 LED가 꺼진 상태로 시작한다.

4. 메인 루프
try:
    while 1:
        swValue = swPin.is_pressed
        if swValue == True:
            if swState == 0:
                swState = 1
            else:
                swState = 0
            sleep(0.5)

이 부분에서는 무한 루프를 사용하여 계속해서 버튼 입력과 LED 상태를 제어한다.
swPin.is_pressed를 통해 버튼이 눌렸는지 확인하고, 눌렸다면 swState가 0일 때는 1로 바꾸고, 1일 때는 0으로 바꿔준다. 이 과정에서 버튼이 눌릴 때마다 상태가 토글된다.
sleep(0.5)는 버튼이 눌렸을 때 잠깐 기다리게 해서, 버튼이 너무 빨리 연속으로 눌리는 것을 방지합니다(디바운싱 효과).

5. LED 깜빡임 및 상태 제어
if swState == 1:
            ledRed.on()
            ledBlue.off()
            sleep(0.1)
            ledRed.off()
            ledBlue.on()
            sleep(0.1)
        else:
            ledRed.off()
            ledBlue.off()

swState가 1일 경우, 빨간색 LED를 켜고, 파란색 LED를 끈다. 그런 다음, 잠깐 대기(sleep(0.1)) 후에 빨간색 LED를 끄고 파란색 LED를 켜는 과정을 반복한다.
이로 인해 두 LED가 교대로 깜빡이는 효과를 준다.
swState가 0일 경우, 두 LED 모두 꺼집니다.

6. 종료 시 LED 끄기
except KeyboardInterrupt:
    pass

ledRed.off()
ledBlue.off()

KeyboardInterrupt 예외 처리는 Ctrl + C로 프로그램을 종료할 때 사용된다.
프로그램이 종료되기 전에 LED가 켜져 있을 수 있으므로, 두 LED 모두 꺼지게 처리한다.


<요약>
이 프로그램은 스위치를 눌렀을 때 두 개의 LED가 교대로 깜빡이는 동작을 수행하며, 스위치를 다시 누르면 LED가 꺼진다.


<시연영상>

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

LED를 이용하여 신호등을 만든다. 차량용 신호등과 보행자용 신호등을 만들고 서로 연동하여 동작시켜 본다.


<준비물>
- 브레드보드 : 1개
- LED 빨강 : 2개
- LED 노랑 : 1개
- LED 초록 : 2개
- 220옴(빨빨갈) 저항 : 5개
- 암/수 점퍼케이블 : 6개


<회로도>



<코드1>
from gpiozero import LED
from time import sleep

carLedRed = 2
carLedYellow = 3
carLedGreen = 4
humanLedRed = 20
humanLedGreen = 21

carLedRed = LED(2)
carLedYellow = LED(3)
carLedGreen = LED(4)
humanLedRed = LED(20)
humanLedGreen = LED(21)

try:
    while True:
        carLedRed.value = 0
        carLedYellow.value = 0
        carLedGreen.value = 1
        humanLedRed.value = 1
        humanLedGreen.value = 0
        sleep(3.0)
        carLedRed.value = 0
        carLedYellow.value = 1
        carLedGreen.value = 0
        humanLedRed.value = 1
        humanLedGreen.value = 0
        sleep(1.0)
        carLedRed.value = 1
        carLedYellow.value = 0
        carLedGreen.value = 0
        humanLedRed.value = 0
        humanLedGreen.value = 1
        sleep(3.0)
    
except KeyboardInterrupt:
    pass

carLedRed.value = 0
carLedYellow.value = 0
carLedGreen.value = 0
humanLedRed.value = 0
humanLedGreen.value = 0


<코드1 설명>
위 코드는 GPIO 핀을 사용하여 간단한 교통 신호등을 제어하는 파이썬 프로그램이다. 자동차와 사람의 신호등이 있으며, 자동차의 신호등(빨강, 노랑, 초록)과 사람의 신호등(빨강, 초록)이 서로 번갈아가며 켜지는 방식으로 작동한다.

1. 라이브러리 임포트
from gpiozero import LED
from time import sleep

gpiozero : 라즈베리파이의 GPIO 핀을 쉽게 제어할 수 있는 라이브러리이다. 여기서는 LED 클래스를 사용하여 LED를 제어한다.
time.sleep() : 프로그램 실행을 일시 중지시키는 함수로, 신호등 상태 변화 시간 간격을 제어하는 데 사용된다.

2. GPIO 핀 설정
carLedRed = 2
carLedYellow = 3
carLedGreen = 4
humanLedRed = 20
humanLedGreen = 21

자동차와 사람 신호등의 LED 핀 번호를 지정한다
carLedRed: 자동차의 빨간 신호등(GPIO 핀 2)
carLedYellow: 자동차의 노란 신호등(GPIO 핀 3)
carLedGreen: 자동차의 초록 신호등(GPIO 핀 4)
humanLedRed: 사람의 빨간 신호등(GPIO 핀 20)
humanLedGreen: 사람의 초록 신호등(GPIO 핀 21)

3. LED 객체 생성
carLedRed = LED(2)
carLedYellow = LED(3)
carLedGreen = LED(4)
humanLedRed = LED(20)
humanLedGreen = LED(21)

각 GPIO 핀에 연결된 LED를 LED 객체로 생성한다. 이후 LED 객체의 .on()과 .off() 메서드를 통해 LED를 켜고 끌 수 있다.

4. 메인 루프
try:
    while True:
        carLedRed.value = 0
        carLedYellow.value = 0
        carLedGreen.value = 1
        humanLedRed.value = 1
        humanLedGreen.value = 0
        sleep(3.0)

        carLedRed.value = 0
        carLedYellow.value = 1
        carLedGreen.value = 0
        humanLedRed.value = 1
        humanLedGreen.value = 0
        sleep(1.0)

        carLedRed.value = 1
        carLedYellow.value = 0
        carLedGreen.value = 0
        humanLedRed.value = 0
        humanLedGreen.value = 1
        sleep(3.0)

while True : 무한 루프를 사용하여 신호등 상태를 반복한다.

첫 번째 상태 (자동차 초록, 사람 빨강) :
carLedRed.value = 0 : 자동차 빨간 불 꺼짐
carLedYellow.value = 0 : 자동차 노란 불 꺼짐
carLedGreen.value = 1 : 자동차 초록 불 켜짐
humanLedRed.value = 1 : 사람 빨간 불 켜짐
humanLedGreen.value = 0 : 사람 초록 불 꺼짐

sleep(3.0) : 3초간 유지

두 번째 상태 (자동차 노랑, 사람 빨강) :
carLedRed.value = 0 : 자동차 빨간 불 꺼짐
carLedYellow.value = 1 : 자동차 노란 불 켜짐
carLedGreen.value = 0 : 자동차 초록 불 꺼짐
humanLedRed.value = 1 : 사람 빨간 불 켜짐
humanLedGreen.value = 0 : 사람 초록 불 꺼짐

sleep(1.0) : 1초간 유지

세 번째 상태 (자동차 빨강, 사람 초록) :
carLedRed.value = 1 : 자동차 빨간 불 켜짐
carLedYellow.value = 0 : 자동차 노란 불 꺼짐
carLedGreen.value = 0 : 자동차 초록 불 꺼짐
humanLedRed.value = 0 : 사람 빨간 불 꺼짐
humanLedGreen.value = 1 : 사람 초록 불 켜짐

sleep(3.0) : 3초간 유지.

5. 종료 시 LED 끄기
except KeyboardInterrupt:
    pass

carLedRed.value = 0
carLedYellow.value = 0
carLedGreen.value = 0
humanLedRed.value = 0
humanLedGreen.value = 0

KeyboardInterrupt : 사용자가 Ctrl+C로 프로그램을 종료할 때 발생하는 예외를 처리한다.
프로그램이 종료될 때 모든 LED를 꺼서 안전하게 정리한다.


<코드1 요약>
이 코드는 간단한 교통 신호등 시스템을 구현한다.
자동차와 사람의 신호등이 번갈아 가며 켜지고 꺼지며, 신호 변화 간의 대기 시간은 각각 3초 또는 1초이다.
Ctrl + C로 프로그램을 종료할 수 있으며, 종료 시 모든 LED는 꺼진다.


<코드2>
from gpiozero import LEDBoard
from time import sleep

leds = LEDBoard(2,3,4,20,21)

try:
    while True:
        leds.value = (0,0,1,1,0)
        sleep(3.0)
        leds.value = (0,1,0,1,0)
        sleep(1.0)
        leds.value = (1,0,0,0,1)
        sleep(3.0)
    
except KeyboardInterrupt:
    pass

leds.off()


<코드2 설명>
위 코드는 코드1과 같은 결과를 도출한다. LEDBoard 클래스를 이용하여 한 번에 여러 개의 LED를 다루고 있다.
이는 프로그램 간소화에 도움을 준다.

1. 라이브러리 임포트
from gpiozero import LEDBoard
from time import sleep

gpiozero 라이브러리에서 LEDBoard를 사용하여 여러 개의 LED를 제어한다.
time.sleep() 함수를 사용하여 신호 변경 간의 시간을 설정한다.

2. LED 초기화
leds = LEDBoard(2, 3, 4, 20, 21)

LEDBoard 클래스를 사용하여 5개의 GPIO 핀(2, 3, 4, 20, 21)에 연결된 LED를 그룹화한다.
GPIO 2, 3, 4는 자동차 신호등의 LED이고, GPIO 20, 21은 사람 신호등의 LED 이다.

3. 메인 루프
try:
    while True:
        leds.value = (0, 0, 1, 1, 0)
        sleep(3.0)
        leds.value = (0, 1, 0, 1, 0)
        sleep(1.0)
        leds.value = (1, 0, 0, 0, 1)
        sleep(3.0)

while True : 무한 루프를 사용하여 신호등이 계속 반복적으로 작동하게 한다.

첫 번째 상태
leds.value = (0, 0, 1, 1, 0) : 이 코드는 각각의 LED 상태를 나타내며, LEDBoard에 포함된 5개의 LED 중에서 다음과 같은 상태를 설정한다:
첫 번째와 두 번째 LED는 꺼짐 (0)
세 번째와 네 번째 LED는 켜짐 (1)
다섯 번째 LED는 꺼짐 (0)

sleep(3.0): 이 상태를 3초간 유지합니다.

두 번째 상태
leds.value = (0, 1, 0, 1, 0) : 두 번째 상태에서
첫 번째, 세 번째, 다섯 번째 LED는 꺼짐 (0)
두 번째와 네 번째 LED는 켜짐 (1)

sleep(1.0): 이 상태를 1초간 유지합니다.

세 번째 상태
leds.value = (1, 0, 0, 0, 1) : 세 번째 상태에서
첫 번째와 다섯 번째 LED는 켜짐 (1)
나머지 LED는 꺼짐 (0)

sleep(3.0): 이 상태를 3초간 유지합니다.

4. 종료 처리
except KeyboardInterrupt:
    pass

leds.off()

KeyboardInterrupt : 사용자가 Ctrl+C를 눌러 프로그램을 종료할 때 발생하는 예외를 처리한다.
leds.off() : 프로그램이 종료되면 모든 LED를 꺼서 안전하게 마무리한다.


<코드2 요약>
이 코드는 LEDBoard를 사용하여 5개의 LED를 제어하며, 각각의 상태가 설정된 시간 동안 유지된다.
세 가지 상태가 반복되며, 각 상태는 3초 또는 1초 동안 지속된다.
Ctrl+C로 프로그램을 종료할 수 있으며, 종료 시 모든 LED가 꺼진다.
LEDBoard를 사용함으로써 여러 LED를 더 효율적으로 제어할 수 있다.


<시연영상>

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

빨간색 LED가 깜빡여 위험을 알리는 경광등


<준비물>
- 브레드 보드 : 1개
- LED 빨강 : 3개
- 220옴(빨빨갈) 저항 : 3개
- 암/수 점퍼케이블 : 4개


<회로도>



<코드>
from gpiozero import LED
from time import sleep

led1 = LED(16)
led2 = LED(20)
led3 = LED(21)

try:
    while 1:
        led1.on()
        led2.on()
        led3.on()
        sleep(0.1)
        led1.off()
        led2.off()
        led3.off()
        sleep(0.1)
    
except KeyboardInterrupt:
    pass

led1.off()
led2.off()
led3.off()


<코드설명>
위 코드는 gpiozero 라이브러리를 사용하여 3개의 LED를 제어하는 파이썬 프로그램이다. 간단히 설명하면, 세 개의 LED를 빠르게 깜빡이도록 설정한 코드이다.

1. 라이브러리 임포트
from gpiozero import LED
from time import sleep

gpiozero : 라즈베리파이의 GPIO 핀을 쉽게 제어할 수 있는 라이브러리이다. 여기서는 LED 클래스를 이용하여 LED를 제어한다.
time.sleep() : 프로그램 실행을 일시 중지하기 위한 함수로, LED를 켜고 끄는 시간 간격을 조정하는 데 사용된다.

2. LED 핀 설정
led1 = LED(16)
led2 = LED(20)
led3 = LED(21)

각 LED를 라즈베리파이의 GPIO 핀에 연결하고, LED 객체로 설정한다.
led1 : GPIO 핀 16에 연결
led2 : GPIO 핀 20에 연결
led3 : GPIO 핀 21에 연결

3. 메인 루프
try:
    while True:
        led1.on()
        led2.on()
        led3.on()
        sleep(0.1)
        led1.off()
        led2.off()
        led3.off()
        sleep(0.1)
except KeyboardInterrupt:
    pass

while  True : 무한 루프를 사용하여 LED를 계속 깜빡이게 한다.
led1.on(), led2.on(), led3.on() : 각 LED를 켠다.
sleep(0.1) : 0.1초 동안 LED가 켜진 상태로 유지된다.
led1.off(), led2.off(), led3.off() : 각 LED를 끈다.
sleep(0.1) : 0.1초 동안 LED가 꺼진 상태로 유지된다.
try-except : 프로그램을 실행 중 Ctrl+C로 종료할 때 KeyboardInterrupt 예외를 처리하여 루프를 빠져나가도록 한다.

4. 프로그램 종료 시 LED 끄기
led1.off()
led2.off()
led3.off()

프로그램이 종료될 때 모든 LED를 꺼서 안전하게 정리한다.


<요약>
세 개의 LED를 GPIO 핀 16, 20, 21에 연결하여 0.1초 간격으로 켜고 끄는 동작을 반복한다.
사용자가 Ctrl + C를 누르면 프로그램이 종료되며, 종료 시 모든 LED는 꺼진다.


<시연영상>

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

시트로넬라만으로도 효과적인 모기 기피제가 되지만, 더 강력하고 오래 지속되는 모기 기피제를 원한다면 다른 에센셜 오일을 함께 블렌딩하여 모기 퇴치 효과를 강화할 수 있다. 여러 에센셜 오일을 함께 사용하면 시너지 효과를 얻을 수 있어, 모기를 더 잘 쫓아내고 기피 효과가 더 오래 지속될 수 있다.

시트로넬라, 라벤더, 유칼립투스, 페퍼민트



<필요한 재료> : 10ml 스프레이
1. 시트로넬라(Citronella) 오일 (탑) : 5방울 (모기 기피에 탁월한 주성분)
2. 라벤더(Lavender) 오일 (미들) : 2방울 (진정 효과와 함께 모기를 퇴치)
3. 유칼립투스(Eucalyptus) 오일 (탑) : 2방울 (항염 작용과 함께 모기 기피 효과)
4. 페퍼민트(Peppermint) 오일 (탑) : 1방울 (시원한 향과 함께 벌레 퇴치에 효과적)
5. 에탄올(또는 무수알코올) : 1~2ml
6. 정제수 : 8~9ml (나머지 용량을 채우기 위해 사용)


<제조 방법>
1. 10ml 스프레이 병 준비 : 병을 깨끗이 세척하고 건조한다.
2. 에탄올 넣기 : 병에 에탄올 1~2ml를 먼저 넣는다. 에탄올은 오일이 물과 잘 섞이도록 도와준다.
3. 에센셜 오일 추가 :
시트로넬라 오일 5방울
라벤더 오일 2방울
유칼립투스 오일 2방울
페퍼민트 오일 1방울
위의 오일을 모두 병에 넣습니다.
4. 정제수 추가 : 나머지 공간에 정제수 8~9ml를 채운다.
5. 잘 흔들기 : 병의 뚜껑을 닫고 잘 흔들어 오일과 물이 잘 섞이도록 한다.


<사용 방법>
1. 사용 전에 흔들기 : 에센셜 오일이 물과 잘 섞이도록 사용 전에 항상 흔들어준다.
2. 옷에 뿌리기 : 피부에 닿지 않도록 옷에 가볍게 분사한다.


<레시피 설명>
시트로넬라 오일 : 모기를 가장 잘 쫓는 오일로, 모기 기피의 핵심 오일이다.
라벤더 오일 : 진정 효과가 있으며, 벌레들이 싫어하는 향을 가지고 있다.
유칼립투스 오일 : 모기와 다른 벌레들을 퇴치하는 데 효과적이며, 항염 작용으로 피부를 보호하는 역할도 할 수 있다.
페퍼민트 오일 : 시원한 멘톨 향이 모기를 쫓고, 다른 벌레 퇴치에도 도움이 된다.


<주의 사항>
옷감에 얼룩이 생기지 않도록 테스트 후 사용한다.
피부에 직접 사용하지 않도록 주의한다.
어린이나 임산부에게는 적합한지 확인하고 사용하는 것이 좋다.


이 레시피는 여러 오일을 혼합하여 모기 기피 효과를 극대화하고, 오일의 시너지 효과로 더 오래 지속되는 보호 효과를 얻을 수 있다.

오렌지향을 더 오래 지속시키고 부각시키기 위해서는, 베이스 노트미들 노트의 에센셜 오일을 함께 블렌딩하여 향을 안정화시키는 것이 좋다. 오렌지스윗 오일은 탑 노트에 해당하며, 향이 빠르게 퍼지고 빨리 사라지는 특징이 있다. 여기에 향을 안정시키고 오렌지의 상쾌함을 더 부각시켜줄 오일을 섞으면, 향이 더 오래 지속되고 깊이감을 줄 수 있다.

오렌지스윗, 프랑킨센스, 일랑일랑, 레몬


<블렌딩 레시피>
1. 오렌지스윗(Sweet Orange) 오일 (탑) : 6방울 (상쾌한 오렌지 향의 메인)
2. 프랑킨센스(Frankincense) 오일 (베이스) : 2방울 (베이스 노트로 향을 안정화하고, 오렌지향을 부각)
3. 일랑일랑(Ylang Ylang) 오일 (베이스) : 1방울 (플로럴한 향이 오렌지의 달콤함을 강조)
4. 레몬(Lemon) 오일 (탑) : 1방울 (오렌지향의 상쾌함을 더 강조해 줌)


<5ml 블렌딩 레시피>
1. 오렌지스윗(Sweet Orange) 오일 (탑) : 60방울
2. 프랑킨센스(Frankincense) 오일 (베이스) : 20방울
3. 일랑일랑(Ylang Ylang) 오일 (베이스) : 10방울
4. 레몬(Lemon) 오일 (탑) : 10방울


<레시피 설명>
- 오렌지스윗 오일 : 이 블렌딩의 주요 향으로, 오렌지의 달콤하고 상쾌한 향을 메인으로 설정한다.
- 프랑킨센스 오일 : 베이스 노트로 향의 깊이를 더해주고, 오렌지의 달콤함을 부드럽게 지속시켜준다.
- 일랑일랑 오일 : 플로럴한 향이 오렌지의 과일 향과 잘 어우러져 더 관능적이고 풍부한 향을 부각시킨다.
- 레몬 오일 : 오렌지와 잘 어울리는 시트러스 계열로, 오렌지의 상쾌함을 더 강조하며, 향의 날카로움을 줄여준다.


<사용 방법>
1. 인헤일러 준비 : 흡수 스틱에 위의 블렌딩 오일을 차례대로 떨어뜨린다. 총 10방울이다. (떨주는 순서는 크게 중요하지 않음)
2. 조립 : 인헤일러를 조립한 후, 필요할 때마다 코 가까이에 대고 깊게 흡입한다.


<효과>
- 이 블렌딩은 오렌지의 상쾌한 향을 유지하면서, 프랑킨센스와 일랑일랑을 통해 향이 오래 지속되도록 도와준다.
- 레몬 오일이 오렌지향을 더 생동감 있게 만들어, 더 부각된 오렌지향을 경험할 수 있다.

이 블렌딩을 사용하면 오렌지향을 오래 유지하면서도 더욱 풍부하고 상쾌한 느낌을 즐기실 수 있다!

인헤일러

+ Recent posts