라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

라즈베리파이는 보통 3.3V, 5V를 줄 수 있다. 보통 발광다이오드의 일반 전류와 최대 전류는 아래의 표와 같다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

옴의 법칙인 V = I R 식으로인해서 전압은 3.3V, 5V 전류는 20mA, 50mA로 계산해서 적당한 저항의 값을 계산해보면 아래의 표와 같다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

전압 3.3V를 쓸때는 66~165옴의 저항을 써야하고, 전압 5V일때는 100~250옴의 저항을 사용해줘야 LED를 불편함없이 쓸 수 있다.

다용도 입출력(GPIO)

입력이나 출력을 포함한 동작이 런타임 시에 사용자에 의해 제어될 수 있는, 집적 회로나 전기 회로 기판의 디지털 신호 핀이다.

LED를 연결해서 켜보겠다.

금요일에 했던 gpio.py를 복사해서 gpio_led.py를 만든다.

+를 1번에 꼿고 -를 39번 에 꼿으면 불이 들어온다.

칠판에 적혀 있는것은 설계도 이다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu
라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

이제 깜빡깜빡하는 LED를 만들어 보겠다.

+를 1번에 꼿아 놓은건 그대로 나두고 -를 40번으로 옮긴다.

vi gpio._led.py를 친다

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

gpio_led.py의 내용을 밑과 같이 바꾼다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

입력하고 나서 :wq + enter하고 나온다.

이제 되는지 실행해보겠다.

python3 gpio_led.py를 치면 밑에 나오는것 같이 나온다

그리고 LED가 10번 깜빡깜빡한다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

TIP 꼿는 번호가 생각나지 않으면 밑에 그림을 참조

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu
라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

PWM 제어

PWM(Pulse Width Modulation)제어는 주기적으로 반복되는 ON OFF 신호를 통해서 모터, 팬의 속도나 LED 등의 밝기 등을 제어할수 있다. 반복되는 Pulse 신호의 주기에서  ON 신호가 지속되는 시간의 비율을 Duty Cycle 이라고 하면 이 듀티비가 클수록 팬속도나 LED의 밝기가 커진다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

밑에는 감성 LED를 나타낸다.

vi gpio._led.py치고 들어가서 밑에 코드로 바꾼다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

python3 gpio_led.py으로 실행하면 된다.

밑에 코드를 바꾸고 실행하면 서서시 밝아지고 서서히 꺼지는 감성 LED가 된다.

Tip

스트립트 해석 엔진

jsp,php,asp

Flask

파이썬은 자체적으로 내장 웹서버 모듈을 가지고 있다.

웹 프로그램을 만드는 방법으로는 CGI스크립트,WSGI로 만드는 방법이 있다.

허나 우리는 이 방법을 이용하지 않고 웹서버를 구축할때 좋은 경량 웹 프레임워크 Flask를 사용할것이다.

대표적으로 웹 프레임워크로 장고와 플라스크가 있다

장고는 풀스택 프레임워크이다. 웹 프로그래밍을 할때 필요로 하는 모든 것이 갖추어진 프레임워크라는 뜻이다.

반면 플라스크는 경량 웹 프레임워크입니다. 가볍기 때문에 그 만큼 아주 기본적인 기능만 있다.

복잡한 웹 프로그램을 만들떄는 장고를 사용하는것이 더 유리하다.

허나 간단히 웹 프로그램을 만들때는 플라스크를 이용하는게 더 유리하다.

python -V을 통해 파이썬 버전을 확인

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

which는 위치를 확인하는 명령어

python의 위치를 확인한다.

user/bin으로 이동

pwd로 확인

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

ll python으로 시작하는 모든것을 찾는다.

l은 링크를 의미한다.

python에서 python2로

python2 에서 python2.7로

python3에서 python 3.7로

python 3.7이 본체 같은 느낌이다

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

sudo rm python으로 python을 지운다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

sudo ln -s를 사용하여 디폴트 파이썬을 바꿔줍니다.
ex) sudo ln -sf [new_python_path] [privious_python_path]

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

책에는 다 따로 만드는것으로 나왔는데 -p를 통해서 한번에 다 만들수 있게 되었다.

webapps안에 ch06안에 helloworld이다.

cd를 통해  webapps/ch06/helloworld으로 이동

pwd로 확인

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

vi 편집기로 간다

vi app_start.py로 고고

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

vi app_start.py에 들어가서 밑에 것을 입력한다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

python app_start.py를 입력하고 실행한다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

인터넷에 들어가서 192.168.0.169:5000을 누르면 밑에 화면이 나온다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

라이브러리 path가 적용된 기본 폴더들을 확인하려면 밑에와 같이 하면 된다.

$python

>>> import sys

>>> sys.path

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

vi app_start3.py에 들어가서 밑에 것을 입력한다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

python app_start3.py를 입력하고 실행 한다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu

인터넷에 들어가서 192.168.0.169:5000/on을 누르면 밑에 화면과 같이 불이 들어온다.

라즈베리파이 gpio 전류 - lajeubelipai gpio jeonlyu