개별 프로젝트 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 및 라이브러리 설치

    1. 가상환경 생성 cd ~/indoor_monitoring python3 -m venv venv
    1. 가상환경 활성화 source venv/bin/activate
    1. 라이브러리 설치 pip install adafruit-circuitpython-dht pip install adafruit-blinka
    1. 필요한 시스템 패키지 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기반 혼잡도 예측 시스템 고려 중

=> 단순히 현재 상태를 표현하는 것이 아니라 미래를 예측하는 방식으로 업그레이드