개별 프로젝트 2주차 - sng-jn/Embedded_System_ GitHub Wiki
GPIO 세팅
- gpio 핀 매핑 확인
sudo apt-get install -y python3-gpiozero으로 정보 확인 도구 설치
- 핀 번호 확인
pinout 입력하여 확인
- 간단한 GPIO 테스트
nano scripts/gpio_test.py로 테스트 코드 작성 창을 연다
작성 후 저장하고 나온다.
파일 실행 결과
개발 환경 자동 실행 스크립트 작성
nano start_env.sh로 편의를 위한 실행 스크립트 준비
스크립트 작성
실행 권한 부여: chmod +x start_env.sh
앞으로 개발 시작시: ./start_env.sh
DHT11 센서 연동
Step 1: DHT11 하드웨어 연결
VCC: 2번, DAT: 7번, GND: 9번
Step 2: GPIO 및 라이브러리 설치
-
- 가상환경 생성 cd ~/indoor_monitoring python3 -m venv venv
-
- 가상환경 활성화 source venv/bin/activate
-
- 라이브러리 설치 pip install adafruit-circuitpython-dht pip install adafruit-blinka
-
- 필요한 시스템 패키지 sudo apt-get install -y libgpiod2 python3-libgpiod
위의 1~4의 과정을 실행한 결과이다.
Step 3: DHT11 기본 테스트
nano dht11_test.py로 테스트 파일 생성
다음과 같이 파일 작성
python3 dht11_test.py로 파일 실행 결과
Step 4: 연속 데이터 수집 테스트
nano dht11_stability_test.py 새로운 파일 작성 준비
다음과 같이 파일 작성
source venv/bin/activate로 가상 환경 실행 후
python3 dht11_stability_test.py으로 파일 실행
결과화면 (성공률이 70% 이상이면 성공이므로 성공이다)
정리
adafruit도 가상환경에 설치하였고 이제부터 작업 시작하기 전에 항상 가상환경을 활성화시키고 해야겠다.
cd ~/indoor_monitoring, source venv/bin/activate 입력으로 가상환경을 매번 활성화시켜야겠다. (deactivate => 가상 환경 종료)
지금까지 라즈베리파이 환경 설정을 하였고 GPIO 세팅과 DHT11 센서를 연동시켰다
다음 주차에는 최소한
-
SQLite 데이터베이스 설계
-
30초 주기 자동 수집 스크립트
-
데이터 저장 및 조회 기능
이렇게 3가지는 완성해야겠다.
프로젝트 계획 수정 사항
-
co2 측정을 고려해보라고 하셨는데 co2 측정하기 위한 센서 필요 (MH-Z19B 등 가능)
-
ai기반 혼잡도 예측 시스템 고려 중
=> 단순히 현재 상태를 표현하는 것이 아니라 미래를 예측하는 방식으로 업그레이드