Wykonane przez autorów prototypy nadajnika i odbiornika zostały przedstawione odpowiednio na fotografii 1 i fotografii 2, natomiast ich schematy blokowe na rysunku 3 i rysunku 4.
Układ i działanie
Główne komponenty użyte w tym projekcie to:
Płytka Arduino Uno
Arduino Uno jest płytką rozwojową opartą o mikrokontroler AVR ATmega328P z sześcioma analogowymi pinami wejściowymi i 14 cyfrowymi pinami I/O. Mikrokontroler posiada 32 kB pamięci ISP flash, 2 kB pamięci RAM, 1 kB EEPROM i może pracować z częstotliwością zegara 16 MHz. Płytka Arduino Uno (Board1) zapewnia możliwość komunikacji szeregowej poprzez UART, SPI oraz I2C. W tym projekcie płytka ta jest wykorzystywana jako odbiornik.
Cyfrowe piny I/O 12, 11, 7, 6, 5 i 4 płytki Board1 są używane do interfejsu z wyświetlaczem LCD, a jej cyfrowe piny I/O 2 i 3 są skonfigurowane jako piny przerwania.
HT12E
Enkodery 212 to seria układów scalonych CMOS LSI używanych zwykle w systemach zdalnego sterowania. Są one w stanie zakodować informacje składające się z N bitów adresu i 12-N bitów danych. Każde wejście adresu/danych może być ustawione na jeden z dwóch stanów logicznych. Zaprogramowany adres/dane są przesyłane wraz z bitami nagłówka za pośrednictwem radiowym lub podczerwieni po otrzymaniu sygnału wyzwalającego.
HT12D
Dekodery 212 to seria układów LSI CMOS, które są sparowane z nadajnikami HT12E i przeznaczone do stosowania w systemach zdalnego sterowania. Dekodery odbierają szereg adresów i danych z zaprogramowanych enkoderów serii 212, które są przesyłane przez nośnik za pomocą fal radiowych lub podczerwieni. Porównują one trzy razy, w sposób ciągły, szereg danych wejściowych z ich adresami lokalnymi. Jeśli nie zostaną znalezione żadne błędy lub niedopasowane kody, kody danych wejściowych są dekodowane i przekazywane do pinów wyjściowych. Dekodery 212 są w stanie zdekodować informacje, które składają się z N bitów adresu i 12-N bitów danych. Aby transmisja była poprawna, bity adresowe zarówno kodera jak i dekodera muszą być takie same.
16×2 znakowy LCD
Wyświetlacz LCD jest używany do wyświetlania całkowitej liczby gości wchodzących do budynku. Wyświetlacz LCD posiada szesnaście kolumn i dwa wiersze do wyświetlania danych. Zastosowany tutaj podświetlany wyświetlacz LCD jest połączony z Arduino w trybie 4-bitowym. Piny LCD RS, EN, D4, D5, D6, D7 są podłączone do cyfrowych pinów I/O odpowiednio 12, 11, 7, 6, 5, 4 odbiornika z Arduino Uno.
Moduły 434MHz
Moduły nadajnika (TX) i odbiornika (RX) 434 MHz są urządzeniami elektronicznymi służącymi do nadawania i odbierania sygnałów o częstotliwości radiowej pomiędzy dwoma urządzeniami. Moduły te są szeroko stosowane w projektowaniu elektronicznym, aby uniknąć złożoności w projektowaniu obwodów radiowych. Częstotliwość nośna modułów używanych tutaj to 434 MHz.
LM358
Ten układ scalony ma dwa niezależne wzmocniacze operacyjne z wewnętrzną kompensacją częstotliwości, które zostały zaprojektowane specjalnie do pracy z jednego źródła zasilania o szerokim zakresie napięć. Możliwa jest również praca z rozdzielonych źródeł zasilania. W tym projekcie LM358 jest używany jako podwójny komparator do generowania impulsu, gdy osoba wchodzi lub wychodzi.
Dioda LED IR i fotodioda
Para diod LED IR i fotodioda IR jest używana do wykrywania wejścia lub wyjścia osoby. W tym projekcie zastosowano dwie takie pary - jedną przy bramce wejściowej i jedną przy bramce wyjściowej.
Schematy połączeń nadajnika i odbiornika są pokazane odpowiednio na rysunku 5 i rysunku 6.
Kiedy odwiedzający wchodzi do hali, chwilowo blokuje falę IR nadawaną przez diodę IR LED na bramie wejściowej, a część energii fali IR odbitej od ciała odwiedzającego jest wykrywana przez fotodiodę IR. Układ LM358 działa jako podwójny komparator i przetwarza chwilową fluktuację wykrytą przez fotodiodę na impuls. Impuls ten jest przesyłany do odbiornika przez nadajnik 434 MHz. Dwa wyjścia komparatora (jedno dla wejścia i jedno dla wyjścia) są podłączone do dwóch pinów danych enkodera HT12E.
Po udanej transmisji bezprzewodowej impulsy docierają na piny danych dekodera HT12D po stronie odbiornika. Dwa piny danych dekodera HT12D są podłączone do dwóch pinów przerwania płytki Arduino UNO.
Kiedy osoba przechodzi przez bramkę wejściową, impuls jest generowany na pin 7 (OUT2) LM358, który jest podłączony do pinu AD9 w HT12E. Ten sam impuls jest przesyłany i pojawia się na pinie D9 w HT12D na odbiorniku. Pin D9 jest połączony z pinem 3 (pin przerwania) płytki Arduino. Podprogram przerwania wykonuje się i zwiększa liczbę gości o jeden. Analogiczna operacja jest wykonywana podczas wychodzenia osoby, z wyjątkiem tego, że używane są oddzielne linie danych HT12E (pin AD8) i HT12D (pin D8) a pin 2 w Arduino jest używany jako pin przerwania.
Program działający w mikrokontrolerze Arduino monitoruje przerwania i zwiększa/zmniejsza liczbę odwiedzających oraz wyświetla ją na wyświetlaczu LCD 16×2. Arduino IDE jest używane do programowania płytki Arduino Uno.
Budowa i testowanie
Podłącz płytkę Arduino do komputera i wybierz odpowiedni port COM oraz nazwę płytki z menu Tools w Arduino IDE. Następnie wgraj kod źródłowy visitor_counter_wl.ino na płytkę Arduino klikając na przycisk Upload w IDE.
Schemat płytki drukowanej nadajnika pokazano na rysunku 7, a rozmieszczenie jego elementów na rysunku 8. Po zmontowaniu układu na płytce należy podłączyć baterię 9 V do BATT.1.
Układ płytki drukowanej odbiornika pokazany jest na rysunku 9, a jego rozmieszczenie elementów na rysunku 10. Po zmontowaniu układu na płytce należy podłączyć baterię 9 V do BATT.2.
W celu rozwiązywania problemów, należy sprawdzić sygnały w różnych punktach testowych zaznaczonych na rysunku 5 i rysunku 6 za pomocą multimetru. Oczekiwane sygnały w różnych punktach testowych są wymienione w tabeli.