Płytka domowej automatyki do Raspberry Pi Zero

Płytka domowej automatyki do Raspberry Pi Zero
Pobierz PDF Download icon

Przedstawiona płytka umożliwia wykorzystanie Raspberry Pi w wersji Zero w systemach domowej automatyki, w których niepotrzebna jest duża ilość GPIO, a ważna jest funkcjonalność i niewielki rozmiar.

Schemat ideowy modułu pokazano na rysunku 1. Ma on następujące funkcjonalności:

  • 4 wejścia cyfrowe z optoizolacją (NPN).
  • Wyjście przekaźnikowe ze stykiem przełączanym 230 V/8 A.
  • Wyjście przekaźnikowe ze stykiem przełączanym 24 V/2 A.
  • 2 wyjścia przekaźnikowe ze stykiem zwiernym 24 V/2 A.
  • 2 wyjścia OC 5 V (z szeregowym rezystorem 100 Ω).
  • Interfejs XBEE dla przedstawionych w EP zgodnych modułów komunikacyjnych.
  • Zegar czasu rzeczywistego z podtrzymaniem bateryjnym DS1338.
  • Złącze magistrali I²C (3,3 V).
Rysunek 1. Schemat ideowy modułu dla Raspberry Pi Zero HAB

Do monitorowania sygnałów cyfrowych ze złącza I14, wykorzystany jest typowy układ separacji opartej o transoptor, filtr RC i bramkę Schmitta typu 74HC132 (U4). Układ eliminuje sprzętowo krótkie zaburzenia impulsowe ze styków mechanicznych. Szeregowo z diodą transoptora włączono LED sygnalizujący aktywność wejścia. Do polaryzacji wejść można użyć napięcia +5 V zasilającego moduł lub w wypadku wymaganej separacji galwanicznej – napięcie zewnętrzne. Wejścia przeznaczone są do sterowania w standardzie NPN. Wyjścia cyfrowe zrealizowane są w oparciu o przekaźniki, cewki przekaźników są sterowane za pośrednictwem bufora U2 typu ULN2003. Wyjście O1 zrealizowane jest na przekaźniku o zwiększonej obciążalności 230 V/8 A. Pozostałe wyjścia O2 (przełączane), O34 (zwierne/bistabilne programowo) mają obciążalność 24 V/2 A. Wyjścia przekaźnikowe mają sygnalizację stanu za pomocą LED. Dwa bufory są wyprowadzone na złącze O56 poprzez rezystory R13 i R14 (100 Ω) i mogą służyć do bezpośredniego sterowania LED lub SSR. Dla realizacji komunikacji szeregowej, moduł wyposażono w złącze Xbee umożliwiające użycie szerokiej oferty modułów komunikacyjnych opisanych w EP.

Moduły Xbee mają niezależny zasilacz oparty o przetwornicę obniżającą U3 typu ADP2108, co umożliwia stosowanie modułów RF o większej mocy nadajnika. Złącze I²C służy do przyłączenia modułów rozszerzeń I²C zasilanych napięciem 3,3 V. Moduł uzupełnia zegar czasu rzeczywistego U1 typu DS1338 jest przydatny w aplikacjach bez połączenia z zegarem wzorcowym.

Układ zmontowano na dwustronnej płytce drukowanej, której schemat montażowy pokazano na rysunku 2. Zmontowany moduł HAB jest stabilną płytą bazową, mocowaną w obudowie za pomocą 4 śrub M3, a płytka Raspberry PI Zero jest montowana jako moduł poprzez złącze pośrednie GPIO. Konstrukcja mechaniczna zapewnia dostęp do wszystkich złącz Raspberry Pi oraz karty SD. Moduł zasilany jest poprzez gniazdo PWR, z zewnętrznego zasilacza 5 V/1 A.

Rysunek 2. Schemat montażowy modułu dla RaspbPI Zero HAB

Moduł nie wymaga uruchamiania. Szybkiego sprawdzenia poprawności działania możemy dokonać logując się do konsoli w trybie administratora: (sudo su). W celu odczytu wejścia należy wykonać następujące polecenia (dla np. GPIO 24 – IN1):

echo 24> /sys/class/gpio/export
cd /sys/class/gpio/gpio24
echo in > direction

Bieżący odczyt stanu gpio 24 wykonany jest poleceniem cat value. Aby sprawdzić działanie wyjść (GPIO 6 – OUT1):

echo 6> /sys/class/gpio/export
cd /sys/class/gpio/gpio6
ls
echo out > direction

Ustawienia wyjścia jest wykonywane poleceniem echo 1 > value. Jego zerowanie echo 0 > value. W podobny sposób należy sprawdzić pozostałe wejścia i wyjścia. Dla sprawdzenia działania portu szeregowego, najlepiej użyć modułu konwertera XbeeUSB i z PC zalogować się korzystając z SSH do Raspberry PI. W celu wykorzystania RTC konieczne jest dodanie obsługi magistrali I²C. W tym celu sprawdzamy czy w pliku sudo nano /etc/modules znajduje się definicja i2c-dev. Jeżeli nie, to musimy ją dodać, zapisać zmiany i zrestartować PI. Po uruchomieniu należy pobrać narzędzia odpowiadające za obsługę I²C:

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Po zainstalowaniu, w pierwszej kolejności sprawdzamy w konsoli prawidłowe działanie I²C sudo i2cdetect -y 1. Powinno pojawić się urządzenie pod adresem 0x68, jest to nasz RTC – DS1338. Następnie ładujemy moduł zegara:

sudo modprobe rtc-ds1307
sudo bash
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Ustawienia czasu i daty systemowej dokonujemy poleceniem sudo date, zapis czasu systemowego do RTC wykonujemy poleceniem sudo hwclock –w, a sprawdzenia poprawności zapisu sudo hwclock –r. Aby czas systemowy po uruchomieniu PI był automatycznie aktualizowany musimy w pliku sudo nano /etc/modules dodać linię rtc-ds1307 i w pliku sudo nano /etc/rc.local dodać linie:

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock –s

przed poleceniem exit 0. Przy kolejnym uruchomieniu Pi, czas zostanie pobrany z RTC bez synchronizacji z zegarem sieciowym. Jeżeli wszystko działa poprawnie, moduł jest gotowy do zastosowania we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • R1…R8, R15: 2,2 kΩ (SMD 0805)
  • R9…R12: 10 kΩ (SMD 0805)
  • R13, R14: 100 Ω (SMD 0805)
  • RP1: 220 Ω (drabinka SMD CRA06)
Kondensatory:
  • C1, C2, C9, C10: 0,1 µF (SMD 0805)
  • C3…C6: 220 pF (SMD 0805)
  • C7, C8: 10 µF (SMD 0805)
  • CE1: 100 µF/10 V (SMD „B”)
Półprzewodniki:
  • DZ1: P6SMB6.8A (Transil)
  • LD…LD9: dioda LED SMD 0805
  • IS1…IS4: LTV357
  • U1: DS1338Z (SO8)
  • U2: ULN2003 (SO16)
  • U3: ADP2108AUJZ (SOT-23-5)
  • U4: 74HC132 (SO14)
Pozostałe:
  • BAT: oprawka KEYS300 SMD + Bateria CR1220
  • GPIO: złącze IDC40 żeńskie
  • I14: DG381-3.5-5 (złącze śrubowe 3,81 mm)
  • I²C, O56: złącze EH kątowe
  • L1: 2,2 mH (dławik DLJ4018 2,2 µH)
  • O1, O2, O34: złącze ARK3/5 mm
  • PWR: DG381-3.5-2 (złącze śrubowe 3,81 mm)
  • RL1: przekaźnik RM96P-5V
  • RL2: przekaźnik RM40P-5V
  • RL3, RL4: przekaźnik RM40Z-5V
  • RM: podstawka Xbee – dwie listwy 2×10/2 mm żeńskie
  • XT: kwarc 32768 kHz (SMD)
Artykuł ukazał się w
Elektronika Praktyczna
październik 2016
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik grudzień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna grudzień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów