Łączenie Arduino z OpenWrt

Od jakiegoś czasu „bawię się” Arduino, a swoje doświadczenia staram się tu opisywać. Pisałem też kiedyś o mojej koncepcji inteligentnego domu (lub jak kto woli domowej automatyki) w oparciu o OpenWRT. Do rozpoczęcia przygody z Arduino skłoniła mnie właśnie chęć rozbudowy tego systemu.

OpenWRT zainstalowany w routerze jest świetny, elastyczny, linuksowy, jednak trochę brakuje mu możliwości z realnym światem. Problem w dużej części rozwiązał zakup karty przekaźnikowej wyposażonej dodatkowo w wejścia, jednak cały czas mi czegoś brakowało.

Czytaj dalej

Zaszufladkowano do kategorii Inteligentny Dom, Majsterkowanie | Otagowano , , , , , | Dodaj komentarz

Arduino – zdalne sterowanie urządzeniami elektrycznymi

Pisałem ostatnio o tanim zestawie do zdalnego sterowania gniazkami z Biedronki. Planowałem podłączyć przyciski pilota do Arduino przez jakiś moduł przekaźnikowy (jak Relay Shield) i nawet dla tego zastosowania przylutowałem byłem już kabelki do mikrostyków. Po pewnym czasie jednak stwierdziłem, że można poszukać tańszego rozwiązania. Na początku zmierzyłem napięcia między stykami przycisków – nieco ponad 12V (tyle co napięcie baterii). Przy okazji oznaczyłem te styki, na których jest napięcie. Później zrobiłem eksperyment i zasiliłem pilota napięciem 5V wprost z Arduino (w końcu bateria ma to do siebie, że jej napięcie z czasem spada, więc projektanci musieli to przewidzieć). Z niższym napięciem też zadziałało. Co więcej, nadal nie było problemów z zasięgiem. Uznałem więc, że trzeba sprawdzić co będzie, gdy do styku przycisku, na którym nie było wcześniej napięcia przyłożę je wprost z Arduino (na wszelki wypadek przez rezystor, zapewne niepotrzebnie). Bingo, zadziałało.

Czytaj dalej

Zaszufladkowano do kategorii Inteligentny Dom | Otagowano , , | 6 komentarzy

Zdalne sterowanie urządzeniami elektrycznymi

Jakiś czas temu pisałem o szybkim wykonaniu sterownia bramą. Ponieważ patent się sprawdził, postanowiłem pójść nieco dalej i zrobić zdalne sterowanie urządzeniami elektrycznymi. Mając sprawdzoną kartę przekaźnikową nie jest to problem. Wystarczy do jednego z przekaźników podłączyć napięcie 230V i przeciągnąć kabel do gniazka, które ma być sterowane z routera lub komputera. Problem polega jedynie na tym, że trzeba przeciągać kable, a do tego jest to rozwiązanie mało mobilne. Tak się jednak złożyło, że w jednym z dyskontów (w Biedronce konkretnie) pojawiły się zdalnie sterowane gniazka (w niewygórowanej cenie 30 zł za 3 gniazdka z pilotem).

Czytaj dalej

Zaszufladkowano do kategorii Inteligentny Dom, Majsterkowanie | Otagowano , , | Dodaj komentarz

Janosik pomaga mi unikać zbójów przydrożnych

Jeżdżę ostrożnie i wolno. Ba, nawet przepisowo, szczególnie w mieście. Wbrew pozorom da się, kwestia przyzwyczajenia. W pewnym momencie człowiek dorasta i zdaje sobie sprawę, że pośpiech się nie opłaca i to w różnych kontekstach. Do pracy jadę przepisowo 10 minut, a jak się bardzo spieszę to 8-9. Jako, że najczęściej jeżdżę do pracy (tak, to smutne), te obliczenia skłoniły mnie do przemyśleń i zmiany stylu jazdy. Tym bardziej, że w połowie przypadków po dordze mijam straż miejską z fotoradarem (w końcu jadę odcinkiem nowej 2-pasmowej drogi, z ograniczeniem prędkości). Często też zaczaja się jakiś patrol w którymś z innych miejsc. Co tu dużo pisać – prawie każdy wie, jak to wygląda.

Rząd zaplanował na ten rok w budżecie wpływy z mandatów na poziomie miliarda dwustu milionów złotych (1200000000 PLN) i aby go zrealizować kupuje masę nowych fotoradarów. Na pewno też będzie się można spodziewać w związku z tym wzmożonej aktywności panów z suszarkami w dochodowych miejscach (tak, tak, niebezpiecznych, bo przecież o nasze bezpieczeństwo chodzi). A pewnie i gminy przy pomocy swoich służb będą chciały podratować trochę budżety, tym bardziej, że minister Rostowski zapowiedział, że zadłużanie bez pamięci musi się skończyć.

Czytaj dalej

Zaszufladkowano do kategorii Motoryzacja | Otagowano , , , , | 30 komentarzy

Arduino – środowisko programistyczne

O tym, co to jest Arduino i dlaczego mi się podoba, pisałem w poprzednim poście. Teraz przyszła kolej, żeby wspomnieć o sednie całej zabawy – środowisku programistycznym. Wszak to między innymi dzięki łatwości programowania Arduino jest tak interesujące dla „przeciętnego człowieka”.

Programy dla Arduino tworzy się w języku opartym na platformie Wiring i przypomina bardzo uproszczone narzecze C/C++. Jakkolwiek mało przyjaźnie by to mogło zabrzmieć, oznacza ni mniej, ni więcej, że każda osoba mająca jakieś, choćby minimalne doświadczenie w języku C (a tak naprawdę jakimkolwiek języku programowania), po przeczytaniu krótkiego poradnika, szybko zacznie pisać proste programy. Ich konstrukcja jest wszak bardzo prosta, a masa przykładów, które można znaleźć w sieci, pozwoli szybko rozwiać ewentualne wątpliwości, lub nawet pisać oprogramowanie metodą „kopiuj/wklej”. Już samo środowisko programistyczne zawiera mnóstwo przykładów o różnym stopniu złożoności, napisanych tak, żeby łatwo je było zrozumieć. Bardzo dobrym punktem startu do nauki programowania będzie tutoral ze strony projektu Arduino.

Czytaj dalej

Zaszufladkowano do kategorii Programowanie | Otagowano , , , | Dodaj komentarz

Arduino – co to takiego?

Jakiś czas temu zacząłem zastanawiać się nad wejściem w świat elektroniki i mikrokontrolerów. Zawsze była jednak jakaś bariera, a potrzeby nie były wystarczająco silne. Do domowej automatyki wykorzystuję routery OpenWRT oraz karty przekaźnikowe i to w zasadzie wystarcza. Jednak do niektórych rozwiązań aż się prosi o zastosowanie jakiegoś dedykowanego, stabilnego i niezawodnego układu elektronicznego. Przykłady? Nadzór kotła c.o., aby był niezależny od restartów routera. Podobnie z monitorowaniem otwarcia drzwi (tym się zajmie w przyszłości centrala alarmowa). Czasem też przychodzi chęć podłączenia jakiegoś czujnika, którego stany są nieco bardziej złożone niż włącz/wyłącz.

Przez jakiś zastanawiałem się nad zakupem jakiegoś zestawu uruchomieniowego opartego o kontroler Atmega. Takie zestawy jednak trochę kosztują, potrzebują programatora, a po wykonaniu prototypu na płytce testowej, właściwie najlepiej byłoby przenieść projekt na dedykowaną płytkę. Jak na początek dość skomplikowane, dla kogoś, kto z elektroniką nie miał wcześniej nic wspólnego.

Czytaj dalej

Zaszufladkowano do kategorii Inteligentny Dom | Otagowano , , | Dodaj komentarz

Rejestrator monitoringu na bazie routera i pendrive

Jakiś czas temu opisywałem prosty system monitoringu oparty o kamerę Edimax IC3030. Do tej pory zapisywałem (i wysyłałem dalej) obraz z kamery wyłącznie po wykryciu ruchu. Z czasem zacząłem się zastanawiać, czy nie rozszerzyć monitoringu o ciągłą rejestrację. Założyłem, że dobrze byłoby zapisywać obrazy z kamery co kilka sekund i gromadzić je na ukrytym nośniku w domu (oczywiście obsługiwanym przez router z OpenWRT). Tutaj w szczegóły nie będę się wdawał z wiadomych względów. Czytaj dalej

Zaszufladkowano do kategorii Inteligentny Dom | Otagowano , , , , | Dodaj komentarz

Sterowanie bramą Somfy przez telefon z Androidem

Po co sterować bramą wjazdową inaczej niż standardowym pilotem? Powodów jest kilka. Po pierwsze można otworzyć bramę jadąc do domu, kilkaset metrów wcześniej, żeby nie czekać aż się otworzy. Po drugie gdy trzeba zamknąć bramę (a nie zrobiło się tego będąc w samochodzie), to nie trzeba szukać drugiego pilota, który leży gdzieś w domu. Po trzecie, będąc na nartach nie trzeba prosić nikogo, żeby w dzień zabierania śmieci podjechał z kluczem uchylić furtkę, żeby śmieciarze opróżnili kosz (bo jak nie opróżnią to przez kolejny tydzień nie będzie gdzie wyrzucać śmieci i popiołu z pieca). Można zamiast tego rano otworzyć bramę przez Internet (o furtce też można pomyśleć, ale to kiedy indziej). Oczywiście ostatni przypadek może wydać się wyimaginowany, bo przecież można zrobić osobną furtkę tylko do koszy. Oczywiście, tylko trzeba ją mieć. A jak się nie ma, to można w 15 minut zrobić zdalne otwieranie bramy (z programowaniem w trochę ponad pół godziny).

Czytaj dalej

Zaszufladkowano do kategorii Inteligentny Dom | Otagowano , , , | Dodaj komentarz

Remont ulicy w przyspieszonym tempie

Jakiś czas temu, pod moimi oknami, miał miejsce remont ulicy, a właściwie jej przebudowa. Piaskowa nawierzchnia została zastąpiona asfaltową z chodnikami i podjazdami z kostki brukowej. Cała operacja była bardzo sprawna, a wszystko zarejestrowała kamera Edimax IC-3030, którą wcześniej opisywałem. Mając serię cyklicznie wykonywanych zdjęć, postanowiłem zmontować z plików .jpg krótki film i wysłać do serwisu youtube. Polecam oglądanie filmu po przełączeniu na rozdzielczość 720p.

[youtube http://www.youtube.com/watch?v=8YPXVo68dXI&w=420&h=340]

Zaszufladkowano do kategorii Majsterkowanie | Otagowano , | Dodaj komentarz

Konserwacja drukarki przez router

Tytuł tego wpisu zapewne brzmi nietypowo, jednak już spieszę wyjaśnić o co chodzi. Drukarka atramentowa ma to do siebie, że trzeba jej używać od czasu do czasu, żeby tusze nie pozasychały. Ponieważ problem znacząco nasilił się u mnie po zainstalowaniu systemu stałego zasilania atramentem (CISS), który opisywałem wcześniej, postanowiłem znaleźć jakieś rozwiązanie systemowe.

Drukarka atramentowa Canon IP4000 podłączona jest w tej chwili do routera (Linksys WRT160NL z zainstalowanym systemem OpenWRT), tak jak to opisywałem wcześniej. Opis był co prawda dla dd-wrt i starego routera, ale poza tym nic się nie zmieniło.

Na codzień używam Ubuntu zainstalowanego na trzech komputerach w domu, a w standardowych sterownikach nie ma opcji czyszczenia głowicy i temu podobnych czynności. W związku z tym konserwacja drukarki jest jeszcze bardziej uciążliwa, bo trzeba do tego uruchomić Windowsa. Postanowiłem więc, że przygotuję rozwiązanie, dzięki któremu będę mógł wykonywać automatyczny wydruk co jakiś czas (może nawet codziennie lub co dwa dni), a dodatkowo znaleźć sposób na czyszczenie dysz z poziomu komputerów z Linuksem, a najlepiej bezpośrednio z routera.

Z poziomu sterowników windowsowych drukarka skonfigurowana jest tak, że sama się uruchamia w razie potrzeby, a po pewnym czasie wyłącza. Upraszcza to sprawę zdecydowanie, bo przy obecnej konfiguracji, nie martwiąc się o włączenie drukarki, wysyła się po prostu wydruk do routera na port 9100.

Trzeba się zastanowić przy okazji jak jest realizowane czyszczenie dysz. Jest to po prostu wydruk zawierający pewne kody sterujące. Co zrobić, żeby przechwycić taki wydruk do pliku, by móc go później wysyłać do drukarki z routera lub innego komputera? Nic prostszego. Wystarczy w Windows zmienić port drukarki z usb lub sieciowego (jak w moim przypadku) na plikowy (file). Po wykonaniu tej czynności i włączeniu czyszczenia dysz (lub dowolnej innej czynności konserwacyjnej bądź wydruku), otrzymujemy pytanie o ścieżkę i nazwę pliku, pod którą należy zapisać wydruk.

W ten prosty sposób stałem się właścicielem plików czyszczenie.prn, czyszczeniedokladne.prn i testdysz.prn. Wszystkie odpowiadają wykonywanym od czasu do czasu przeze mnie czynnościom konserwacyjnym. Gdy mamy te pliki, trzeba się zastanowić jak wysłać je do drukarki. Pomocny jest program net cat (nc), który potrafi otworzyć port sieciowy i do niego pisać (oraz czytać, co jednak w naszej sytuacji nie jest potrzebne).

Co zrobić więc, żeby router potrafił sam wyczyścić dysze? Po pierwsze zainstalować nc (opkg update; opkg install netcat). Gdy to się uda, wystarczy wysłać zawartość pliku czyszczenie.prn do portu 9100 TCP routera (czyli na localhost gdy robimy to z routera). Po tej czynności chcemy, żeby nc nie nasłuchiwał odpowiedzi, tylko zakończył działanie (opcja -c). Cała komenda będzie więc wyglądać tak:

cat /sciezka/czyszczenie.prn | nc -c localhost 9100

Banalnie proste, prawda? Teraz wystarczy dopisać do crona na routerze, żeby jakiś wydruk wykonywał się co kilka dni, a do tego może nawet dołożyć automatyczne czyszczenie dysz i test co jakiś czas i zapewne o problemie zasychania dysz można zapomnieć.

Powyższy opis powstał dla routera z OpenWRT i drukarki Canon IP4000, ale informacje przydać się mogą każdemu użytkownikowi drukarki atramentowej i Linuksa.

Zaszufladkowano do kategorii Komputery | Otagowano , , | Dodaj komentarz