Archive for the ‘Väder’ Category

Ännu en timelapse..

Det här blir nog den sista jag lägger upp eftersom det inte händer så mycket egentligen. Den här gången så är den gjord med bilderna som sparas från väderkameran, men endast de mindre bilderna som är 640 x 480. Att rendera 900 bilder i detta format tar på en Raspberry Pi 2 under 40 sekunder. och just denna film slutade på under 1,5 MB. Hela filmen blev mindre än en fullstor bild. Man skulle alltså få plats med ett helt års videor på en CD-skiva.

Tillagt: Nu har jag även provat att rendera bilderna på en Raspberry Pi B och på den så tog det 1 minut och tio sekunder att fixa 900 bilder. Nu är det tillagt i väderkamerans program att efter att alla bilder tagits för dagen så görs automatiskt en film.

 

En ny timelapse…

Nu har jag provat att göra en timelapse-film av de bilder som sparas automatiskt från väderkameran. Från 06.00 til 20.59 så blir det 900 bilder och ungefär 24 bilder i sekunden så blir det en film på motsvarande 37 sekunder.

Kvar att göra är nu att få den Raspberry Pi som sköter om väderkameran även får kompilera ihop  filmer automatiskt.

 

Nya funktioner

Har lagt till en funktion i programmet som sköter webbkameran. Nu kan jag även, om jag vill, spara alla bilder som tas till ett USB-minne så att jag kan göra en timelapse-film med dem. Här ser man Pythons styrka, att göra mycket med några få rader.

lapse

Fångat av väderkameran.

Idag fångade väderkameran denna bild som nästan ser ut som om de håller på med nukleära testsprängningar i Skogstorp. Skämt åsido, idag har det varit riktigt aprilväder i Eskilstuna. I ena stunden har det varit soligt och varmt, nästa har det varit blåsigt och regnigt. Sen har det blivit sol igen för att därefter hagla. Som sagt, riktigt aprilväder.
nuke

Problem med kameran.

Idag märkte jag att väderkameran inte ville vara med längre. Det gick knappt att logga in på den och efter ett par försök så vägrade den svara helt.

Efter en närmare undersökning så visade det sig att problemet var SD-kortet som av någon anledning slutat fungera. Oftast när ett SD-kort slutar fungera så beror det på att det på ett eller annat sätt skrivits sönder. Detta kan ske om en skrivning till kortet sker samtidigt som strömmen bryts. Enskilda cellar kan gå sönder om man skriver till samma celler hela tiden.

Python-programmet sparar en bild i minuten och skapar dessutom en flaggfil en gång per dygn. Inget av detta borde dock ha fått minneskortet att sluta fungera på bara en vecka.

Jag har nu installerat om systemet på ett nytt SD-kort så får vi se hur länge det håller den här gången.

Passade också på att, med hjälp av en kompass, rikta in kameran exakt mot söder.

Ny kamera provas.

picam

Jag håller just nu på att prova ut en ny kamera till min ”väderkamera”. Den här gången så är det en PiCamera med en Raspberry Pi som får agera webbkamera. Den är riktad nästan exakt mot söder.

Tyvärr så hände något med kameran idag så att bilden blev helt grön, jag vet inte om det blev för varmt i lådan där kamera och Pi satt monterad eller om det var för att kameran fått alldeles för starkt ljus på sensorn. Just nu fungerar den iaf.

Den är bara igång mellan 07.00 och 19.00 och det sköts automatiskt. Anledningen till detta är dels att på natten så syns ändå inget väder men främst att eftersom kameran står på insidan av mitt köksfönster så blir det gärna en massa reflexer i glaset som man helst vill undvika.

Programmet för att kontrollera det hela är ganska enkelt och kan ses härunder eller laddas hem här.

 

#! /usr/bin/python
# -*- coding: utf-8 -*-
 
# webcam.py - Göran Gustafsson 2015 http://gorgusgfx.se
#
# Program som hanterar bildtagning, skalning och uppladdning av bilder
# till en server. Programmet är tänkt att köras en gång per minut
# via cron.
#
 
import os
import time
import Image
import ImageOps
import paramiko
 
 
# Funktionen som laddar upp small.jpg och big.jpg till webbservern
 
def upload():
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect('ssh.address.com', username="username", password="password")
    sftp = ssh.open_sftp()
    localpath = '/home/pi/webcam/big.jpg'
    remotepath = 'wp-content/cam/big.jpg'
    sftp.put(localpath, remotepath)
    localpath = '/home/pi/webcam/small.jpg'
    remotepath = 'wp-content/cam/small.jpg'
    sftp.put(localpath, remotepath)
    sftp.close()
    ssh.close()
    return 0
 
 
# Här kollar vi om vi ligger inom tidsfönstret och beroende på om vi gör
# det eller inte så tas antingen en ny bild av kameran eller så laddas 
# offline-bilden upp.
 
localtime = time.localtime(time.time())
tm = "{0:0>2}".format(localtime.tm_hour)
if (int(tm)>6 and int(tm)<20):
    # Först tar vi bort flaggfilen om den finns och sen tas själva bilden
    # med maxupplösning. Därefter laddas bilden in, skalas om och sparas 
    # två gånger innan de bägge bilderna laddas upp till servern.
 
    if  os.path.exists('/home/pi/webcam/flag.txt'): os.remove('/home/pi/webcam/flag.txt')
    command = "raspistill -w 2592 -h 1944 -rot 270 -o /home/pi/webcam/bild.jpg"
    os.system(command)
    im = Image.open("/home/pi/webcam/bild.jpg")
    img = ImageOps.fit(im,(640,480))
    img.save("/home/pi/webcam/big.jpg",quality=60,optimize=True,progressive=True)
    img = ImageOps.fit(im,(178,134),Image.ANTIALIAS)
    img.save("/home/pi/webcam/small.jpg",quality=75,optimize=True,progressive=True)
    upload()
else:
    # Om flaggfilen inte finns så kopiera offline-bilden till big.jpg 
    # och small.jpg och ladda upp dem till servern. Skapa sen flaggfilen 
    # för att tala om att vi gjort detta. Då slipper vi slösa bandbredd 
    # på att ladda upp samma 2 bilder gång på gång på gång...
 
    if not os.path.exists('/home/pi/webcam/flag.txt'):
        im = Image.open("/home/pi/webcam/offline.jpg")
        im.save("/home/pi/webcam/small.jpg",quality=90,optimize=True,progressive=True)
        im.save("/home/pi/webcam/big.jpg")
        upload()
        fd=open("/home/pi/webcam/flag.txt",'w')
        fd.close()

 

Live data
Besökskarta
Login-box
  • Login
    Login

Ditt IP-nummer:
54.224.164.166