메이커 Maker

라즈베리파이 타임랩스 Timelabs 카메라 만들기 4

지구빵집 2021. 8. 17. 10:43
반응형

 

 

라즈베리파이 타임랩스 Timelabs 카메라 만들기 3 

 

없는 기능, 있는 기능 구별하지 말고 구현해야 할 것들을 되도록 많이 하나씩 구현하는 코드들을 모은다. 빼는 것은 빼도 되는 것들이 충분이 모아진 후에 빼는 거다. 아무것도 없으면 뺄 것도 없다. 

 

우선 $mkdir timelabscode 명령으로 폴더를 하나 만들어서 각 구성품을 테스트하는 코드들을 여기에 모은다. 예제 코드를 하나씩 테스트하고 동작을 확인하는 코드를 우선 구현한다. 합치고, 돌아가게 만들고 개선하는 것은 나중에 한다.

 

 

타임랩스 카메리 만들기 포스팅

 

라즈베리파이 타임랩스 Timelabs 카메라 만들기 1

라즈베리파이 타임랩스 Timelabs 카메라 만들기 2

라즈베리파이 타임랩스 Timelabs 카메라 만들기 3

라즈베리파이 타임랩스 Timelabs 카메라 만들기 4

 

 

1. 라즈베리파이 디스크 크기 얻기

 

아래 코드는 파이썬 코드를 이용해서 디스크의 용량을 얻어오는 코드이다. 함수별로 전체 크기, 사용한 용량, 사용 할 수 있는 용량을 알 수 있다. 여기서 사용할 것은 남은 용량이다. 라즈베리파이 SD 카드 용량이 약 5Mbyte 이하라면 용량이 가득찼다고 판단하고 표시를 해주고 사진을 찍지 않아야 한다. 이왕이면 좀 더 여유를 두면 좋겠다.

 

import os

# 디스크 정보 가져오는 함수
def getDisk(path):
    diskInfo = os.statvfs(path)
    return diskInfo

# 단위 변환용 함수
def Unit(unit):
    units = ['B', 'K', 'M', 'G', 'T']
    val = units.index(unit)
    if val <= 0:
        return 1
    else:
        return 1024 ** (val)

# 사용한 용량
def getUsed(path):
    diskInfo = getDisk(path)
    used      = diskInfo.f_bsize * (diskInfo.f_blocks - diskInfo.f_bavail)
    return used

# 사용 가능 용량
def getAvailable(path):
    diskInfo = getDisk(path)
    available = diskInfo.f_bsize * diskInfo.f_bavail
    return available

# 전체 크기
def getTotalSize(path):
    diskInfo = getDisk(path)
    total     = diskInfo.f_bsize * diskInfo.f_blocks
    return total

# 전체 크기를 기가 바이트(GB)로 표시
print('%.1fGB' % (getTotalSize('/') / Unit('G')))
# 사용 가능 용량을 키로 바이트(KB)로 표시
print('%.1fKB' % (getAvailable('/') / Unit('K')))
# 사용한 용량을 메가 바이트(MB)로 표시
print('%.1fMB' % (getUsed('/') / Unit('M')))

 

 

참고

라즈베리파이 디스크 크기 얻기

 

 

이미지 https://www.youtube.com/watch?v=kpdylYsHp3U

 

 

 

반응형