Étape 9: Communication série
Pour rendre la chatière contrôleur communiquer avec le routeur OpenWrt vous devez connecter la broche TX du contrôleur à broche RX du routeur et GND du contrôleur au GND du routeur (dans notre situation, la communication est un moyen, du contrôleur vers le routeur).Tout d’abord, commentaire (ajouter le # devant eux) les lignes dans/etc/inittab :
TTS/0::askfirst: / bin/ash--login
ttyS0::askfirst: / bin/ash--login
tty1::askfirst: / bin/ash--login
Ceci désactivera la connexion console terminal sur port série, alors nous pouvons l’utiliser pour en arrière communication avec l’arduino par contrôleur.
Tant les serial port du routeur et le port série du contrôleur doivent avoir la même vitesse pour pouvoir communiquer. Vitesse de série du routeur à a la valeur 9600 en exécutant :
racine stty 9600 < /dev/tts/0
Pour chaque balise RFID lu par le contrôleur de la compagnie dor, le contrôleur écrira pour la série l’étiquette RFID avec .txt à la fin de ligne, par exemple, si la balise est 01068E2081, et que l’animal est sorti de la porte (la rupture du faisceau IR) le contrôleur va écrire à la série 01068E2081-out.txt et si l’animal est allé à la porte (porte ouverte par l’étiquette RFID) , le contrôleur va envoyer au fil de la série 01068E2081-in.txt
Sur le routeur, pour lire ce qui vient au fil de communication série du contrôleur, votre code doit ressembler à ceci :
# Dire l’AVR que nous sommes prêts à commencer à faire des trucs
echo « Démarrer » > /dev/tts/0
boucle de true # pour toujours
faire
Inputline = "" # clear entrée
# Boucle jusqu'à ce que nous recevons une commande valide de l’arduino
# la ligne doit être le fichier texte, qu'il faut ouvrir pour obtenir
# un message aléatoire
jusqu’au inputline = $(echo $inputline | grep -e « .txt »)
faire
Inputline = $(tête - n 1 < /dev/tts/0)
fait
[...]
en recherchant les .txt, nous saurons quand nous sommes arrivés à une nouvelle commande du contrôleur de la chatière.
Après que nous avons eu une nouvelle commande, par exemple 01068E2081-out.txt, nous allons lire une ligne aléatoire dans le fichier portant le même nom :
LIGNES ='wc -l $inputline | awk ' {print ($inputline + 1)}''
RANDSEED ='date ' + %S %M % j’ai ''
LIGNE ='cat $inputline | awk - v comte = $LINES - v SEED = $RANDSEED ' FNR BEGIN {srand(SEED) ; i=int(rand()*COUNT)} i {print $0} ==''
prendre une photo de la Webcam :
ln -s /dev/v4l/video1/dev/video1 # créer /dev/video1
spcacat -d/dev/video1 -g -f jpg -p 10000 -o >/dev/zero # prendre une photo toutes les 3 secondes
et téléchargez-les pour twitter (twitpic) :
# dire curl d’envoyer le formulaire multipart twitpic
# enregistrer XML retourné dans une variable
RET = $(curl -s -S -F « $myname » -F « $pword » -F « $cargo » -F « $tweet » $target)
echo « $RET »
Remarque : Dans ce projet, la communication est une des façons, le routeur OpenWrt reçoit seulement des messages d’arduino base contrôleur. Si vous souhaitez communiquer les deux manières, dans votre script bash sur le routeur à l’aide après commande pour envoyer des messages à l’arduino base conntroller :
echo « message de test envoyé de routeur OpenWrt Arduino » > /dev/tts/0