Wielu z początkujących programistów takich jak chciało by rozpocząć swoją zabawę z Raspberry. Większość z nich szuka w sieci skryptów i programów napisanych w Pythonie by w pełni wykorzystać Pi. Dziś krótki program załączający kamerę na określony czas dzielący pliki na określone czasem pliki.

Niedawno stałem się posiadaczem Raspberry 4. Postanowiłem również uczyć się programowania w Pythonie. Chciałbym w pełni umieć wykorzystać Pi, mam kilka fajnych pomysłów na obsługę całego domu wraz z kopaniem kryptowalut. Chce dokupić jeszcze Raspberry tak aby mieć w każdym pomieszczeniu jedno urządzenie. Każde z nich ma mierzyć temperaturę, rejestrować ruch, mierzyć stan powietrza, ostrzegać o złej jakości powietrza, dużym zapyleniu kurzem, uchylać okna w razie potrzeby, ostrzegać o czadzie i zadymieniu z pieca. Do tego jednostka centralna ma służyć jako centralka alarmu i przeciwpożarowa. Mam jeszcze kilka innych pomysłów ale o tym kiedy indziej.

Wracając do tematu, jakby to było gdybym miał Raspberry i nie dokupił bym peryferii. Na AliExpress kupiłem kamerkę z podczerwienią. Czas oczekiwania tylko 2 tygodnie. Po podłączeniu do Pi należało by uruchomić kamerkę aby rozpocząć zabawę. Z pomocą przychodzi tutaj kurs na forbot.pl. Dwa dni później chciałem uruchomić kamerkę ale tym razem z poziomu Pythona-a. Szybko w sieci znalazłem krótki programik który pozwolił mi na uruchomienie i nagrywanie filmu z kamerki.

import picamera

camera = picamera.PiCamera()
camera.resolution = (640, 480)
camera.start_recording('moje_video.h264')
camera.wait_recording(60)
camera.stop_recording()

Programik pozwolił na uruchomienie kamerki i nagranie filmu w rozdzielczości 640×480 i długości 60 sekund. Niestety na filmie brakowało mi znacznika czasu. Po za tym co gdybym miał nagrać film trwający 12 godzin? Rozpocząłem poszukiwania programy który pozwoli mi na nagrywanie filmu 12 godzin dzieląc go na godzinne części. W końcu się udało. Program nagrywał film na którym był znacznik czasu, wystarczyło go zmodyfikować, aby spełnił moje kryteria.

Dzięki kursowi dla początkujących zapętliłem program który teraz pozwala mi na nagrywanie tyle godzin ile chce, zapisując godzinne części.

import picamera
import datetime as dt


camera = picamera.PiCamera(resolution=(640, 480), framerate=24)
#Podgląd bieżący z kamery, wystarczy usunąć #
#camera.start_preview()
camera.annotate_background = picamera.Color('black')
camera.annotate_text = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
camera.start_recording('1.h264')
for i in range(2, 6):# 6 - to ilość godzin w nagrywaniu -1
    start = dt.datetime.now()
    # 3600 - czas trwania jednego filmu
    while (dt.datetime.now() - start).seconds < 3600:
        camera.annotate_text = 
        dt.datetime.now().strftime('%Y-%m- %d %H:%M:%S')
    camera.split_recording('%d.h264' % i)
    camera.wait_recording(10)
camera.stop_recording()

Nie jest to penie najlepsze rozwiązanie, ale działa. Z czasem, kiedy będę dalej zagłębiał swoją wiedzę pewnie wprowadzę lepsze ulepszenia, lub napiszę swój program, ale na dziś musi tyle wystarczyć.

Program spełnia swoją rolę. Dokonując wpisu w crontab, kamera codziennie od 23 do 7 rano nagrywa filmy z podczerwienią, dzięki czemu, wiem co dzieje się w nocy na tarasie z tyłu domu. Może komuś początkującemu przyda się ta wiedza. Pozdrawiam.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *