UniPi w służbie inteligentnego domu
Czy zastanawialiście się kiedyś nad realizacją własnego projektu inteligentnego domu? Ja osobiście nigdy nie mogłem zebrać się w sobie, aby taki plan zrealizować we własnym domu, ale jakiś czas temu, dzięki uprzejmości sklepu ElTy.pl, trafiła w moje ręce ciekawa płyta UniPi, która znacznie upraszcza cała sprawę.
UniPI 1.1
Płytka została zaprojektowana do współpracy z poprzednią generacją komputerków Rasbperry Pi B oraz B+, jednak bez większych kłopotów dogada się również z Raspberry Pi 2.
UniPI jest wyspecjalizowanym rozszerzeniem, które zamienia naszą "mailnę" w zaawansowane urządzenie do sterowania automatyką domową. Bardzo istotną kwestią podczas projektowania jakiejkolwiek instalacji domowej, jest bezpieczeństwo użytkownika i ochrona jego zdrowia, dlatego ogromnym atutem UniPi jest spełnienie dyrektyw CE. Płyta posiada wymiar 198mm x 86mm i można ją zamontować na szynie DIN.
UniPI udostępnia szeroki wachlarz możliwości:
- 8 przekaźników (250V / 5V AC)
- 12 wejść cyfrowych z pełną optoizolacją (5 - 24V DC) + 2 konfigurowalne
- 2 wejścia analogowe (0 - 10V, max. 20mA)
- 1 wyjście analogowe (0 - 10V)
- diody sygnalizujące stan wejść cyfrowych i przekaźników
- przetwornica step-up 5V » 12V (max. 200mA)
- zegar RTC z podtrzymaniem bateryjnym
- porty komunikacyjne: 1-Wire, I2C oraz UART
Konfiguracja pinów
Zacznim przystąpimy do podłączenia Raspberry Pi do UniPi, możemy ustawić kilika zworek, które konfigurują nam różne aspkety pracy według naszych oczekwiań.
Zasilanie pojedyncze lub podwójne
Zworka JP1 definiuje nam sposób zasilania. Jeśli jest zamknięta - Raspberry Pi będzie zasilane bezpośrednio z płyty UniPi. Należy jednak pamiętać, że maksymalny prąd jaki będziemy w stanie przepuścić do Raspberry Pi to 1.1A. W takiej konfiguracji zalecany zasilacz to 5V/2A. Nie podłączamy wtedy zasilania do Raspberry PI.
Jeśli zworka JP1 jest otwarta, musimy zasilić UniPI oraz Rasbperry z niezależnych źródeł. Taka konfiguracja jest wymagana w przypadku, gdy planujemy większe zapotrzebowanie na prąd przez "malinę".
Zworki konfiguracyjne JP1 / UART / I2C
Żródło napięcia dla wejść cyfrowych
Drugą istotną kwestią jest decyzja, czy będziemy korzystać z wbudowanej przetwornicy 12V jako napięcie portów cyfrowych, czy będziemy korzystać z zewnętrznego źródła napięcia.
W domyślnej konfiguracji zworka JP2 jest ustawiona po przeciwnej stronie jej opisu i definiuje wewnętrzne źródło napięcia 12V, które pojawi się również na złączu P02. Jeśli zdecydujemy się na zewnętrzne źródło zasilania (ustawienie bliżej opisu), tym razem masa GND UniPi będzie znajdowała się na złączu P02. Konfiguracja zworki JP2 ma kluczowe znaczenie przy ustawianiu kolejnej zworki JP3.
Zworka JP3 konfiguruje nam tryb pracy wejść cyfrowych I01 oraz I02. Pozycja bliższa opisowi na płytce, konfiguruje je do pracy z zewnętrznym źródłem zasilania, którego masa musi być podłączona do złącza P02. Jeśli chcemy korzystać właśnie z takiego ustawiania, pamiętajmy że zworka JP2 musi być również być skonfigurowana do pracy w trybie zewnętrznego źródła zasilania.
Zworka JP4 konfiguruje nam tryb pracy wejść cyfrowych I03 oraz I04. Pozycja bliższa opisowi na płytce, konfiguruje je do pracy z zewnętrznym źródłem zasilania, którego masa musi być podłączona do złącza P01.
Zworka JP5 konfiguruje nam tryb pracy wejść cyfrowych I05 - I14. Pozycja blższa opisowi na płytce, konfiguruje je do pracy z zewnętrznym źródłem zasilania, którego masa musi być podłączona do złącza P01. Drobna uwaga - wejścia I13 oraz I14 są podłączone do gniazda P2, które może być wykorzystane przez Raspberry Pi w wersji starszej niż PLUS.
Zworki JP2 - JP5
Oprogramowanie
UniPI posiada spore wsparcie oprogramowania, zarówno tego darmowego jak i komercyjnego. Najważniejszy jest jednak autorski Evok - udostępniający niezbędne API z obsługą WebSocket oraz REST.
Do dyspozycji mamy również dostępne:
- Node-RED - platforma Node.js z integracją IBM Bluemix Cloud
- Wyliodrin - programowanie z poziomu przeglądarki internetowej
- FHEM - projekt wykorzystujący język PERL
- JEEDOM - platforma bazująca na PHP
- PiDome - platforma domowej automatyki
- REX - profesjonalna platforma PLC
- HomeSeer - platforma domowej automatyki
Instalacja Evok jest banalnie prosta i sprwadza się do wykonania kilku ploeceń:
- git clone https://github.com/UniPiTechnology/evok
- cd evok
- chmod +x install-evok.sh uninstall-evok.sh
- sudo ./install-evok.sh
I praktycznie już możemy korzystać z naszego UniPI z poziomu przeglądarki internetowej:
UniPI sterowany za pomocą Evok API
Na GitHub znajdziecie również przykład sterowania UniPI za pomocą Perla lub Pythona.
Magistrala I2C
UniPI wykorzystuje do działania magistralę I2C_1 bezpośrednio z Raspberry Pi. To właśnie do niej podłączone są ważniejsze elementy płyty: układ sterujący przekaźnikami (MCP23008), master 1-Wire (DS2482-100), zegar RTC (MCP79410), ADC (MCP3422) oraz pamięć EEPROM (24AA00/24C02).
Magistrala I2C_1 jest również wyprowadzona na gniazdo RJ11, dodatkowo zabezpieczone przed ESD. I2C_1 jest również doprowadzone do zewnętrznego konektora (dodatkowe miejsce na przylutowanie), ale nie posiada ona zabezpieczenia przed ESD. Poziom logiczny to 3.3V TTL.
Co prawda, możliwy jest wybór zworkami, czy chcemy wyprowadzić z I2C_0 zamiast I2C_1, ale nie jest to zalecane.
Magistrala UART
Oczywiście dostępny jest również port UART, również wyprowadzony do gniazda RJ11. Zworką JP6 możemy wybrać czy na pinie zasilającym chcemy napięcie 3.3V lub 5V. Pomimo tego wyboru, obowiązuje jednak poziom logiczny 3.3V.
1-Wire
UniPi obsługuje pojedynczy kanał 1-Wire zarządzany przez kontroler DS2482-100. Magistrala dla odmiany została wyprowadzona do gniazda RJ45, dodatkowo zabezpieczonego przed ESD. Udostępnia również linię zasilania 5V o obciążalność do 200mA.
Wejście analogowe
Obsługiwane są dwa kanały ADC za pomocą MCP3422. Zakres mierzonego napięcia to 0 - 10V, gdzie gwarantowana dokładność to 5%, chociaż producent podaje, że można uzyskać nawet 1% przy poprawnej korekcji. Współczynniki korekcji dla obu kanałów zapisane są w pamięci EEPROM. Wejścia analogowe opisane są kolejno jako pary AI1 oraz AI2.
Wyjście analogowe
Wyjście analogowe jest sterowane przez PWM bezpośrednio z RPi i oferuje częstotliwość 400Hz. Maksymalne obciążenie to 20 mA z zakresem 0-10V. Deklarowana precyzja to 5%, ale jest mocno zależna od obciążenia CPU. Ponieważ działa jako regulator napięcia, konieczne jest podłączenie zewnętrznego źródła zasilania na gniazdo AOV (max 35V) oraz jej masę do AOG. Konieczna będzie również kalibracja pomiaru potencjometrem montażowym na płycie. Kalibracji możemy dokonać wykorzystując linię 12V z UniPI.
Kalibracja z wbudowanego źródła 12V
AOG ---- AI1-
AOV ---- 12V
AO ---- AI1+
Ustawiamy za pomocą dostarczonego API dowolne napięcie (na przykład 5V) i regulujemy potencjometerem do uzyskania takiej wartości na odczycie AI1+
Kalibracja z zewnętrznym źródłem zasilania (max. 35V)
W takiej konfiguracji podłączamy AOG do masy źródła zasilania, zaś zasilanie do AOV. Regulujemy potencjometrem, aż uzyskamy pomiar multimetrem oczekiwane napięcie na AO ustawionego wypełnienia PWM.
Potencjometr kalibrujący wyjście analogowe
Następnym razem pokażę Wam, jak obsługiwiać wyjścia i wejście analogowe, a także sprawdzimy sobie integrację z popularnym PiDome.
Do zobaczenia! Jeśli macie jakieś pytania, na które chcielibyście znać odpowiedzi, zapraszam do komentowania.
Wpisy na podobny temat
- 15 Nov 2012 » Przymierzasz się do ODROID-X? Lepiej poczekaj! Hardware Android
- 14 Jul 2014 » Odświeżony RaspberryPI Model B+ za 35$ Raspberry Pi Hardware
- 04 Dec 2012 » Raspberry Pi w roli Media Center? Raspberry Pi Hardware Dystrybucje
Komentarze
A co z nettemp.pl?
Jak już robić automatykę domową to proponuję z gróbej rury: OpenHAB. Sam się tym bawię ostatnio i uważam, że warto.