Hologram Nova 스타터 키트: 라즈베리 파이 종합 설정 & 센서 통합 가이드
Nova가 처음이신가요? 라즈베리 파이가 처음이신가요? 파이썬이 처음이신가요? 이 튜토리얼은 Hologram Nova 스타터 키트의 모든 단계를 안내합니다.
시작하며
이 튜토리얼은 Hologram.io에서 제공하는 공식 Hologram Nova 스타터 키트의 일부입니다.
라즈베리 파이 설정 - 헤드리스
참고: 이미 SD 카드에 Raspbian이 있고 SSH 접속이 가능하다면 다음 섹션으로 건너뛰세요.
헤드리스 설정은 모니터, 키보드, 마우스 없이 파이가 부팅됨을 의미합니다. 모든 구성이 주 컴퓨터에서 SSH로 이루어집니다.
1. Raspbian OS를 SD 카드에 다운로드 및 플래싱
유의사항:
- Raspbian은 라즈베리 파이의 ARM 아키텍처에 맞춘 데비안 파생판.
- Lite(데스크톱 없음)와 Full 버전 모두 작동; 이 튜토리얼엔 Lite로 충분.
- NOOBS는 불필요하며 단계만 추가됨.
- 크로스 플랫폼 도구인 Etcher로 OS 이미지 플래싱.
Raspbian 다운로드: raspbian.org/downloads/raspbian
Etcher 다운로드/설치: etcher.io
Raspbian을 SD 카드에 굽기:
- SD 카드를 컴퓨터에 삽입
- Etcher 열기
- 다운로드한 Raspbian zip 파일을 OS로 선택
- SD 카드를 대상 드라이브로 선택
- "Flash!" 클릭
- Etcher 인터페이스는 아래 스크린샷과 유사
2. Raspbian 구성
플래싱 후 SD 카드를 컴퓨터에 다시 마운트. 터미널을 열고 부트 파티션으로 이동.
cd /Volumes/boot
빈 파일 생성으로 SSH 활성화:
touch ssh
파이가 부팅 시 네트워크에 합류하도록 Wi-Fi 사전 구성. 파이는 2.4GHz만 지원.
sudo nano wpa_supplicant.conf
다음 내용을 붙여넣고 플레이스홀더를 본인 자격 증명으로 교체:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="**your-wifi**"
psk="**your-password**"
key_mgmt=WPA-PSK
}
보안 없는 네트워크의 경우:
country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="**your-wifi**"
key_mgmt=NONE
}
CTRL+X, Y, ENTER로 저장 후 나노 종료. SD 카드 추출 후 파이에 삽입.
3. Wi-Fi SSH로 파이 연결
제공된 5V 2.4A 어댑터로 파이 전원 켜기. 네트워크가 올라올 때까지 1분 대기.
호스트 컴퓨터에서 터미널 열고 SSH 접속:
ssh pi@raspberrypi.local
비밀번호: raspberry.
문제 해결:
- 디바이스를 찾을 수 없음? Wi-Fi 자격 증명 확인 및 파이가 2.4GHz 네트워크에 있는지 확인.
- 동일 호스트명의 파이 여러 대? 파이의 로컬 IP로 SSH: ssh [email protected].
로그인 후 라즈베리 파이 구성 도구 실행:
sudo raspi-config
메뉴에서 다음 작업 수행:
- 7 – Advanced Options → A1 Expand Filesystem
- 5 – Interfacing Options → SPI (필요시 I2C 활성화)
- 1 – Change User Password
- 2 – Hostname (기억하기 쉬운 이름 선택)
- Finish 선택 후 파이 재부팅 허용
재부팅 후 새 호스트명으로 다시 SSH 접속: ssh [email protected].
4. 의존성 설치
파이 패키지 목록 업데이트:
sudo apt-get update
필수 패키지 설치:
sudo apt-get install git git-core build-essential python-dev python-openssl python-smbus python3-pip python-pip screen
Hologram 파이썬 SDK 설치:
curl -L hologram.io/python-install | bash
CLI 버전 확인:
hologram version
0.6.0 이상 버전이 보여야 함. 축하합니다 - 파이 준비 완료!
레슨 1 - LED 깜빡이기
파이의 GPIO 핀(BCM 번호) 사용. 빠른 복습은 StackOverflow GPIO 가이드 참조. 다음 핀아웃 참조.
브레드보드가 처음이라면 이 ScienceBuddiesTv 영상 시청.
이 레슨에서는 GPIO 핀을 출력으로 설정하여 LED 제어.
배선도
220Ω 저항으로 LED 연결. 전원은 보통 빨간 선, 그라운드는 검은 선. 배선 전 반드시 전원 분리.
전원 재연결, 1분 대기, SSH 재연결.
코드 실행
스타터 키트 저장소 복제:
git clone https://github.com/benstr/nova-starter-kit.git
폴더 존재 확인:
ls nova-starter-kit/
깜빡임 스크립트 실행:
sudo python nova-starter-kit/01_blink/main.py
프롬프트에서 깜빡임 횟수 입력. LED가 그에 따라 토글.
소스 파일 보기:
cat nova-starter-kit/01_blink/main.py
cat nova-starter-kit/01_blink/myLED.py
더 도전해보기!
myLED.py의 추가 함수를 main.py 수정 후 재실행으로 탐색.
sudo nano nova-starter-kit/01_blink/main.py
레슨 2 - 디지털 센서 읽기
DHT11 온습도 센서 추가. Adafruit의 DHT 라이브러리로 데이터 검색 간소화.
DHT 센서 더 알아보기: Adafruit DHT 페이지.
배선도
10kΩ 풀업 저항 사용.
배선 전 전원 제거.
전원 재연결, 1분 대기, SSH 재연결.
코드 실행
센서 폴더 확인:
ls nova-starter-kit/02_digital_sensor/
Adafruit DHT 라이브러리 설치:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
sudo python Adafruit_Python_DHT/setup.py install
센서 테스트:
sudo Adafruit_Python_DHT/examples/AdafruitDHT.py 11 21
레슨 스크립트 실행:
sudo python nova-starter-kit/02_digital_sensor/main.py
LED가 3번 깜빡이고 온도/습도 표시.
cat nova-starter-kit/02_digital_sensor/main.py
cat nova-starter-kit/02_digital_sensor/myDHT.py
레슨 3 - 아날로그 센서 읽기
파이는 디지털 신호만 읽을 수 있음. 아날로그 데이터 캡처를 위해 MCP-3008 ADC로 포토레지스터 출력 변환.
MCP-3008은 8채널 제공; 채널 0 사용. Adafruit의 MCP3008 라이브러리로 통신 처리.
배선도
MCP-3008의 노치가 왼쪽을 향하도록. 모든 연결 재확인.
배선 전 전원 제거.
전원 재연결, 1분 대기, SSH 재연결.
코드 실행
아날로그 센서 폴더 확인:
ls nova-starter-kit/03_analog_sensor/
MCP3008 라이브러리 설치:
git clone https://github.com/adafruit/Adafruit_Python_MCP3008.git
sudo python Adafruit_Python_MCP3008/setup.py install
아날로그 센서 스크립트 실행:
sudo python nova-starter-kit/03_analog_sensor/main.py
LED가 4번 깜빡이고 온도, 습도, 조도 출력.
cat nova-starter-kit/03_analog_sensor/main.py
cat nova-starter-kit/03_analog_sensor/myMCP.py
레슨 4 - 버튼으로 트리거
수동 SSH 세션을 피하기 위해 버튼을 배선하여 센서 읽기 트리거하고 부팅 시 스크립트 자동 실행 설정.
배선도
배선은 간단 - 버튼을 GPIO 핀과 풀업 저항에 연결.
전원 재연결, 1분 대기, SSH 재연결.
코드 실행
버튼 폴더 확인:
ls nova-starter-kit/04_button/
버튼 스크립트 실행:
sudo python nova-starter-kit/04_button/main.py
스크립트가 무한 루프에서 버튼 누름 대기. CTRL+C로 중지.
cat nova-starter-kit/04_button/main.py
시작 시 코드 실행
/etc/rc.local 편집으로 부팅 시 스크립트 실행:
sudo nano /etc/rc.local
exit 0 앞에 다음 줄 추가:
sudo python /home/pi/nova-starter-kit/04_button/main.py &
저장, 재부팅:
sudo reboot
재부팅 후 버튼 누르면 LED 4번 깜빡임.
레슨 5 - Wi-Fi로 데이터 전송
이제 스크립트가 부팅 시 실행되지만 여전히 로컬에서 데이터 확인 원함. 센서 읽기를 Hologram의 데이터 엔진으로 전달.
SIM이 활성화되지 않았다면 dashboard.hologram.io/activate에서 활성화.
Hologram 대시보드에서 Nova 장치 열기, Configuration으로 이동, "Show Router Credentials" 클릭, 8자리 키 생성 후 보관.
자격 증명 파일 편집:
sudo nano nova-starter-kit/credentials.json
플레이스홀더를 생성된 키로 교체.
/etc/rc.local 업데이트로 클라우드 스크립트 실행:
sudo nano /etc/rc.local
sudo python /home/pi/nova-starter-kit/05_cloud/main.py &
재부팅:
sudo reboot
몇 분 후 버튼 누르면 데이터가 클라우드로 전송. dashboard.hologram.io에서 결과 확인.
클라우드 스크립트 보기:
cat nova-starter-kit/05_cloud/main.py
레슨 6 - 셀룰러로 데이터 전송
Wi-Fi 열악한 환경에서의 배포는 간단. Nova 조립 후 SIM 삽입하면 Nova의 두 LED가 네트워크 준비 상태 표시.
/etc/rc.local 편집으로 셀룰러 스크립트 사용:
sudo nano /etc/rc.local
sudo python /home/pi/nova-starter-kit/06_cellular/main.py &
재부팅:
sudo reboot
dashboard.hologram.io에서 데이터 전송 확인.
셀룰러 스크립트 보기:
cat nova-starter-kit/06_cellular/main.py
이제 전 세계 어디서나 셀룰러로 작동하는 날씨 센서 로봇 완성!
출처: Hologram Nova Starter Kit