Raspberry Pi
54) Časosběr pomocí RasPi
Využil jsem některých mých předchozích návodů a
vytvořil jsem z Raspíčka a malé webkamery jednoduchý časosběrný
automat.
Použil jsem tu nejlevnější webkameru, takže rozlišení
je hodně špatné.
Taky se vyskytnul problém s automatickým přepínáním citlivosti, takže
při prvním pokusu o snímání oblohy jsou při západu Slunce některé
fotky výrazně jasnější, než by měly být.
Ke snímání jsem použil program fswebcam.
Instalace:
sudo apt-get install fswebcam |
Podrobnější návod je tady: Webkamera
Pak jsem musel vytvořit RAMdisk, protože
opakované zápisy do jednoho místa na SD kartě by tu kartu zničilo.
(návod)
Z RAM disku jsem pak fotky automaticky odesílal na Dropbox.
(návod)
Když jsem po několika hodinách všechny fotky z
Dropboxu stáhnul, spojil jsem je programem MakeAVI
do jednoho videa.
Samotný program pro automatické snímání v minutových
intervalech vypadá
takto:
#!/usr/bin/python
# -*- encoding: utf-8 -*-
import datetime # operace s datumem a casem
import time # operace s ruznymi pauzami
import os # spousteni shell-ovskych prikazu
while True:
# zjisteni aktualniho casu kvuli zaznamu do jmena souboru
aktualnicas = datetime.datetime.now()
datum = aktualnicas.strftime("%Y%m%d_%H%M")
# zaznamenani aktualni minuty pro pozdejsi synchronizaci snimani
lastmin = aktualnicas.strftime("%M")
adresar = "/home/pi/ramdisk/" # adresar, kam se bude ukladat fotka (RAMdisk)
soubor= str(datum) + "_cam.png" # jmeno souboru obsahuje datum a cas
prikaz = "fswebcam --resolution 640x480 --png 1 " + adresar + soubor # prikaz pro sejmuti fotky
os.system (prikaz) # sejmuti obrazku
time.sleep(25)
program = "/home/pi/Dropbox-Uploader/dropbox_uploader.sh upload" # Dropbox-Uploader
zdroj = adresar + soubor # zdrojovy soubor (v RAMdisku)
cil = "cam/" + soubor # cilovy soubor na Dropboxu
prikaz = program + " " + zdroj + " " + cil # slozeni jednotlivych casti prikazu
os.system (prikaz) # provedeni zalohy jedne fotky
# synchronizace snimani se provadi testem na zmenu hodnoty aktualni minuty
aktualnicas = datetime.datetime.now() # pauza do zacatku dalsi minuty
minuty = aktualnicas.strftime("%M")
while lastmin == minuty:
aktualnicas = datetime.datetime.now()
minuty = aktualnicas.strftime("%M")
time.sleep(1)
prikaz = "sudo rm " + adresar + soubor # smazani posledni fotky z RAMdisku
os.system (prikaz)
|
Je možné ho samozřejmě vylepšit o autostart, různé
signalizace stavu, vypínání pomocí tlačítka....
|