Tweeting katt dörr (10 / 12 steg)
Steg 10: OpenWrt skript
I grund och botten på OpenWrt routern får ni 2 skript, en som startar webcam fånga och en som hanterar kommunikation med sällskapsdjur dörren controller och uppladdningar meddelanden och bilder till twitter.På routern, skapa en dir i ~ / kallas catdoor:
mkdir ~/catdoor
sedan sätter i den här katalogen följande skript:
TP.sh
#! / bin/sh - # lagra vissa sökvägar i praktiskt variabler # inställd 9600 baud serial port
picsdir = / www /
pic=SpcaPict.jpg
FÖRNAMN = your_twitter_username
TWORD = your_twitter_password
# så vi kan prata med AVR
# Inaktivera lokalt eko att göra TX/RX riktningar
# helt separat från varandra
stty 9600 - echo < /dev/tts/0
# Berätta AVR är vi redo att börja göra saker
ECHO "start" > /dev/tts/0
medan true # loop för evigt
göra
inputline = "" # Rensa ingång
# Loop tills vi får ett giltigt kommando från arduino
# raden bör vara den textfil som vi måste öppna för att få
# ett slumpmässigt meddelande
fram till inputline = $(eko $inputline | grep -e ".txt")
göra
inputline = $(huvud - n 1 < /dev/tts/0)
gjort
# fick en giltig rad - text filnamn - från arduino
# exempel: gus-out.txt
# nu öppna filen och få en slumpmässig rad från filen
om [-f $inputline];
sedan
RADER = "wc -l $inputline | awk "{skriva ut ($inputline + 1)}''
RANDSEED = "datum" + %S %M % jag ''
LINJE = "cat $inputline | awk - v COUNT = $LINES - v frö = $RANDSEED ' börja {srand(SEED); i=int(rand()*COUNT)} Bildrutnr == jag {print $0}''
# fick slumpmässiga raden
# skapa twitpic meddelandet och skicka det
# lagra allt i vars att göra
# curl väljer flerdelade form lite mer hanterbara
picfile = $picsdir$ pic
last = "media =
MyName = "username = $TNAME"
pword = "lösenord = $TWORD"
Tweet = "meddelande = $LINE"
Target = "http://twitpic.com/api/uploadAndPost"
# se till att filen finns och går att läsa
medan [! - r $picfile];
göra
picfile = $picsdir$ pic
gjort
# berätta curl att skicka en flerdelade form till twitpic
# rädda returnerade XML i en variabel
RET = $(curl -s -S -F "$myname" -F "$pword" -F "$cargo" -F "$tweet" $target)
ECHO "$RET"
Fi
gjort
skapa filen pic.sh i www dir:
#/ bin/sh
sova 10
#cd www
ln -s /dev/v4l/video0/dev/video0 # skapa/dev/video0
spcacat -d/dev/video0 -g -f jpg -p 3000 -o >/dev/zero # ta en bild varje 3 SEK
skapa en fil som heter webbkamera (detta kommer att starta varje gång routern stövlar) i /etc/init.d :
#! / bin/sh /etc/rc.common START = 10 Start() Stop()
# webcam skript
# Copyright (C) 2007 OpenWrt.org
STOPPA = 15
{
ECHO start
# kommandon för att starta program
/www/pic.sh &
}
{
ECHO stop
# kommandon att döda ansökan
}