Väderstation….

Efter att ha fungerat perfekt i en månad, som text mindre än 12 timmar efter att jag kopplade upp mig till temperatur.nu, dör kopplingen mellan väderstationen och basstationen. Starta om inne gör ingen så det blir att klättra på taket.

Update: Det ser ut som sändaren på taket givit upp, den skall tända en lysdiod i 4 sekunder sedan är den upp, lysdioden är mer konstant som hela tiden på.

Update2: Och efter att fått nya batterier och lite tid inomhus ser allt ut att fungera, undra om väderstationen inte tål regn?

Tempertus ute is down...

 

Mer väderstation

Nu ser det ut som väderstationen är stabil så jag skickade mail till temperatur.nu, och titta en liten ny väderstation som rapporterar temperatur dit också. Det tog ett par försök att fatta hur man ställed in pywws, men i korthet id är det id som Erik skickar som id, det som hette alias i mailet skall in som town i pywws konfiguration. Med detta på plats rullar det på vad jag kan se smidigt. Men vi får se efter natten hur det uppdaterats lite längre.

Pi väderstation

Senaste 24 timmars temperatur

Temperaturgraf

Min garderobs Raspberry Pi är nu navet in en väderstation också. Dels har jag kopplat ihop den med hjälp av en USB-sladd till min WH1080. med hjälp av pywws läser jag ut temperaturen och skickar denna till wunderground och openweathermap. Dessutom har jag nu lyckats koppla in två Dallas DS18B20 till den. En som sitter i vårt uterum och en som sitter inne i vardagsrummet.

För att få över väderstationen in i rrdtool låter jag pywws uppdatera en text fil varje gång den får ny data, för detta har jag har denna konfiguration i weather.ini:

[live]
text = ['current.txt']
services = ['underground', 'openweathermap']

och en template ”current.txt” med detta i:

#raw#
N:#temp_in "%.1f"#:#hum_in "%d"#:#temp_out "%.1f"#:#hum_out "%d"#:#wind_dir "%d" "U"#:#wind_ave "%.1f"#:#wind_gust "%.1f"#:#rain "%.0f" "U" "x * 10"#:#rel_pressure "%.0f"#

Att skapa rrd-databaserna är ganska stort kommando, och man måste se till att man har samma data i rrd som pywws skriver ned. För att sätta upp den gjorde jag ett litet script, mest för att det underlättade att ändra på saker, mktemprrd.

Jag kör sedan att par script genom crontab för att hålla allt uppdaterat, gettemp scriptet körs var 150:onde sekund, det läser ut data från owfs och textfilen pywws skapat. Samt lägger in detta i rrdtool. Owfs rapporterar data med lite mellanslag runt sig så jag har lite bash-magi för att ta bort dessa. Samtidigt som detta körs mkgraph scriptet som uppdaterar graferna över de senaste 24 timmarna. Sedan en gång i timman körs mkgraph_hourly som skapar grafer över de senaste veckorna.

Efter det sista scriptet kört använder jag rsync, också från crontab, för att kopiera över allt till mitt webb-hotel. Så att man kan se något från nätet.

Raspberry Pi, LCD

Inte helt den plannerade texten.

Inte helt den plannerade texten.

Har under sena kvällen försökt få LCD:n att fungera mot Pi:en man det blir något fel, kan vara att min gamla LCD inte riktigt tycker om 3.3v styr spänning och inte läser som den skall. Eller så är det något annat. Det får bli mer felsökning någon annan gång. Eller alternativt får Adrduinon driva display, och pien skicka vad den vill visa tillsvidare.

Foto 2013-02-14 11.55.33 em

GMail mail checker

körande system

No Mail!

För att lära mig lite mer hur Raspberry pI kopplar samman med GPIO läste jag en del av Adafruits Raspberry Pi artiklar. Mycket i början var sådan jag gjort redan, ssh, skapa bootmedia. Det första experimentet de pekade ut är att göra en mail status notifierare. Jag tycker nog att de installerar saker lite krångligt, i del 4 installerar de rpi.gpio. För att i steget att förbereda python göra det igen. För att förbereda python behövs bara att installera tre python paket sudo apt-get install python-dev python-rpi.gpio python-feedparser installerar alla med en gång.

Kopplingschema: GMail LEDs

Kopplingschema: GMail LEDs

Uppkopplingen för testen är liten, två motstånd, två lysdioder och lite sladdar. För att göra det enklare och använder jag upkoppligssladden från lawicel, som jag lödde ihop igår. Mellan GPIO-pinnen och lysdioden sätter man ett motstånd och sedan lysdioden till jord. Jag har valt att använda pinne 18 och 23 som i exemplet.

Efter detta behöver man skriva ett litet styrprogram. Det blir inte jätte stort i python, jag har valt att koda in lite variabler som var konstanter i Adafruits exempel och lägga till att den blinkar med dioderna innan den börjar kolla mail. Detta är ett sätt att se att man har kopplat sladdarna rätt.

#!/usr/bin/env python
import RPi.GPIO as GPIO
import feedparser
import time

USERNAME = "gmail_user"
PASSWORD = "gmail_password"
GREEN_LED = 23
RED_LED = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)

# First flash both leds so you can check your connection
for i in range(5):
  GPIO.output(GREEN_LED, True)
  GPIO.output(RED_LED, True)
  time.sleep(0.5)
  GPIO.output(GREEN_LED, False)
  GPIO.output(RED_LED, False)
  time.sleep(0.5)

# This is the main loop, chek mail and turn on/off LED's
while True:
  mailcount = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
  if ( mailcount >= 1):
    GPIO.output(GREEN_LED, True)
    GPIO.output(RED_LED, False)
  else:
    GPIO.output(GREEN_LED, False)
    GPIO.output(RED_LED, True)
  time.sleep(10)
Kopplingsdäck för lysdioder

Kopplingsdäck för lysdioder