Dziś post z zupełnie innej beczki. Będzie o tym jak to postanowiłem zrobić urządzenie którego nie ma na rynku. Ale zacznijmy od początku – w domu na wynajem mam dość zaawansowany system automatyzacji – termostaty, niektóre światła, zamki i czujniki dźwięku, temperatury, wilgotności, otwarcia drzwi oraz ruchu dostępne są zdalnie dzięki urządzeniu o nazwie Wink Hub. Dzięki temu mogę kontrolować temperaturę w domu i np. redukować chłodzenie gdy w domu nie ma nikogo. Mogę też zdalnie zmieniać kody do otwarcia drzwi, otwierać te drzwi, zamykać, włączać i wyłączać światło itp. Mogę także programować roboty – np. „jeżeli drzwi są otwarte od zewnątrz i jest po zachodzie słońca, to włącz światło w kuchni”. Albo – „jeżeli drzwi są zamknięte kodem od zewnątrz to wyłącz wszystkie światła i zmniejsz chłodzenie”.
Jednak brakowało mi dodatkowego urządzenia – klawiatury, która (po wpisaniu właściwego kodu) otwierała by drzwi garażowe i której można by zdalnie, przez internet programować kody. Okazuje się że na rynku są dwa rodzaje urządzeń – jedne pozwalają na kontrolowanie i sterowanie drzwiami garażowymi przez internet a drugie to klawiatury pozwalające na programowanie kodów i otwieranie/zamykanie drzwi garażowych. Jednak nie ma urządzenia łączącego oba te rozwiązania.
W związku z czym postanowiłem stworzyć coś, co połączy te oba rozwiązania. Mam dwa pomysły, jeszcze nie wiem którego użyję. Oba obracają się wokół Rapsberry Pi i zwykłej klawiatury do otwierania garażu. W pierwszej wersji planowałem wydrzeć wszystko z takiej klawiatury, podłączyć jej klawisze pod PIO Rapsberry Pi i zainstalować całą logikę rozpoznawania kodów w tym mikro-komputerku. Otwieranie odbywało by się za pomocą przekaźnika podłączonego do GPIO Pi i sterującego silnikiem otwierającym drzwi.
Jednak myśląc nad tym rozwiązaniem wpadłem na inny pomysł – zostawić klawiaturę z pełną jej funkcjonalnością, a jedynie podłączyć Pi pod jej klawisze i udawać ich wciskanie. W ten sposób klawiatura by używała własny nadajnik do wysyłania sygnału do silnika bramy a całość działała by nawet w sytuacji gdy Pi się zawiesi (tyle że nie dało by się programować nowych kodów i otwierać/zamykać bramy zdalnie). Problemem będzie zrobienie tego porządnie – klawiatura działa na zasadzie skanowania – są trzy rzędy i cztery kolumny. Brutalną metodą byłoby zastosowanie 12 przekaźników i po prostu zwieranie odpowiedniego klawisza. Ale to strasznie brutalny pomysł. W związku z czym wydaje mi się że lepszym rozwiązaniem będzie czytanie która z kolumn jest aktualnie aktywna i zwieranie odpowiedniego rzędu w odpowiednim momencie. Troszkę trudniejsze oprogramowanie, ale zamiast przekaźników można użyć trzech wejść GPIO i czterech wyjść GPIO. Co więcej przestawiając te GPIO w tryb wejść można czytać stan klawiatury pozwalając istniejącemu kontrolerowi ją skanować. Muszę tylko sprawdzić jaki poziom napięcia używa klawiatura – płytki z dodatkowym IO które kupiłem do Pi obsługują zarówno 5V jak i 3.3V. Klawiatura zasilana jest napięciem 6V (dwie baterie CR2032 szeregowo), więc może używać zarówno 5V jak i 3.3V.
Oczywiście najciekawszą częścią każdej pracy są zakupy. W celu zbudowania tego pomysłu zakupiłem Rapsberry Pi z Wi-Fi i 8 GB MicroSD, dwie dodatkowe płytki z dodatkowymi I/O (każda ma ich 8), płytkę z przekaźnikami i kilka regulatorów napięcia (zmniejszających 5V do 3.3V które lubi Pi).
Nie wiem czy coś mi wyjdzie z tego pomysłu, ale jestem zdeterminowany osiągnąć sukces! O postępach będę informował na blogu 🙂