Stap 10: OpenWrt scripts
In principe op de OpenWrt router zul je 2 scripts, die de webcam inneming begint en verzorgt de communicatie met de huisdier deur controller en uploaden van de berichten en foto's op Twitter.Op de router, maken een dir in ~ / genaamd catdoor:
mkdir ~/catdoor
vervolgens zet in deze map het volgende script:
TP.sh
#! / bin/sh - # Sommige paden opgeslagen in handige variabelen # seriële poort ingesteld op 9600 baud # Vertellen de AVR dat we klaar om te beginnen met het doen van dingen # kreeg de willekeurige lijn # Controleer of het bestand bestaat en is leesbaar # vertellen curl een meerdelige formulier verzenden naar twitpic RET = $(curl -s -S -F "$myname" -F "$pword" -F "$cargo" -F "$tweet" $target)
picsdir = / www /
PIC=SpcaPict.jpg
TNAME = your_twitter_username
TWORD = your_twitter_password
# zodat we met de AVR praten kunnen
# lokale echo te maken TX/RX richtingen uitschakelen
# volledig los van elkaar
stty 9600 - echo < /dev/tts/0
echo "start" > /dev/tts/0
terwijl true # continu herhalen
doen
inputline = "" # Schakel input
# Loop totdat we een geldige opdracht van arduino krijgen
# de regel moet het tekstbestand dat we moet openen om te krijgen
# een willekeurig bericht
tot inputline = $($inputline aansluiten | grep -e ".txt")
doen
inputline = $(hoofd - n 1 < /dev/tts/0)
gedaan
# kreeg een geldige regel - tekst bestandsnaam - van arduino
# voorbeeld: gus-out.txt
# open het bestand nu en krijg een willekeurige regel van het bestand
Als [-f $inputline];
vervolgens
LIJNEN = "wc -l $inputline | awk ' {afdrukken ($inputline + 1)}''
RANDSEED =' datum ' + %S %M % ik ''
LIJN =' kat $inputline | awk - v COUNT = $LINES - v zaad = $RANDSEED ' BEGIN {srand(SEED); i=int(rand()*COUNT)} FNR == ik {print $0}''
# het twitpic bericht maken en verzenden
# slaan alles in vars te maken
# krul kiest voor meerdelige formulier een beetje meer beheersbaar
picfile = $picsdir$ pic
vracht = "media =
myname = "gebruikersnaam = $TNAME"
pword = "password = $TWORD"
Tweet = "bericht = $LINE"
target = "http://twitpic.com/api/uploadAndPost"
terwijl [! - r $picfile];
doen
picfile = $picsdir$ pic
gedaan
# opslaan geretourneerde XML in een variabele
echo "$RET"
fi
gedaan
Maak het bestand pic.sh in de www dir:
#/ bin/sh
slaap 10
#cd www
ln -s /dev/v4l/video0/dev/video0 # Maak/dev/video0
spcacat -d/dev/video0 -g -f jpg -p 3000 -o >/dev/zero # Neem een foto elke 3 sec
Maak een bestand met de naam van de webcam (dit gaat om te beginnen telkens als de router laarzen) in /etc/init.d :
#! / bin/sh /etc/rc.common START = 10 Start() Stop()
# webcam script
# Copyright (C) 2007 OpenWrt.org
STOPPEN = 15
{
ECHO start
# opdrachten om toepassing te lanceren
/www/pic.sh &
}
{
ECHO stop
# opdrachten om te doden van toepassing
}