Otóż gdzieś ktoś zaproponował żeby się porozumiewać z routerem morse'em. Naciskając przycisk. Pewnie jest to możliwość,ale:
Morse ma dwa stany - kreska i kropka. Moim sposobem można przerobić jeden przycisk w klawiaturę ascii i więcej znakową :)
Otóż mierzy on czas ile sekund trzymamy przycisk. i przekazuje tą liczbę do jakiegoś skryptu. (żeby wprowadzić znak np 111 z klawiatury trzeba być cierpliwym, ale...)
Po co mi coś takiego - zaraz napiszę.
Obecany skrypt - w /etc/hotplug.d/button/script
case "$BUTTON" in
"reset")
#Jakies dzialanie dla przycisku reset-cos sie wymysli
;;
*)
case $ACTION in
"pressed") date +%s > "/etc/przycisk_nacisnieto";;
"released")
read ostatnio < "/etc/przycisk_nacisnieto"
date +%s > "etc/przycisk_nacisnieto"
read teraz < "/etc/przycisk_nacisnieto"
let "teraz=teraz-ostatnio"
/etc/przycisk.sh $teraz
;;
;;
esac
Wiem, że można to napisać lepiej - przede wszystkim w sekcji released czytanie datu aktualnej można zrobić nie przez plik, ale coś pipe
date +%s | read teraz nie chce mi działać. Jak ktoś rozwiąże to proszę o info.
Fajnie też by było zmienić sekundy na na przykład setne. Transmisja byłaby dużo szybsza, ale nie wiem, jak uzyskać jakiś czas w setnych sensowny...
Skrypt przekazuje do /etc/przycisk.sh liczbę sekund jakie był naciśnięty. Liczba będzie tak duża, jak długo będziemy trzymać. Po co?
Dodatkowe wejścia
Nie jestem najlepszy z elektroniki, ale gdyby zbudować taki moduł który ma wbudowany kondensator (lub inne coś co po włączeniu przepuszcza prąd przez ileśtam sekund) to takich modułów możnaby dołączyć praktycznie nieskończoną ilość do styku przycisku (Każdy przepuszcza prąd inną ilość sekund). W ten sposób można na przykład wywołać jakąś procedurę gdy czujnik zmierzochowy zasygnalizuje mrok, ktoś otworzy drzwi... możliwości jest bardzo wiele.
Jest tu ktoś kto by się na tym lepiej znał?
Dodatkowe wyjścia
Otóż tak. Mamy diodki orange i white, którymi możemy sterować z konsoli.
Idea jest następująca:
D układu światełka np. pomarańczowego podłączamy przez przekaźnik albo inny element zapewniający izolację - układ licznika (np 4017). O ile się nie mylę, za każdym mrygnięciem diody, układ 4017 daje prąd na inne wyjście - a ma takich wyjść 10. A potem od początku. Jeśli do tych 10 wyjść damy przekaźniki bistabilne, których masy cewek podłączymy do diody białej, za mrygnięciem diody białej właczamy lub wyłaczamy taki przekaźnik. Czyli:
ilość mrygnięć diody pomarańczowej - wybieramy przekaźnik
Mrygnięcie diody białej - zmieniamy stan wybranego przekaźnika.
Stan się utrzymuje, bo to przekaźniki bistabilne.
Teraz mam pytanie, do ludzi którzy troszkę może się bardziej znają:
Napięcie na diodzie białej gdy jest zgaszona to 1.2.v
Zapalona - 2.9v
Pomarańczowa - 1.2/1,9
Czy ktoś kto się na tym zna mógłby zaproponować jakiś rozsądny sposób złożenia tego o czym piszę?
Tzn:
1. układ który po naciśnięciu przycisku, podaniu masy... zwiera styki na x sekund
2. Licznik podłączony do diód ses (głównie chodzi o ezpieczne podłączenie z napięciami itp...)
wrt54g ma gpio. Więc możesz zrobić i2c (http://www.byteclub.net/wiki/index.php?title=Wrt54g), tylko dwie linie zużywasz. A jak masz i2c to możesz mieć co chesz - od LCD, poprzez pamięci a na portach w I/O skończywszy (http://www.adatronik.com.pl/portyIO.html). Da się to "programować" przez odpowiednie "echo", więc nie powinno być kłopotów z programowaniem. Na końcu odpowiedni układ z przekaźnikami, schematy znajdziesz zapewne na elektroda.pl.