PROJEKTY AVT HABoard moduł automatyki domowej dla RPi+ Moduł automatyki domowej dla Raspberry Pi+. Opisywany projekt ułatwia zastoswanie Raspberry Pi+ w systemach automatyki domowej. Zawiera zasilacz oraz drivery wejść/wyjść, które konwertują poziom napięcia wejściowego na bezpieczny dla naszego mikrokomputera oraz umożliwiają mu sterowanie dołączonymi urządzeniami. Rekomendacje: płytka przyda się wszystkim, którzy planują zastosowanie Raspberry Pi do sterowania dołączonymi urządzeniami. Schemat ideowy płytki podzielono na schematy poszczególnych bloków funkcjonalnych, które zostaną omówione oddzielnie. Ze względu na zasilanie modułu napięciem + V DC z typowego zasilacza (w tym buforowego w razie aplikacji wymagającej podtrzymania zasilania) konieczne jest zapewnienie + V dla zasilania Raspberry Pi. W tym celu zastosowano przetwornicę obniżająca napięcie opartą o układ scalony ADP0-0 (U0), której schemat ideowy zamieszczono na rysunku. Wejście przetwornicy jest zabezpieczone przed przepięciami diodą D. Dioda świecąca LD sygnalizuje doprowadzenie zasilania. Ze względu na wysoką częstotliwość kluczowania, istotny jest dobór elementów przetwornicy. Filtr wejściowy wykonano z użyciem kondensatorów o obniżonym ESR: CE0 (tantalowy) i C0 w obudowie z dielektrykiem XR. Podobne wymagania dotyczą filtru wyjściowego (kondensatory C, C), gdzie w miejsce typowego kondensatora elektrolitycznego, zastosowano nowoczesne kondensatory ceramiczne mf/ V z dielektrykiem XR. Przetwornica jest w stanie zapewnić prąd, A wystarczający do zasilania Raspberry i typowych kart Wi-Fi. Do monitorowania sygnałów cyfrowych zastosowano typowy układ separacji opartej o transoptor, filtr RC i bramkę Schmidta (rysunek ). Układ sprzętowo eliminuje krótkie zakłócenia impulsowe ze styków mechanicznych. W szereg z diodą transoptora włączono diodę LED sygnalizującą obecność napięcia. Do polaryzacji wejść można wykorzystać + V zasilające moduł lub napięcie zewnętrzne w wypadku wymaganej pełnej separacji. Wejścia przeznaczone są do sterowania w standardzie NPN. Sygnały wejściowe podzielone są na dwie grupy po cztery wejścia, umożliwia to sterowanie z dwóch osobnych potencjałów z zachowaniem izolacji. Wyjścia cyfrowe (rysunek ) zrealizowano w oparciu o przekaźniki. Cztery grupy składające się z przekaźnika zwiernego i przełącznego zapewniają elastyczność połączeń. Cewki przekaźników sterowane W ofercie AVT* AVT- A Podstawowe informacje: Dwie grupy, po cztery wejścia cyfrowe z optoizolacją. Cztery wyjścia przekaźnikowe ze stykiem zwiernym 0 V/ A. Cztery wyjścia przekaźnikowe ze stykiem przełącznym 0 V/ A. Interfejs szeregowy RS. Zegar czasu rzeczywistego z podtrzymaniem bateryjnym DS. Wbudowany zasilacz impulsowy V/, A dla Raspberry PI. Zasilanie + V, możliwa praca z zasilaczem buforowym systemu antywłamaniowego. Dodatkowe materiały na FTP: ftp://ep.com.pl, user:, pass: aagtgj wzory płytek PCB Projekty pokrewne na FTP: (wymienione artykuły są w całości dostępne na FTP) AVT- Moduły do komunikacji szeregowej Xbee dla Raspberry Pi i nie tylko (EP /0) AVT- RaspbPI_PLUS_GPIO. Moduł rozszerzeń GPIO Pi B + (EP /0) AVT- RaspbPI_DAC przetwornik audio dla Raspberry Pi (EP /0) AVT- RaspbPI_NFC płytka czytnika RFID dla Raspberry Pi i nie tylko (EP /0) AVT- RaspbPI_GSM Płytka z modemem GSM dla Raspberry PI (EP /0) AVT-,-,- Moduły rozszerzeń dla Raspberry Pi () RaspbPI_LCD, RaspbPI_Relay, RaspbPI_LED_PWM_ Expander (EP /0) * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl ELEKTRONIKA PRAKTYCZNA 0/0
HABoard moduł automatyki domowej dla RPi+ C U0 PWR V D PSMBA LD R k + CE0 0uF/V C0 R0 00k ADP0 BST VIN EN PGOOD TP SW NC FB D0 SK L0.uH SDR0 C uf C uf V0 Rysunek. Schemat zasilacza + V V V LD0 VI DI R k IS0 LTV R0 0k V C0 nf U0 HC IN DI DI DI DI VI LD VI DI R k IS LTV R 0k V C nf U HC IN VI DI DI DI DI LD VI IS LTV R 0k U0 LD VI IS LTV R0 0k U DI R k LD VI IS LTV V R 0k C nf HC 0 U0 RP0 RA RA RB RB RC RC RD RD 0R GPIO GPIO0 GPIO GPIO DI R k LD VI IS LTV V R 0k C nf HC 0 U RP RA RA RB RB RC RC RD RD 0R GPIO GPIO GPIO GPIO DI R k C nf HC V DI R k C nf HC V V C 0.u F V C 0.u F LD VI IS LTV R 0k U0 LD VI IS LTV R 0k U DI R k C nf HC DI R k C nf HC Rysunek. Schemat wejść cyfrowych są z wyprowadzeń GPIO poprzez bufor U (ULN0) zapewniający odpowiednią wydajność prądową. Moduł wyposażono w interfejs szeregowy w standardzie RS oparty o układ MAX. Schemat interfejsu zamieszczono na rysunku. Układ uzupełnia opcjonalny zegar czasu rzeczywistego DS z podtrzymaniem bateryjnym (rysunek ). Przyporządkowanie wykorzystanych przez HABoard wyprowadzeń Raspberry Pi przedstawia rysunek. Montaż Układ zmontowany jest na dwustronnej płytce drukowanej jej schemat montażowy pokazano na rysunku. Ze względu na specyfikę zastosowań zastosowałem odmienną konstrukcję mechaniczną. Komputerek Raspberry Pi standardowo jest uzupełniany nakładkami rozszerzającymi jego funkcje. W wypadku sterowania odbiornikami zasilanymi z napięcia 0 V AC lub większej liczby wyprowadzeń, taka konstrukcja jest niestabilna mechanicznie, a przez to niebezpieczna dla użytkownika. W zastosowanym rozwiązaniu, moduł HAB jest stabilną płytą bazową, mocowaną w obudowie za pomocą śrub M, a płytka Raspberry Pi jest montowana jako moduł poprzez złącze pośrednie GPIO. Stabilność mocowania zapewniają tuleje M,. Rolę łącza pośredniego pełnią dwa złącza precyzyjne kielichowe REKLAMA ELEKTRONIKA PRAKTYCZNA 0/0
PROJEKTY typu ZL0-0 o wysokości mm, montowane jedno na drugim. Przy montażu w rozdzielnicy elektrycznej na szynie TS płytkę HAB można zamocować przy wykorzystaniu uchwytów Weidmuller typu RS00. Budowa mechaniczna zapewnia dostęp do wszystkich złącz Raspberry Pi. Wszystkie zastosowane złącza sygnałowe są rozłączane. Uruchomienie Moduł nie wymaga uruchamiania. Należy jedynie skonfigurować system do obsługi poszczególnych peryferiów. 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 ic-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 ic-tools Po zainstalowaniu, w pierwszej kolejności sprawdzamy w konsoli prawidłowe działanie interfejsu I C za pomocą polecenia Wykaz elementów Rezystory: (SMD 00) R R, R, R, R, R, R, R, R, R:, kv R0, R, R, R, R, R0, R, R: 0 kv R0: 00 kv RP0, RP: 0 V (CRA0S0 rezystor PACK ) Kondensatory: C, C, C, C0, C, C0 C: 00 nf (SMD 00, XR, V) C0 C: nf (SMD 00, XR, V) C0: 0, mf (SMD, XR, 0 V) C, C: mf (SMD 0, XR, V) CE0: 0 mf/ V (SMD C ) Półprzewodniki: D0: SK (dioda Schottky) D: PSMBA (transil V) LD LD: dioda LED, SMD, zielona IS0 IS: LTV U: ULN0 (SOW) U0, U: HC (SO) U0: DSZ (SO) U0: ADP0 (SOTP) U0: MAX (SO) Inne: BAT: bateria litowa CR0 z podstawką do druku KEYS000 GPIO: złącze kielichowe mm, 0 pin szt. IN, IN, OUT, OUT, OUT, OUT: złącze MC rozłączane, proste, kompletne, mm L0:, mh (dławik SMD, SDR0,, V) PWR: złącze MC rozłączane, proste, kompletne, mm RL, RL, RL, RL: RMP (przekaźnik, styki przełączne, V DC) RL, RL, RL, RL: RMZ (przekaźnik, styki zwierne, V DC) RS: złącze MC, rozłączane, proste, kompletne, mm XT: kwarc khz (SMD) sudo icdetect -y. Powinno pojawić się urządzenie pod adresem 0x jest to nasz RTC (DS). Następnie ładujemy moduł zegara: R k R k R k R k R k R k R k R k LD LD LD LD LD LD LD LD GPIO GPIO GPIO GPIO GPIO GPIO0 GPIO GPIO V RL V RL V RL V RL V RL V RL V RL V RL RL RMP RL RMZ RL RMP RL RMZ RL RMP RL RMZ RL RMP RL RMZ IN IN IN IN IN IN IN IN Rysunek. Schemat wyjść cyfrowych C C C C+ VS+ C C+ C Vs TOUT RIN Rysunek. Schemat interfejsu RS U ULN0 C U0 MAX sudo modprobe rtc-ds0 sudo bash echo ds0 0x > / sys/class/ic-adapter/ic-/ new_device VCC TOUT RIN ROUT TIN TIN ROUT OUT OUT OUT OUT OUT OUT OUT OUT COM RXD TXD 0 RL RL RL RL RL RL RL RL V C C0 V NO NC CM NO CM NO NC CM NO CM NO NC CM NO CM NO NC CM NO CM OUT OUT OUT OUT RS TX RX ELEKTRONIKA PRAKTYCZNA 0/0
HABoard moduł automatyki domowej dla RPi+ Ustawienia czasu i daty systemowej dokonujemy poleceniem sudo date. Zapis czasu systemowego do RTC wykonujemy poleceniem sudo hwclock w. Sprawdzenie poprawności zapisu sudo hwclock r. Aby czas systemowy XT.kHz U0 DSZ X VCC X SQ VBT SCL SDA V SCL SDA C0 po uruchomieniu Pi był aktualizowany z RTC automatycznie musimy w pliku sudo nano / etc/modules dodać linię rtc-ds0, a w pliku sudo nano /etc/rc.local dodać linie: echo ds0 0x > /sys/class/ ic-adapter/ic-/new_device sudo hwclock s Należy je umieścić przed poleceniem exit 0. Przy kolejnym uruchomieniu PI, czas zostanie pobrany z RTC bez synchronizacji z zegarem sieciowym. W korzystaniu z komunikacji RS musimy uzyskać dostęp do portu szeregowego, który jest domyślnie zablokowany przez terminal SSH. W tym celu należy edytować plik cmdline.txt $ sudo nano /boot/cmdline.txt i usunąć wpisy dotyczące konsoli console=ttyama0,00 BAT CR0 Rysunek. Schemat zegara RTC GPIO V V0 SDA V0 SCL GPIO TXD 0 RXD GPIO GPIO GPIO GPIO GPIO V GPIO GPIO0 0 GPIO0 GPIO GPIO GPIO GPIO GPIO 0 GPIO GPIO GPIO GPIO GPIO GPIO GPIO0 0 GPIO Rysunek. Przyporządkowanie GPIO Rysunek. Schemat montażowy płytki automatyki dla Raspberry Pi ELEKTRONIKA PRAKTYCZNA 0/0
Rysunek. Zaktualizowana lista GPIO REKLAMA kgdboc=ttyama0,00 oraz edytować plik initab $ sudo nano /etc/initab komentując # w nim linię T0:respawn:/sbin/getty -L ttyama0 00 vt00. Po wprowadzeniu zmian, należy zrestartować Raspberry. Dla sprawdzenia działania modułu można wykorzystać WebIOPI. W tym celu należy pobrać oprogramoeanie spod adresu http://goo.gl/ctvenh i zainstalować je: $ tar xvzf WebIOPi-x.y.z.tar.gz $ cd WebIOPi-x.y.z $ sudo./setup.sh Aktualna wersja 0.. nie ma jeszcze obsługi rozszerzonego GPIO (plus), należy więc wykonać pewne modyfikacje plików źródłowych. W pliku./python/utils/version.py file należy edytować linię i dopisać do niej wartości wyróżnione pogrubieniem: _MAPPING[] = [ V, V0,, V0,,,,,,,,,,,,, V,, 0,,,,,,,, DNC, DNC,,,,,,,,,, 0,, ] Należy również edytować plik./htdocs/webiopi.js: Odszukać linię : this.pins = Array(); zamienić ją na this.pins = Array();. Linię 0 for (var pin=; pin<=; pin++) zamienić na for (var pin=; pin<=0; pin++). Plik należy skompilować zmiany poleceniem sudo./setup.sh skip- -apt. Po kompilacji należy skonfigurować Webiopi do obsługi portu szeregowego. W tym celu w pliku /etc/webiopi/config w sekcji DEVICE należy dodać wpis serial = Serial device:ttyama0 baudrate:00 lub usunąć komentarz # jeżeli wpis istnieje, zapisać zmiany w pliku i uruchomić serwer Webioipi sudo /etc/init.d/webiopi start. Po przejściu do przeglądarki internetowej pod adres http://localhost:000/ (użytkownik: webiopi, hasło: raspberry) w linku GPIO-header powinna być widoczna zaktualizowana lista GPIO (rysunek ) oraz po wybraniu linku Serial Monitor, możliwe jest sprawdzenie działania portu szeregowego rysunek. Elastyczność Webiopi umożliwia wykorzystanie go w prostych aplikacjach domowej automatyki poprzez modyfikację skryptów w dołączonych przykładach, sposoby wykorzystania opisane są na stronie Wiki projektu oraz na forum. Adam Tatuś, EP Rysunek. Aktywny port szeregowy