2010.07_HAS-House's Automated System.pdf

(475 KB) Pobierz
451644219 UNPDF
Projekty AVT
2946
HAS –
House’s Automated System
Czasami chciałoby się częścią nudnych obo-
wiązków obarczyć kogoś innego, a samemu
zająć sprawami bardziej twórczymi. Do takich
właśnie celów jest przeznaczony domowy
system automatyczny – HAS. Dzięki niemu,
nie musimy samodzielnie zaświecać oświetlenia
na noc ani włączać pewnych urządzeń na okre-
ślony czas. To wszystko, i wiele więcej, może
wykonać za nas HAS. Jednym poleceniem
możesz określić, kiedy dane urządzenia mają się
włączać. Na razie to tylko garstka z możliwości
systemu tajemniczo nazwanego HAS.
A może chcielibyśmy mieć całkowitą kontrolę
nad domem i wiedzieć, jaki jest stan czujników,
np. czy drzwi frontowe są zamknięte. No dobrze,
a jeśli chciałbym być powiadomiony o fakcie
otworzenia okna i przy okazji rabowania mojego
domu, czy HAS to umożliwia – tak, może nawet
powiadamiać o fakcie zalania piwnicy, a liczba
zastosowań jest nieograniczona. Skoro już mogę
sterować pewnymi urządzeniami i sprawdzać stan
różnych czujników, czy też otrzymywać powia-
domienie o zmianie ich stanu, to czy mój sąsiad
też może? Będzie mógł, jeśli mu na to pozwolisz:
HAS pozwala na administrowanie użytkowni-
kami, co więcej pozwala na zarządzenie ich
uprawnieniami. Co to znaczy? Znaczy to tyle, że
wyznaczeni użytkownicy mogą zmieniać/odczy-
tywać stan pewnych wejść/wyjść, do których są
dołączone czujniki, urządzenia sterowane, mogą
też otrzymywać powiadomienie o zmianie stanu
wejść. Nie oznacza to, że jeśli jeden użytkownik
ma przypisane urządzenie, to inny nie może mieć
tego samego, bo może.
Dzięki wspomnianym cechom HAS pomo-
że też oszczędzić energię.
Funkcje oprogramowania
Sterowanie wyjściami:
– Włączanie lub wyłączanie na stałe.
– Włączanie lub wyłączanie na noc.
– Włączanie lub wyłączanie na określony
czas, możliwość powiązania tej funkcji ze
zmrokiem, jednorazowo lub wielokrotnie. Co
oznacza, że urządzenie może być włączone po
zmroku na dany czas, lub wyłączone, tylko raz
lub każdorazowo przy zdarzeniu zmroku.
– Cykliczne włączanie i wyłączanie.
Możliwość określenia czasu włączenia i wyłą-
czenia, jednorazowo lub w zapętleniu, istnieje
możliwość powiązania tej funkcji z zajściem
zmroku, jednokrotnie lub każdorazowo.
– Tygodniowy harmonogram. Możliwość
określenia godziny włączenia i wyłączenia i
wybrania dni, w których to obowiązuje.
– Możliwość sprawdzenia aktualnie ustawio-
nych funkcji na poszczególnych wyjściach.
Sterowanie wejściami:
– Sprawdzanie stanu poszczególnych wejść.
– Możliwość ustawienia powiadomienia o zaj-
ściu zdarzenia na poszczególnych wejściach.
Możliwe warianty to: zbocze narastające, opa-
dające lub oba.
– Przy zarządzeniu stanem wyjść czy wejść
istnieje możliwość podania ich listy w jedno-
razowym poleceniu.
Zarządzanie użytkownikami: dodawanie
nowych i nadawanie im początkowych upraw-
nień, modyfikowanie
uprawnień istniejących,
usuwanie, wyświetlenie
istniejących użytkowni-
ków i ich uprawnień.
Administracja syste-
mem: logowanie za pomo-
cą hasła, wylogowanie,
zmiana hasła, ustawianie
godziny i dnia tygodnia,
wyświetlanie godziny i
dnia tygodnia, wyświet-
lanie pomocy, przełączenie do trybu automa-
tycznego (praca z telefonem), przełączenie
do trybu manualnego (praca w konsoli).
Cechy sprzętu:
16 wyjść, 8 wejść, zasilanie
z zasilacza o napięciu stałym 6–15V, złącze
umożliwiające dołączenie baterii awaryjne-
go zasilania, możliwość wyłączenia wyjść
w przypadku zasilania awaryjnego, wejścia
odizolowane galwanicznie, wyjścia umożli-
wiające bezpośrednie sterowanie przekaźnika-
mi lub diodami transoptorów.
HAS może pracować zarówno z konsolą,
jak i z telefonem komórkowym. Własny wiersz
poleceń i, co ważne, pisane pełnymi zdaniami
polecenia, umożliwiają współpracę HAS z
dowolną platformą sprzętową i programową,
jeśli tylko ma klienta umożliwiającego połą-
czenie się przez port szeregowy. Możliwość
pracy z telefonem – ułatwia to zdalne wyko-
nywanie poleceń, co jest też możliwe i w
przypadku pracy z konsolą, gdyż z kompute-
rem (np. domowym) można połączyć się zdal-
nie. Ponieważ HAS przechowuje wszystkie
instrukcje w pamięci i wykonuje je samodziel-
nie, nie jest potrzebny zewnętrzny program,
HAS może zostać odłączony od hosta, a host
wyłączony celem oszczędzania energii.
Opis układu
Schemat urządzenia jest widoczny na rysun-
ku 1 . Cała złożoność tego urządzenia kryje
się w pamięci mikrokontrolera U3 ATmega32.
Ostatecznie procesor ten ledwo udźwignął
wymagania stawiane przez oprogramowanie,
szczególnie w kwestii pamięciowej. Nie będę
tu przytaczał kodu programu, bo zająłby on ok.
90 stron. Wspomniany procesor współpracuje
z zewnętrznym rezonatorem kwarcowym X1
o częstotliwości 8MHz, obciążonym przez kon-
densatory C13, C14. Zastosowanie rezonatora
o częstotliwości 8MHz było konieczne z uwagi
na możliwość pracy na bateriach, w przypadku
zaniku napięcia zasilania. Przy tej częstotliwości
napięcie na trzech bateriach AA (R6) może spaść
nawet do 3V. Sam mikrokontroler zresetuje się
przy 2,7V, ponieważ tak został skonfigurowany
21
HAS –
House’s Automated System
451644219.226.png 451644219.237.png 451644219.248.png 451644219.259.png
Projekty AVT
jego moduł BOD. Pozostałe 0,2V–0,3V jest
tracone na diodzie Schottky’ego D5, przełącza-
jącej między pracą na bateriach a zasilaniem ze
stabilizatora. Dodatkowa dioda została dodana
tylko po to, by zapobiec przepływowi prądu z
baterii do wyjścia stabilizatora. Jeśli już mowa o
stabilizatorze, to jest nim stabilizator LDO (Low
Dropout Voltage) U5 LM2940CT-5.0 – zapew-
nia on niewielki spadek napięcia mniejszy niż
0,5V, zwłaszcza przy małym obciążeniu. To
powoduje, że nasz HAS może być zasilany już
napięciem 6V, a nawet 5,5V jeśli jest to stabilne
źródło. Kondensatory C16-C18 wygładzają tęt-
nienia i stanowią magazyn energii. Dodatkowa
dioda D6 chroni nasz układ przed odwrotnym
podłączeniem napięcia zasilania, a D7 przed
odwrotnym lub zbyt wysokim napięciem baterii.
Dodatkowy obwód R15, C12, zapewni właści-
we zresetowanie mikrokontrolera po włączeniu
napięcia zasilania.
W celu zapewnienia odpowiedniej obciążalno-
ści prądowej wyjść sterujących peryferiami zasto-
sowano tzw. matryce tranzystorów Darlingtona –
U1, U2. Tranzystory w niej zawarte połączone są
w układ OE i umożliwiają sterowanie dość wyso-
kimi prądami (do 500mA na wszystkie wyjścia) i
przy znacznych napięciach (do 50V) odbiorników.
Matryca zawiera również diody, które mogą tłu-
mić indukujące się napięcie np. na przekaźnikach,
a wewnętrzne rezystancje ograniczające prąd baz
tranzystorów umożliwiają dołączenie jej wprost
do mikrokontrolera. Prąd ten może znacząco
obciążać baterie w przypadku zasilania awaryjne-
go. Dlatego istnieje możliwość wyłączenia wyjść
na czas zasilania bateryjnego (nie powoduje to
zmiany zaprogramowanej funkcji). Można tego
dokonać przez rozwarcie zworki J1 nawet w trak-
cie pracy urządzenia, ale uwaga – wyjęcie zworki
celem włączenia wyjść już na pracy bateryjnej nie
spowoduje ich wyłączenia, a włożenie włączenia.
Sama realizacja tej funkcji polega na pomiarze
napięcia zasilającego mikrokontroler. Jest ono
doprowadzone przez obwód R16, R4, R6, C5 do
wejścia ADC3 przetwornika analogowo/cyfrowe-
go (ADC). R16 i R4 stanowi dzielnik napięcia
na dwa, ogranicza to zakres napięć na wejściu
multipleksera ADC. R4, C5 to dodatkowy filtr.
Zasilanie same-
go przetwornika
A/D doprowa-
dza się do nóżki
AVCC, jest ono
odfiltrowa-
ne zalecanym
filtrem dolno-
przepustowym,
zbudowanym
z elemen-
tów C10, L2.
Nóżka AREF
jest tak skon-
figurowana, że
pracuje jako
wyjście, na któ-
rym występuje
napięcie aktualnie używanego źródła referencyj-
nego. Samo źródło referencyjne, którym może
być napięcie 2,56V lub zasilające, jest w takiej
konfiguracji dołączone do nóżki AREF przez
wewnętrzny klucz o stosunkowo dużej rezystan-
cji, więc konieczne jest zastosowanie obciążają-
cego kondensatora C15. Napięcie referencyjne
nie jest stałe i wynosi 2,56V w przypadku pomia-
ru napięcia zasilania lub ok. 5V w przypadku
pomiaru natężenia światła. Co ważne, zastoso-
wanie wymienionego dzielnika napięcia i źródła
napięcia referencyjnego 2,56V jest niezbędne do
pomiaru napięcia zasilającego mikrokontroler,
gdyż jeśli byśmy mierzyli napięcie bezpośrednio
zasilające mikroprocesor, to zmieniałoby się ono
razem ze zmianą napięcia odniesienia.
Pomiar natężenia światła jest realizowa-
ny za pomocą fotodiody D2, zasilającego
ją rezystora R1. Dodatkowy obwód R2, C6
to szeregowy bocznik, tłumiący ewentualne
skoki napięcia przemiennego, mogącego się
indukować w przewodach do fotodiody. R3,
C7 to filtr, może on się przydać w przypadku
światła z lamp wyładowczych. Wspomniane
pomiary są wykonywane naprzemienne,
uśredniane, dodatkowo wprowadzono czas na
ustabilizowanie się napięć w obwodach, po
którym wyniki pomiarów będą akceptowane.
Do wyprowadzeń U3 realizujących funk-
cję wejść dołączono transoptory, zapewniają-
ce izolację galwaniczną. Pozwala to na dołą-
czenie do wejść czujników połączonych dość
długimi przewodami, oczywiście w takim
przypadku czujnik powinien mieć własne
źródło zasilania. Napięcie wystarczające do
wywołania stanu niskiego, między E–C tran-
zystora, to 2V, maksymalnie 40V. Dodatkowe
rezystory podciągające kolektor tranzystorów
w transoptorach nie są wymagane, bo tę funk-
cję realizuje sam procesor.
Dioda LED (D3) znajdująca się na płyt-
ce sygnalizuje pracę urządzenia. Świeci ona
światłem ciągłym, zawsze w przypadku pracy
z konsolą, a w trybie automatycznym może
migać, tylko gdy zachodzi komunikacja z
telefonem lub jest jej brak.
Ostatni obwód zapewniający komunika-
cję standardem EIA/TIA-232 zbudowano w
oparciu o MAX232A (U4) i C1–C3, C8, C9
i L1. Zastosowanie wersji układu z literą A
na końcu umożliwia użycie kondensatorów
(C1–C3, C9) wchodzących w skład genera-
tora podnoszącego napięcie. Pozwala to na
większe szybkości transmisji przez zapew-
nienie bardziej stromych zboczy przebiegu.
Kondensatory C9, C11 to tzw. pętle prądowe,
które zapewniają utrzymanie się odpowied-
niego napięcia przy impulsowym poborze
prądu. L1 ze wspomnianymi kondensatorami
tworzy filtr eliminujący zakłócenia pochodzą-
ce od MAX232A.
Przewód umożliwiający połączenie telefo-
nu ze złączem RS-232 HAS został zbudowany
w oparciu o ST3232 i przedstawiony jest na
rysunku 2 . Jest to także sterownik RS-232,
lecz pracujący przy napięciu 3V. Napięcie
zasilające wspomniany układ nie jest pobiera-
ne ze złącza portu RS, tylko z telefonu, który
w swoim złączu ma wyprowadzenie umożli-
wiające zasilanie akcesoriów. Fakt ten uwalnia
nas od konieczności ustawiania odpowiednich
linii w porcie RS-232 w celu zasilenia drive-
ra, dodatkową zaletą jest brak konieczności
dostosowania poziomów napięcia.
Montaż i uruchomienie
Na rysunku 3 przedstawiony jest schemat
montażowy płytki głównej, a na rysunku 4
„kabla”. Montaż należy rozpocząć od wluto-
wania elementów najniższych. Ponieważ pod
U3 znajdują się dwa dławiki, w niektórych
podstawkach może zająć potrzeba wycię-
cia wewnętrznych wsporników, należy tego
dokonać ostrożnie, tak aby nie połamać samej
podstawki. Na U5 możemy zamontować nie-
wielki radiator. Fotodiodę możemy zamon-
tować na niewielkim odcinku przewodu,
koniecznie musi to być przewód ekranowa-
ny, o długości nieprzekraczającej 2m. Osoby
chcące samodzielnie przygotować procesor
do pracy powinny: wgrać zawartość pliku
HAS_FlashROM do pamięci Flash, następnie
CON1
U1 ULN2803A
Rys. 1
R7...R1 4 2.2k
IN1
CON9
1
2
3
4
5
6
7
8
1 8
OUT1
IN1
1
OUT8
C13 22p
X1
8MHz
U3 ATMEGA32
R7
1
2
1 7
2
VCC
OUT7
5
X2
OT1
OUT2
IN2
1 6
3
9
1
4 0
OUT6
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
PM
OUT3
IN3
PB0 (XCK/T0)
(ADC0) PA0
1 5
4
4
2
3 9
X1
OUT5
2 3 8
LED
IN2
CON10
OUT4
IN4
PB1 (T1)
(ADC1) PA1
1 4
5
3
3 8
1
2
TXC
OUT4
C14 22p
NS
VS
R8
OUT5
IN5
PB2 (INT2/AIN0)
(ADC2) PA2
1 3
6
4
3 7
OUT3
RXC
OUT6
IN6
PB3 (OC0/AIN1)
(ADC3) PA3
OT2
1 6
1 2
7
5
3 6
OUT7
IN7
OUT2
PB4 (SS)
(ADC4) PA4
IN8
1 1
8
6
3 5
OUT8
IN8
OUT1
L1
100u
PB5 (MOSI)
(ADC5) PA5
IN3
CON11
10
9
CON3 DB9
7
3 4
1
2
CFWD
GND
VCC
PB6 (MISO)
(ADC6) PA6
R9
1
2
8
3 3
PB7 (SCK)
(ADC7) PA7
IN7
OT3
9
C8
100n
RST
RESET
U2 ULN2803A
C9
100n
IN4
CON12
1
2
3
4
5
6
7
8
1 8
OUT1
IN1
1
OUT16
X2
12
XTAL2
R10
1
2
1 7
2
1
1 6
13
OUT2
IN2
OUT15
C1+
VCC
X1
XTAL1
OT4
1 6
3
2
1 5
14
2 2
OUT3
IN3
OUT14
C1
100n
C2
100n
VS+
GND
RXD
PD0 (RXD)
(SCL) PC0
IN2
1 5
4
3
1 4
15
2 3
OUT4
IN4
OUT13
C1-
T1OUT
TXD
PD1 (TXD)
(SDA) PC1
IN1
I N 5
CON13
1 4
5
4
1 3
16
2 4
1
2
OUT5
IN5
OUT12
C2+
R1IN
OUT9
O UT10
O UT11
OUT12
OUT13
PD2 (INT0)
(TCK) PC2
IN4
IN5
IN6
R11
1 3
6
5
1 2
17
2 5
OUT6
IN6
OUT11
C2-
R1OUT
PD3 (INT1)
(TMS) PC3
OT5
1 2
7
6
1 1
18
2 6
OUT7
IN7
OUT10
C3
100 n
VS-
T1IN
PD4 (OC1B)
(TDO) PC4
1 1
8
7
1 0
19
2 7
OUT8
IN8
OUT9
T2OUT
T2IN
TXD
PD5 (OC1A)
(TDI) PC5
OUT16
IN6
CON14
10
9
8
9
20
2 8
1
2
RXD
OUT15
R12
CFWD
GND
R2IN
R2OUT
PD6 (ICP1)
(TOSC1) PC6
1
2
21
2 9
IN3
OUT14
PD7 (OC2)
(TOSC2) PC7
OT6
U4
MAX232A
CON6
VCC
V C C
U5
LM2940CT
L 2 1 0 u
1
2
2
R1 1M
IN7
CON15
VCC
LED
R16
22k
C15 10n
C10
100n
1
1
2
R4
22k
R13
Vout
Vin
D4
1N5817
R2
R3
D5
1N5817
R15
10k
CON7
OT7
R5
22k
C4
100n
C16
1000u
RST
1
2
CON8
D6
C11100n
PM
IN8
CON17
D2
R6
22k
C5
100n
1
2
R14
1
2
22
C6
C7
J1
C17
1000u
C12
100n
C18
1000u
OT8
FOTO
D3
LED R
D7
6.2V/1.3W
1u
100n
1N5822
OT-1...OT-8 LTV817
U4
MAX232A
U5
LM2940CT
451644219.001.png 451644219.012.png 451644219.023.png 451644219.034.png 451644219.045.png 451644219.056.png 451644219.067.png 451644219.078.png 451644219.089.png 451644219.100.png 451644219.111.png 451644219.122.png 451644219.133.png 451644219.144.png 451644219.155.png 451644219.166.png 451644219.177.png 451644219.188.png 451644219.194.png 451644219.195.png 451644219.196.png 451644219.197.png 451644219.198.png 451644219.199.png 451644219.200.png 451644219.201.png 451644219.202.png 451644219.203.png 451644219.204.png 451644219.205.png 451644219.206.png 451644219.207.png 451644219.208.png 451644219.209.png 451644219.210.png 451644219.211.png 451644219.212.png 451644219.213.png 451644219.214.png 451644219.215.png 451644219.216.png 451644219.217.png 451644219.218.png 451644219.219.png 451644219.220.png 451644219.221.png 451644219.222.png 451644219.223.png 451644219.224.png 451644219.225.png 451644219.227.png 451644219.228.png 451644219.229.png 451644219.230.png 451644219.231.png 451644219.232.png 451644219.233.png 451644219.234.png 451644219.235.png 451644219.236.png 451644219.238.png 451644219.239.png 451644219.240.png 451644219.241.png 451644219.242.png 451644219.243.png 451644219.244.png 451644219.245.png 451644219.246.png 451644219.247.png 451644219.249.png 451644219.250.png 451644219.251.png 451644219.252.png 451644219.253.png 451644219.254.png 451644219.255.png 451644219.256.png 451644219.257.png 451644219.258.png 451644219.260.png 451644219.261.png 451644219.262.png 451644219.263.png 451644219.264.png 451644219.265.png 451644219.266.png 451644219.267.png 451644219.268.png 451644219.269.png 451644219.002.png 451644219.003.png 451644219.004.png 451644219.005.png 451644219.006.png 451644219.007.png 451644219.008.png
Projekty AVT
CON2 C/S/M35-45
bity stopu – 1, sterowanie przepływem
– brak. Rysunek 5 pokazuje główny
ekran programu PuTTY z konfiguracją,
wszystkie pozostałe ustawienia możemy
pozostawić domyślne. Możemy zapisać
nasze ustawienia, wpisując nazwę np.
HAS w polu tekstowym Saved Session, i
naciskając Save lub załadować, wybiera-
jąc z listy i wciskając Load. Ostatecznie
wciskamy Open, powinniśmy się połą-
czyć z HAS-em by sprawdzić, czy odpo-
wiada. Wciskamy Enter, w konsoli powinien
pojawić się znak zachęty.
Obsługa urządzenia
Jeśli jesteśmy już połączeni z HAS-em, to spró-
bujemy się zalogować. Listę dostępnych poleceń
i ich składnię możemy zobaczyć na diagra-
mach syntaktycznych, które można ściągnąć z
Elportalu. Można ją też wyświetlić pleceniem
help , po zalogowaniu. Logowania dokonujemy
za pomocą polecenia logon <hasło>. Od razu
zdradzę, że hasło domyślne to 1234, rysu-
nek 6 przedstawia wycinek konsoli, możemy
zobaczyć ten proces, hasło nie jest ukrywane
podczas wpisywania, jednak po wciśnięciu Enter
konsola zostanie wyczyszczona (przewinięta) i
hasło zniknie. Jeśli wszystko pójdzie zgodnie z
planem, to zobaczymy
napis OK lub ERROR
w przypadku błędu.
Jeśli pomylimy się i
wpiszemy polecenie,
którego nie ma lub
nie mamy do niego
uprawnień, to zosta-
niemy o tym poin-
formowani ( ERROR:
Application permis-
sion denied/ERROR:
Whoa! Application
don’t find ). Tak samo
w przypadku podania
zbyt dużej lub małej
liczby parametrów
( ERROR: Too more/
few params
końca napisu, tylko „dziurę”, w którą możemy
wstawić nowy znak, możemy także przesuwać
kursor strzałkami. Wyświetlenia czasu dokonu-
jemy poleceniem time .
Przejdźmy teraz do poleceń sterujących
wyjściami, poczynając od tych najprostszych.
Polecenie
1
GND
US1 ST3232CD
C5
100n
C6
10u /5 0V
2
C1
SB
1
1 6
3
C1+
VCC
CHARGE
2
1 5
4
VS+
GND
BATT
CON1
C2
3
1 4
5
1 6
2 7
3 8
4 9
5
C1-
T1OUT
DO
C3
4
1 3
6
C2+
R1IN
DI
5
1 2
7
C2-
R1OUT
CLK
6
1 1
8
VS-
T1IN
DATA
C4
7
1 0
9
on
włączy dane wyjście na stałe, a
off
T2OUT
T2IN
MG
8
9
10
R2IN
R2OUT
MI
C1...C4 100n
11
wyłącza na stałe. Dodatkowo możemy włączać/
wyłączać wyjście na stałe w powiązaniu ze zda-
rzeniem nocy, przykłady pokazano na rysunku
7 . Kolejnymi poleceniami przydatnymi przy
czasowym sterowaniu wyjściami jest timer i
countdown . Różnica między nimi polega na tym,
że timer wyłącza, a countdown włącza wyjście
na zadany czas. Dodatkowo możemy powiązać
odliczanie czasu z zajściem nocy, działanie
tego przełączenia jest identyczne z działaniem
wymienionych funkcji, lecz powoduje, że nie-
jako zostały one napisane dopiero przy nastaniu
pory nocnej. Dodatkowo możemy powtarzać
tę komendę każdorazowo przy zajściu nocy,
przełączeniem repeat . Należy
zwrócić szczególną uwagę na
fakt, że timer powoduje tak
jakby wyłączenie wyjścia na
zadany czas i po tym czasie
pozostawienie go włączonym.
Dodatkowo ustawiając timer
AU
12
DB9
AG
Rys. 2
wgrać zawartość pliku HAS_EEPROM do
pamięci EEPROM i ustawić bity zabezpie-
czające, zgodnie z opisem w pliku FuseBits.
Wykonanie wyżej wymienionych czynności
w podanej kolejności jest niezbędne do pra-
widłowego działania HAS.
Uruchomienie. Urządzenie należy zasilać
napięciem stałym 6-15V, niekoniecznie sta-
bilizowanym o wydajności ok. 100mA. Sam
układ nie powinien pobierać więcej jak 25mA
w stanie wyłączenia wszystkich wyjść i 50mA
w przypadku włączenia wszystkich wyjść.
Możemy dołączyć dodatkowe baterie o napię-
ciu 4,5V (3xR6). Do wyjść możemy dołączyć
odbiorniki, np. przekaźniki, powinny one być
zasilane z oddzielnego źródła zasilania i włą-
czone między kolektor tranzystora (czyli kon-
kretne wyjście) a dodatni potencjał ich zasila-
nia, dodatkowo masa tego zasilania powinna
być połączona z układem w miejscu GND.
Diody tłumiące ewentualne przepięcia są wbu-
dowane w matryce tranzystorów i możemy z
nich skorzystać dzięki wyjściu FWCD.
Do wejść możemy dołączać różnego
rodzaju czujniki w postaci przełączników czy
oddzielnych układów. Na złącze J1 możemy
założyć zworkę lub pozostawić rozwarte.
Służy ono do wyboru zachowania się wyjść
przy pracy na bateriach – w przypadku roz-
warcia wyjścia zostaną wyłączone na czas
pracy bateryjnej. Jeśli czułość fotodiody
okazałaby się za duża, możemy zmniejszyć
wartość R1, to samo zaleca się w przypadku
połączenia jej z płytką długimi przewodami.
Jeśli wszystko wydaje się poprawnie zmonto-
wane i przygotowane, możemy włączyć HAS,
dioda LED powinna świecić.
HAS należy połączyć z portem szerego-
wym (zgodnym ze standardem EIA/TIA-
232-C) komputera lub serwera, można też
łączyć go z terminalami np. VT-100. Klient
umożliwiający komunikację po stronie hosta
powinien obsługiwać ANSI ESCAPE CODE
lub emulować VT-100. Zalecane progra-
my to
Rys. 4
) – powyż-
sza zasada dotyczy
też innych poleceń.
Do wylogowania służy polecenie
logoff
Rys. 3
Rys. 5
. Mamy też możliwość zmia-
ny hasła poleceniem passwdmod .
Ja przesunąłem konsolę tak, żeby
polecenia były widoczne, normal-
nie po ich wpisaniu konsola jest
czyszczona. Po pierwszym zalogo-
waniu wypadałoby ustawić zegar,
możemy tego dokonać poleceniem
set
dla
systemów UNIX-owych. W starszych wer-
sjach Windowsa był dodawany program
HyperTerminal , który też może być wyko-
rzystany lub doinstalowany oddzielnie. HAS
z hostem należy połączyć kablem odwró-
conym, z adapterem DB-9. Po włączeniu i
połączeniu HAS-a z hostem, uruchamiamy
klienta i przystępujemy do jego konfigura-
cji, ustawiamy: liczbę bitów na sekundę –
19 200, bity danych – 8, parzystość – brak,
PuTTY
dla Windows,
minicom
, przy okazji możemy też usta-
wić dzień tygodnia. Tym samym
poleceniem można zmieniać te
ustawienia. Jeśli się pomylimy,
możemy usunąć błędne znaki kla-
wiszem BackSpace . Usuwanie ze
środka nie spowoduje przesunięcia
Elektronika dla Wszystkich
Lipiec 2010
451644219.009.png 451644219.010.png 451644219.011.png 451644219.013.png 451644219.014.png 451644219.015.png 451644219.016.png 451644219.017.png 451644219.018.png 451644219.019.png 451644219.020.png 451644219.021.png 451644219.022.png 451644219.024.png 451644219.025.png 451644219.026.png 451644219.027.png 451644219.028.png 451644219.029.png 451644219.030.png 451644219.031.png 451644219.032.png 451644219.033.png 451644219.035.png 451644219.036.png 451644219.037.png 451644219.038.png 451644219.039.png 451644219.040.png 451644219.041.png 451644219.042.png 451644219.043.png 451644219.044.png 451644219.046.png 451644219.047.png 451644219.048.png 451644219.049.png 451644219.050.png 451644219.051.png 451644219.052.png 451644219.053.png 451644219.054.png 451644219.055.png 451644219.057.png 451644219.058.png 451644219.059.png 451644219.060.png 451644219.061.png 451644219.062.png 451644219.063.png 451644219.064.png 451644219.065.png 451644219.066.png 451644219.068.png 451644219.069.png 451644219.070.png 451644219.071.png 451644219.072.png 451644219.073.png 451644219.074.png 451644219.075.png 451644219.076.png 451644219.077.png 451644219.079.png 451644219.080.png 451644219.081.png 451644219.082.png 451644219.083.png 451644219.084.png 451644219.085.png 451644219.086.png 451644219.087.png 451644219.088.png 451644219.090.png 451644219.091.png 451644219.092.png 451644219.093.png 451644219.094.png 451644219.095.png 451644219.096.png 451644219.097.png 451644219.098.png 451644219.099.png 451644219.101.png 451644219.102.png 451644219.103.png 451644219.104.png 451644219.105.png 451644219.106.png 451644219.107.png 451644219.108.png 451644219.109.png 451644219.110.png 451644219.112.png 451644219.113.png 451644219.114.png 451644219.115.png 451644219.116.png 451644219.117.png 451644219.118.png 451644219.119.png 451644219.120.png 451644219.121.png 451644219.123.png 451644219.124.png 451644219.125.png 451644219.126.png 451644219.127.png 451644219.128.png 451644219.129.png 451644219.130.png 451644219.131.png 451644219.132.png 451644219.134.png 451644219.135.png 451644219.136.png 451644219.137.png 451644219.138.png 451644219.139.png 451644219.140.png 451644219.141.png 451644219.142.png 451644219.143.png 451644219.145.png 451644219.146.png 451644219.147.png 451644219.148.png 451644219.149.png 451644219.150.png 451644219.151.png 451644219.152.png 451644219.153.png 451644219.154.png 451644219.156.png 451644219.157.png 451644219.158.png 451644219.159.png 451644219.160.png 451644219.161.png 451644219.162.png 451644219.163.png 451644219.164.png 451644219.165.png 451644219.167.png 451644219.168.png 451644219.169.png 451644219.170.png 451644219.171.png 451644219.172.png 451644219.173.png 451644219.174.png
Projekty AVT
timer/
countdown zacznie liczyć od pierwszej
napotkanej nocy i skończy po zadanym
czasie, nie zważając przy tym na to, czy
jest dzień, czy noc. Przykłady użycia
polecenia można zobaczyć na rysun-
ku 8 . Chyba najdłuższym poleceniem
w sensie składni jest polecenie cycle .
Umożliwia ono ustawienie na zadanych
wyjściach cyklu, czyli w sumie przebiegu
o odpowiednim wypełnieniu. Domyślnie,
bez żadnych przełączeń zostanie odliczo-
ny tylko jeden cykl. Cykl rozpoczynany
jest od czasu wyłączenia, czyli wyjście
początkowo zostanie wyłączone, po czym
włączone na zadany czas i, co ważne,
wyłączone po tym czasie. Możliwe jest
zadanie powtarzania cyklu, wtedy uzyska-
my coś w rodzaju generatora na danym
wyjściu. Przełączenie reverse spowoduje
zanegowanie wyjścia, którym steruje cykl. I tak
pozostanie ono włączone przed rozpoczęciem
lub po zakończeniu cyklu, tj. w czasie wyłą-
czenia będzie włączone, w czasie włączenia –
wyłączone. Dodatkowo, wcześniejsze operacje
można powiązać ze stanem zapadnięcia zmroku
i powtarzać każdorazowo, gdy on zachodzi. Tak
samo jak w przypadku timerów i tu jeśli zadany
czas jest tak długi, że kolejny raz zajdzie zda-
rzenie zmroku, to nie wpłynie to na aktualny
czas odliczania cyklu, cykl musi się zakoń-
czyć. Jeśli ustawiono cykl nieskończony, to
musi zostać odliczona całkowita liczba cyklów,
zanim możliwe będzie przejście wyjścia w stan
statyczny – w dzień. Cykl może okazać się
niezmiernie przydaną funkcją, np. jeśli chodzi
o sterowanie zewnętrznych lampek choinko-
wych nocą. Rysunek 9 przedstawia przykłady
tego polecenia, przy okazji w jednym z przy-
kładowych poleceń „zjadłem” słówko on . I tu
uwaga, maksymalna liczba znaków, jaka może
zostać wpisana wynosi 97, więc w przypadku
długich poleceń lepiej rozszerzyć konsolę do
rozmiaru 100 znaków. Ostatnie polecenie z tej
serii,
Rys. 9
Rys. 6
Rys. 7
Rys. 8
je przesunięcia pory
wyłączenia do nowej
godziny – odliczenie odbędzie się wg czasu,
jaki był w trakcie rozpoczynania odliczania.
Dodatkowo, gdy nastawimy godzinę włącze-
nia mniejszą niż aktualna tego samego dnia,
kolejny cykl zacznie się dopiero za tydzień.
Przykład można zobaczyć na rysunku 10 .
Ostatnim poleceniem związanym z obsługą
wyjść jest polecenie describe . Umożliwia ono
wyświetlenie aktualnie ustawionych funkcji na
poszczególnych wyjściach – rysunki 11 i 12 .
Inną, mniej obszerną częścią poleceń, są
komendy związane z obsługą wejść. Możliwe
jest wyświetlenie ich stanu, czyli czy wejście
jest w stanie wysokim czy niskim, możemy to
sprawdzić, wywołując polecenie state . Stan
up oznacza, że podano wystarczające napięcie
na dany transoptor,
, po którym wpisujemy numer telefonu z
prefiksem (dla polski 48), następnie możemy
od razu nadać mu uprawnienia do ustawiania
wyjść (+w), do odczytu stanu wejść (+r) lub
otrzymywania informacji o zdarzeniach (+e), po
tym przełączeniu występują numery urządzeń,
tak jak w przypadku poznanych już poleceń
on, off, timer, itd. W celu dodania, usunię-
cia, zmiany uprawnień danego użytkownika,
używamy polecenia usermod , numeru telefo-
nu wcześniej dodanego użytkownika, a także
jednego z przełączeń (+|–|#)(w|r|e). Znak plus
oznacza, że dodajemy uprawnienia dla kolejnych
wejść/wyjść/zdarzeń, znak minus – że usuwamy
– że nie podano.
Dodatkowo istnieje możliwość powiadomie-
nia o fakcie zmiany stanu danego wejścia,
można to ustawić za pomocą polecenia event .
Sygnalizacja zmiany stanu może następować
przy odpowiednim zboczu, dostępne opcje to
rise, fail, both , można także ją wyłączyć,
podając opcję off , przykład tych poleceń
można zobaczyć na rysunku 13 , dodatko-
wo wymusiłem zmianę stanu, by zobaczyć
sposób wyświetlania zdarzenia. Zdarzenia,
raz ustawione, pojawiają się w konsoli
down
, umożliwia ustawienie tygodniowe-
go harmonogramu. Pozwala ono na określenie
godziny, minuty, sekundy o jakiej wyjście ma
być włączone i tak samo godziny, o której
ma być wyłączone. Dodatkowo można
określić, w jakie dni tygodnia akcja ta
ma być wykonywana. Polecenie to jest
ograniczone tylko do jednego prze-
działu czasowego dla całego dnia i
wszystkich dni tygodnia. Warto wspo-
mnieć, że ustawienie godziny wyłą-
czenia mniejszej od włączenia też jest
możliwe. Zmiana ustawień czasu pole-
ceniem set time , podczas gdy wyjście
już zostało włączone, nie spowodu-
daily
Rys. 10
Rys. 11
24
na noc, należy pamiętać o tym, że w
czasie gdy on nie liczy, ustawia wyjście
w stan włączenia, w przeciwieństwie
do polecenia countdown , które wyłącza
wyjście gdy nie zlicza. Jeśli zadany
czas jest tak długi, a my ustawiliśmy
wyzwalanie faktem nocy, to
same, nie trzeba za każdym razem ich konfi-
gurować poleceniem event .
Przejdźmy teraz do poleceń, które umożli-
wiają administrację użytkownikami. To za ich
pomocą można będzie ich dodawać i zmieniać
ich uprawnienia. Jako użytkownik w tym syste-
mie jest rozumiany unikalny numer telefonu z
nadanymi uprawnieniami. Praca z telefonem
zostanie omówiona w dalszej kolejności. Aby
dodać użytkownika, używamy polecenia use-
radd
451644219.175.png 451644219.176.png 451644219.178.png 451644219.179.png 451644219.180.png 451644219.181.png
Projekty AVT
uprawnienia z wyszczególnionych w ostatnim
parametrze polecenia urządzeń, a znak kratki (#)
– że zamieniamy uprawnienia na nowe. W szcze-
gólnych przypadkach, aby nadać jednemu użyt-
kownikowi uprawnienia do ustawiania wyjść,
odczytu wejść i powiadomień o zdarzeniach,
polecenie
a po połączeniu telefonu po
chwili powinna przestać.
Sygnalizuje ona, że zachodzi
komunikacja z telefonem lub
jest jej brak. Przy dołączaniu
telefonu należy uważać, w przy-
padku zapełnienia więcej niż
85% pamięci wiadomości SMS
zostanie uruchomiony mecha-
nizm Garbage Collector, który
wykasuje wiadomości SMS.
Mechanizm ten może się także
uruchomić po dołączeniu, jeśli
pamięć SMS się zapełni, zapo-
biega on „zapchaniu” się pamię-
ci wiadomości, i tym samym
niemożności odbioru poleceń.
Przejścia między pracą w kon-
soli a trybem pracy z telefonem
i polecenia temu towarzyszące
widoczne są na uproszczonym
diagramie stanów – rysunek
15 . W trybie automatycznym
liczba poleceń jest ograniczo-
na, możliwe polecenia to: on,
off, timer, countdown, cycle, daily, state . Oprócz
tego dodatkowym ograniczeniem w wydawaniu
poleceń jest lista użytkowników i ich uprawnień.
Polecenia wydane jeszcze w trybie konsoli nie
tracą mocy w trybie automatycznym, np. pole-
cenie
Wykaz elementów
będzie trzeba wywołać przy-
najmniej trzy razy z różnymi przełączeniami tj.
r/w/e/. Usunięcia użytkownika i jego uprawnień
dokonujemy poleceniem userrem , a wypisania
listy użytkowników i ich uprawnień poleceniem
users . Szczegóły zawarte są na diagramach syn-
taktycznych, przykłady widoczne są na rysunku
14 . Maksymalna liczba użytkowników została
ograniczona do 10.
usermod
Płyta główna
Rezystory
R1 . . . . . . . . . . . . . . . . . . . . . . . . 1M Ω
R2 . . . . . . . . . . . . . . . . . . . . . . . . 75 Ω
R3 . . . . . . . . . . . . . . . . . . . . . . . 100k Ω
R4-R6,R16 22k Ω
R7-R14 . . . . . . . . . . . . . . . . . . . .2,2k Ω
R15 . . . . . . . . . . . . . . . . . . . . . . . 10k Ω
Kondensatory
C1-C5,C7-C12. . . . . . . 100nF/63V MKT
C6 . . . . . . . . . . . . . . . . . . 1μF/63V MKT
C13,C14 . . . . . . . . . . . . . . . . . . . .22pF
C15 . . . . . . . . . . . . . . . . 10nF/63V MKT
C16-C18 . . . . . . . . . . . . . . 1000μF/16V
Półprzewodniki
D2 . . . . . . . . . . . . . . . . . . . . . fotodioda
D3 . . . . . . . . . . . . . . . . . . . LED R 5mm
D4,D5 . . . . . . . . . . . . . . . . . . . 1N5817
D6 . . . . . . . . . . . . . . . . . . . . . . 1N5822
D7 . . . . . . . . . . . . . . . Zenera 6,2V/1,3W
U1,U2 . . . . . . . . . . . . . . . . . ULN2803A
U3 . . . . . . . . . . . . . . . ATmega32-16PU
U4 . . . . . . . . . . . . . . . . . . . . . MAX232A
U5 . . . . . . . . . . . . . . . . . LM2940CT-5.0
Pozostałe
OT1-OT8 . . . . . . . . . . . . . . . . . . LTV817
X1 . . . . . . . . . . . . . . . . . . . .8MHz 4mm
CON1,CON2,CON4-CON15, CON17,J1
złącze szpilkowe proste goldpin 1*40pin
+ 1*4pin do łamania
CON3. . . . wtyk D-SUB katowy do druku
L=7,2mm (z bolcami)
CON16. . . . . . . . . . . . . . . . . . ARK2/SM
Podstawka standardowa 18pin 0,3” 2szt.
Podstawka standardowa 16pin 0,3” 1szt.
Podstawka standardowa 40pin 0,6” 1szt.
„Kabel”
C1-C5 . . . . . . . . . . . . 100nF SMD 1206
C6 . . . . . . . . . . . . . . . . .10μF/50V SMD
US1 . . . . . . . . . . . . . . . . . . . ST3232CD
CON1. . . złącze D-sub, gniazdo do
lutowania przewodów
Praca z telefonem
Jak łatwo się domyślić, telefon dołączamy
do złącza DB-9 HAS, tego samego, do które-
go zazwyczaj jest dołączona konsola. Liczba
współpracujących modeli telefonów (z mode-
mem AT) jest ograniczona, a jedyne sprawdzone
modele to Siemens S45 i C35. Prawdopodobnie
praca z modelami Siemensa oscylującymi
wokół tych będzie prawdopodobna, ale jeśli
ktoś ma zamiar kupić taki telefon do celów
współpracy z HAS-em, to niech lepiej wybierze
jeden z modeli testowanych.
Jeśli już chcemy to zrobić na początku, wydaje-
my magiczne polecenie auto , odłączamy konso-
lę, a następnie podłączamy włączony i z wpisa-
nym ewentualnym PIN-em telefon. Znajdująca
się na płytce HAS dioda LED zacznie migać,
Komplet podzespołów z płytką jest dostęp ny
w sieci handlowej AVT jako kit szkolny AVT-2946.
trzeba wydać w trybie konsoli, by
uprawnieni użytkownicy mogli otrzymać SMS
o zdarzeniu. Należy pamiętać, że przypisując
uprawnienia tym 10 użytkowni-
kom do jakiegoś zdarzenia, które
nastąpi, zostanie wysłane jedno-
razowo 10 SMS-
ów. Maksymalna
liczba SMS-ów,
jakie system może
wysłać w ciągu
minuty została
ograniczona do
120 i zależy od
szybkości z jaką
telefon może je
wysyłać. SMS-y
przychodzą-
ce od użyt-
kowników
niedodanych,
niemających
uprawnień, z błędnymi poleceniami będą
odrzucane bez powiadomienia. System nie
wysyła powiadomień także o wykonaniu
danego polecenia. Jeśli na liście urządzeń
polecenia jest choć jedno urządzenie, do
którego użytkownik nie ma uprawnienia,
całe polecenie zostanie odrzucone. W
przypadku polecenia state (uprawnienie
+r), otrzymamy SMS zwrotny ze statusem
wejść, jeśli nadano nam takie uprawnienia.
Jeśli zajdą problemy z komunikacją z tele-
fonem, dioda LED miganiem zacznie to
wskazywać po czasie najdłużej 20 minut.
Przy wpisywaniu poleceń wielkość zna-
ków nie ma znaczenia, a edytory telefonów
lubią ją zmieniać. Wyjście z trybu automa-
tycznego i praca w konsoli będzie możliwa po
ponownym jej dołączeniu i wpisaniu komendy
manual . Komendę tę należy poprzedzić paroma
Enterami, jeśli nadal nie zobaczymy znaku
zachęty, trzeba powtórzyć tę czynność.
Rys. 15
Rys. 13
Rys. 14
Rys. 12
Szymon Janek
225
event
451644219.182.png 451644219.183.png 451644219.184.png 451644219.185.png 451644219.186.png 451644219.187.png 451644219.189.png 451644219.190.png 451644219.191.png 451644219.192.png 451644219.193.png
Zgłoś jeśli naruszono regulamin