라스베리 파이가있는 LED 표시기 만들기 (이메일, 날씨 또는 기타 용도)
Raspberry Pi는 모든 종류의 프로젝트 (날씨 알림, 새 이메일 등)에 표시등을 부착 할 수있는 멋진 소형 플랫폼을 만듭니다. LED 모듈을 Pi에 연결하고 기본 알림을 설정하는 방법을 보여줍니다..
왜 이것을하고 싶은가요??
왜냐하면 그것은 재미 있습니다. 프로젝트에서 파생 된 이점을 정확히 요약 한 상단에 약간의 소개를 포함하는 많은 자습서와 달리, 이점은 단순히 재미 만 있기 때문에 의사 소통은 꽤 짧습니다..
Raspberry Pi는 함께 놀고, 전자 공학을 실험하고, 프로그래밍을 배우기에 완벽한 장치입니다. 아무도 필요 예를 들어, 부엌에있는 주변 비가 표시기가 있지만 건물을 짓는 것은 재미있는 일이며 잠재적으로 폭풍우가 치는 날에 우산을 가져올 수있는 좋은 신호입니다.
내가 무엇이 필요 하나?
튜토리얼을 따라 가려면 몇 가지가 필요합니다. 먼저, 이전 튜토리얼을 따랐다 고 가정합니다. HTG Guide to Raspberry Pi (Raspberry Pi에 Rasbian을 설치하는 데 필요한 기본 정보가 있습니다).
예산으로이 프로젝트를 수행하고 싶다면 최신 모델 인 Raspberry Pi가 작업에 과도하게 과장되어 있다는 말을 할 수 있습니다. 낡은 나무 딸기 파이에서 먼지를 날려 버리는 것이 좋습니다. 옷장에서 또는 eBay 또는 유사한 떨어져 싼 사용 된 하나를 주워. 예산을 현명하게 줄이면 라스베리 파이 1 모델 A 또는 모델 B가 eBay에서 10-15 달러를 벌어 들여 새로운 35 달러짜리 최신 세대 Pi를 구입하는 것보다이 프로젝트에 가장 적합합니다..
Raspbian이 설치된 기능 Pi 유닛을 설치하는 것 외에도 다음 작업이 필요합니다.
- 1 LedBorg 모듈 (~ 5 달러, 영국에서 미국으로 4 달러 배송, 모든 라스베리 파이 모델과 함께 작동).
- 1 Clear Raspberry Pi Case 이와 같은 Pi 모델과 호환되는 Raspberry Pi 1 B 케이스.
노트 : Clear / frosted Pi 케이스는 완전히 선택 사항이지만 현재 불투명 케이스를 사용 중이면 LED 표시기가 내부에 숨겨집니다. 케이스에 구멍을내어 빛을 내 보내거나 Adafruit Industries와 같은 브레이크 아웃 키트와 함께 GPIO 확장 케이블을 사용하여 LedBorg를 귀하의 Raspberry Pi에 연결하십시오. 브레이크 아웃 케이블을 사용하면 프로젝트 비용이 약 8 달러가되지만 최종 제품을 사용자 정의 할 수있는 가능성이 높아 지므로 LED를 사물 내부 또는 조명하려는 대상 아래에보다 쉽게 배치 할 수 있습니다.
LedBorg 설치
Piborg 조직은 작고 저렴한 LED 모듈 인 LedBorg를 제작할 수는 있지만, 처음부터 완벽하게 처음부터 끝까지 LED 표시기를 만들 수는 있습니다 (그리고 검색 엔진 조회로 그렇게 많은 사람들이 나타납니다) Raspberry Pi LED 표시기 프로젝트의 기초로 사용하지 마십시오..
Pi의 GPIO 핀 위에 직접 맞춰 지도록 설계되었으므로 모듈 설치가 간단합니다. 먼저, 당신의 파이를 끄고 케이스를 엽니 다..
설치 과정에서 가장 중요한 부분은 LedBorg 아이콘이 Raspberry Pi 보드의 RCA 모듈에 가장 근접하도록 모듈의 방향을 정하는 것입니다 (따라서 LedBorg의 가장자리는 돌출부가있는 Pi 보드의 가장자리와 동일 평면에 있습니다) Pi 보드 위에 매달려있는 LedBorg의 일부분). 위의 사진보기.
Pi 보드를 열어 놓은 상태에서, 특히 USB 포트 옆에있는 LED 표시기를 덮을 좋은 시간입니다. 특히 명확한 케이스를 사용하는 경우 특히 좋습니다. 전원 및 네트워크 표시등이 너무 밝아서 LedBorg 표시기를 읽는 것을 혼동하지 않으려 고합니다..
우리는 흰색의 전기 테이프로 우리를 덮었습니다. 이것은 우리가 여전히 그들을 참조 할 수있을만큼 충분히 흐리게 만들었지 만 LedBorg보다 훨씬 어둡므로 더 이상 산만하지 않았습니다..
일단 LedBorg를 설치하고 선택 사양으로 Pi의 LED 표시기를 전기 테이프로 덮었 으면 이제는 케이스를 닫을 때입니다. 튜토리얼의 다음 단계로 이동하기 전에 파이를 부팅하십시오..
LedBorg 소프트웨어 설치
PiBorg는 명령 줄에서 LedBorg에 액세스 할 수있는 드라이버와 GUI 컨트롤러를 모두 포함하는 LedBorg 용 훌륭한 소프트웨어 패키지를 제공합니다..
시작하기 전에 Rasbian 버전 및 Raspberry Pi 보드 개정 번호에 맞는 패키지를 가져와야합니다..
Raspberry Pi 보드에 장착 구멍이없는 경우 Revision 1입니다. Raspberry Pi에 장착 구멍 (USB 포트와 전원 포트와 HDMI 포트 사이에 있음)이 있으면 Revision 2입니다. 또한 커널 버전을 알아야합니다 귀하의 Rasbian 설치. 터미널을 열고 다음 명령을 입력하여 확인하십시오.
uname -r
리비전 번호와 커널 번호가 있으면 패키지 섹션을 방문하여 패키지 링크를 가져올 수 있습니다. 이 경우 우리는 3.6.11 커널과 함께 Revision 1 보드를 사용하고 있으므로 raspbian-2013-02-09-rev1.zip 파일.
모든 물품을 설치하려면 Pi에 터미널을 열어야합니다. 다음 명령을 입력하여 LedBorg 패키지를 설치하십시오.
노트 : 세 번째 명령의 URL을 보드 / 커널 조합에 대한 패키지의 URL로 대체해야합니다.
mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
setup.zip을 압축 해제하십시오.
chmod + x install.sh
./install.sh
이제 LedBorg 드라이버 용 GUI 래퍼와 드라이버가 설치되었습니다. Raspbian 데스크탑에서 GUI 래퍼 아이콘을 볼 수 있습니다 :
GUI 래퍼를 실행하려면 LedBorg 아이콘을 클릭하십시오. 다음과 같이 색상 선택기 인터페이스로 처리됩니다.
이제는 모듈이 제대로 작동하는지 확인하는 완벽한 시간입니다. 검은 색을 제외하고 어떤 색을 선택하여 시도해보십시오. 몇 가지 색상을 선택하여 테스트 해 보겠습니다.
좋은데! 밝고 우리가 프로젝트를 위해 주문한 케이스의 젖빛 플라스틱은 적당한 확산을 제공합니다. 계속 진행하기 전에 LED 모듈을 더 사용하려면 Demo Mode (데모 모드)를 클릭하십시오.
데모 모드에서는 다양한 색상으로 모든 색상을 순환하고 고 / 저 출력을 체크하고 LED 모듈을 보.
데모 모드 섹션에서는 LedBorg를 여러 지표 중 첫 번째 지표로 설정할 수 있습니다. 색상 섹션에서 CPU를 선택하면 LED가 녹색에서 노란색에서 빨간색으로 변경되어 Raspberry Pi의 ARM 프로세서에 대한로드를 나타냅니다. 빠른 속도로 LED를 빠르게 업데이트하고 CPU 표시기를 유용하게 사용하는 대신주의가 산만 해지도록하려면 속도를 느리게 변경하는 것이 좋습니다.
GUI 인터페이스를 사용하여 색상을 선택하는 것 외에도 RGB 값을 사용하여 터미널에서 색상을 선택할 수 있습니다. 터미널을 열고 다음 명령을 입력하여 LED를 끕니다.
echo "000"> / dev / ledborg
LedBorg가 RGB 값을 처리하는 방식은 0은 채널이 꺼져 있음을 의미하고 1은 채널이 절반 전력을 의미하고 2는 채널이 최대 전력임을 의미합니다. 예를 들어, 001은 Red 채널을 0 %로, Green 채널을 0 %로, Blue 채널을 50 %로 설정합니다..
값을 002로 변경하면 LED 출력은 파란색으로 유지되지만 파란색 채널이 현재 100 % 출력이므로 밝아집니다. 값을 202로 변경하면 적색과 청색이 최대 전력으로 결합하여 자홍색으로 변합니다..
이제 수동으로 LED를 조작하는 방법을 알았으므로 스크립트를 사용하여 LED를 간단한 표시등에서 실제 표시기로 전환하는 방법을 살펴 보겠습니다.
비 표시기로 LedBorg 구성하기
튜토리얼의이 부분에서는 LedBorg LED 모듈을 우리 위치의 일기 예보를 기반으로 한 비 지시기로 전환하기 위해 몇 가지 사항을 함께 섞어 보겠습니다. 우리는 Python 스크립트를 사용하여 날씨 API를 호출합니다. 날씨 API를 사용하면 당일 비가 올 기회를 읽은 다음 LED를 밝은 파란색으로 토글하여 예상 비를 나타낼 수 있습니다.
먼저 Weather Underground에 API 액세스 키를 가져와야합니다. 개인 용도 및 소규모 개발 프로젝트의 경우 API는 무료입니다. 날씨 API 가입 페이지를 방문하고 API 키에 가입하십시오..
API 키를 받으면 날씨 지하를 방문하여 모니터링 할 도시를 검색하십시오. 우리의 경우 우리는 San Fransisco, CA를 모니터링 할 것입니다. San Fransisco의 예측 페이지 URL은 다음과 같습니다.
http://www.wunderground.com/US/CA/San_Francisco.html
우리의 목적에서 중요한 부분은 URL의 마지막 부분 인 /CA/San_Francisco.html입니다. 이 도구를 사용하여 API 도구의 예측 URL을 수정합니다. 기본 URL은 다음과 같습니다.
http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json
귀하의 날씨 지하 검색 결과에서 가져온 URL의 API 키, 두 자로 된 주 코드 및 도시 이름을 입력하여 미국 도시에 대한 예측을 생성 할 수 있습니다.
API 키와 주 / 도시가 삽입 된 API URL을 가져온 다음 Leafpad를 사용하여 Pi에 새 텍스트 문서를 만들고 다음 코드를 붙여 넣어 다음 Python 스크립트를 편집 할 수 있습니다.
urllib2에서 가져 오기 urlopen
수입 json
req = urlopen ( 'http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json [ 'forecast'] [ 'txt_forecast'] [ 'forecastday'] [0] [ 'pop'])# 다음은 디버깅 값입니다..
# 해시를 수정하고 변경합니다.
# 테스트 할 0-100의 정수
# LED 응답.# pop = 0
print '현재 강수량 확률은 입니다.'format (pop)
# 기본 설정은 LED를 켜는 것입니다.
비가 내릴 확률은 20 % 이상입니다. 조정할 수 있습니다.
# 원하는 경우 "pop if> 20 :"의 값.
pop> 20 인 경우 :
LedBorg = open ( '/ dev / ledborg', 'w')
LedBorg.write ( '002')
델 보그 보그
인쇄 ( '비!')
그밖에:
LedBorg = open ( '/ dev / ledborg', 'w')
LedBorg.write ( '000')
델 보그 보그
인쇄 ( '비!')
파일을 wunderground.py로 / home / pi / 디렉토리에 저장하십시오. 터미널을 열고 다음 명령을 입력하십시오.
파이썬 wunderground.py
API 키와시 /도 코드를 올바르게 입력했다면 다음과 같은 응답이 표시됩니다.
해당 지역에서 강수량이 예측된다면 LedBorg 산출물은 다음과 같이 보일 것입니다 :
비오는 날을 기다리면 스크립트를 제대로 테스트하는 것이 지루할 수 있습니다. 현재 귀하의 지역에 비가 내릴 확률이없고 LED가 켜지는 것을보고 싶다면 wunderground.py 스크립트를 편집하고 13 행의 "pop = pop"통과 값을 60과 같이 20보다 큰 값으로 대체하십시오 우리 예측이 돌아왔다. 완료되면 선을 "pop = pop"으로 다시 변경하십시오..
마지막 단계는 cron 작업을 설정하여 방금 저장 한 스크립트를 자동으로 실행하여 LED 표시기를 최신 상태로 유지하는 것입니다. 이 작업은이 스크립트와 다음에 나오는 전자 메일 표시기에 모두 필요하므로 다른 스크립트를 설정하는 방법을 보여준 후에 cron 작업 설정에 대해 다룰 것입니다..
LedBorg를 Gmail 표시기로 구성
받은 편지함에서 새 이메일을 보는 도파민 수정을 좋아하지 않는 사람은 누구입니까? 이 자습서의 이번 부분에서는 LedBorg를 새로운 Gmail 표시기로 사용하는 방법을 보여 드리겠습니다. 지난 번과 마찬가지로 외부 입력 (이 경우 API 대신 Atom 피드)과 LED를 구동하는 간단한 스크립트를 결합합니다.
우리는 Python RSS / Atom 피드 읽기 도구 인 FeedParser를 설치하여 Python 설치의 기능을 약간 확장해야합니다. 터미널을 열고 다음 명령을 입력하십시오.
sudo easy_install feedparser
설치가 완료되면 Gmail 검사 스크립트를 작성하도록 설정할 수 있습니다. 다시 Leafpad를 사용하여 다음 텍스트를 편집기에 붙여 넣습니다. 확인하려는 Gmail 계정의 사용자 이름과 비밀번호와 일치하도록 사용자 이름과 비밀번호를 변경하십시오..
피드 파서 가져 오기
# Gmail 사용자 이름을 입력하십시오.
# 및 암호. 포함하지 마십시오.
# @ gmail.com 부분
# 사용자 이름.
username = "username"
암호 = "암호"
mail = int (feedparser.parse ( "https : //"+ 사용자 이름 + ":"+ 비밀번호 + "@ mail.google.com/gmail/feed/atom") ["피드 "]
# 다음은 디버깅 값입니다..
# 해시를 수정하고 변경합니다.
# 테스트 할 0 또는 1의 정수
# LED 응답.# mail = 0
메일> 0 인 경우 :
LedBorg = open ( '/ dev / ledborg', 'w')
LedBorg.write ( '020')
델 보그 보그
print ( 'Mail!')
그밖에:
LedBorg = open ( '/ dev / ledborg', 'w')
LedBorg.write ( '000')
델 보그 보그
인쇄 ( '메일이 없습니다!')
스크립트를 gmailcheck.py로 저장하십시오. 터미널을 열고 다음 명령을 입력하십시오.
파이썬 gmailcheck.py
Gmail받은 편지함에 이메일이 있으면 LED가 녹색으로 바뀌며 다음과 같은 응답이 표시됩니다.
Gmail받은 편지함에 메일이 있다면 LedBorg는 다음과 같이 보입니다 :
비 검사 스크립트와 마찬가지로 디버깅 값이 포함되어 있습니다. 새 전자 메일이없는 경우받은 편지함 수를 1로 늘리는 전자 메일을 보내거나 주석 해시를 편집하고 디버깅 줄을 "mail = 1"로 변경하여 스크립트를 테스트 할 수 있습니다. 테스트가 완료되면 줄을 되돌 리도록하십시오..
튜토리얼의 다음 섹션으로 이동하여 Gmail 스크립트를 일정대로 실행하도록 설정하십시오..
스크립트를 실행하도록 Cron 작업 설정
이제 우리는 두 개의 스크립트를 가지고 있고, LED 표시기를 최신 상태로 유지하기 위해 하루 종일 실행하기 위해 cron 작업을 설정해야합니다.
우리가 원했던 첫 번째 작업은 이전 실험에서 현재 켜져 있다면 LED를 끄는 것입니다. 터미널 유형 :
echo "000"> / dev / ledborg
명령 줄에있는 동안 cron 편집기를 열 수 있습니다. 이전에 cron 작업을 한 번도 해 본 적이 없다면 여기에서 사용 방법에 대한 안내서를 확인하시기 바랍니다. 즉, 여기에 기본 일정 설정을 안내 할 것입니다..
터미널 유형 :
sudo crontab -e
그러면 Nano 텍스트 편집기에서 Raspbian cron 테이블이 열립니다. 화살표 키를 사용하여 맨 아래까지 스크롤하십시오. 여기서 우리는 Python 스크립트에 대해 반복적 인 cron 작업을 설정합니다..
rain 스크립트를 설정하려면 cron 테이블에 다음 행을 입력하십시오.
* / 5 * * * * python /home/pi/wunderground.py
Ctrl + X를 눌러 종료하십시오. 예를 선택하여 기존 cron 테이블을 저장하고 겹쳐 쓰십시오. 우리가 cron 테이블에 입력 한 값 "* / 5 * * * *"는 5 분마다 실행되도록 스크립트를 설정합니다..
예상 비를 확인하는 스크립트의 경우 5 분마다 시간이 걸릴 수 있습니다. 너무 공격적이라고 주장 할 수도 있습니다.하지만 이메일을 계속 지키려는 경우 알림 기간이 너무 길어집니다 . Gmail 알림 스크립트의 일정을 설정하려면 cron 테이블에 다음 줄을 입력하십시오.
* / 1 * * * * python /home/pi/wunderground.py
이 항목은 훨씬 빠른 업데이트 알림을 위해 매분 gmailcheck.py 스크립트를 실행합니다..
그게 전부입니다! if / else 문을 우리 외부에서 해제하고 새로운 변수를 사용하여 자신의 Python 스크립트를 시험해 볼 수 있습니다. 데이터에 대한 입력 소스를 찾을 수 있다면 Python 스크립트 주식 시장 평균, 꽃가루 수, 트위터 언급에서 변수로 변환 할 수 있습니다. API가 있으면 주변 LED 표시기로 바꿀 수 있습니다.
마지막으로, 나는이 프로젝트에서 일했던 모든 위대한 자원에 감사 드리고 싶습니다. 내가 적극적으로 프로그램을 작 성한 이래로 10 년이 조금 넘었으며 먼지와 녹슬림을 없애기 위해 몇 가지 노크가 필요했습니다. / r / LearnPython의 기고가가 Weather Underground의 API 산출물에 대해 궁금해했습니다. Mitch Tech에서 Mitch Tech가 Gmail Atom 피드를 처리하여 LedBorg에서 쉽게 구문 분석 한 방법을 연구하고 Code Academy에서 Python 학습 모듈을 공부하는 것이 전에 사용하지 못했던 언어의 기본 구문과 구조를 고르는 좋은 방법입니다..