SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

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 1.1

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ń:

  1. git clone https://github.com/UniPiTechnology/evok
  2. cd evok
  3. chmod +x install-evok.sh uninstall-evok.sh
  4. sudo ./install-evok.sh

I praktycznie już możemy korzystać z naszego UniPI z poziomu przeglądarki internetowej:

Interfejs EVOK

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.

Komentarze Komentarze
Avatar 1
czlowiek_dom Linux Ubuntu / Mozilla Firefox 44.0
11 February 2016 - 08:53 Gdańsk

A co z nettemp.pl?

Avatar 1
maq Windows 7 / Safari 537.36
12 February 2016 - 14:26 Brak informacji

Jak już robić automatykę domową to proponuję z gróbej rury: OpenHAB. Sam się tym bawię ostatnio i uważam, że warto.