Witam na mojej stronie

Nazywam się Tomasz Rymiorz

Mój najnowszy projekt to system automatycznego domu nazwany iDom.
I to głównie na nim będę się koncentrować w dalszej części strony.

iDom
iDom

iDom to prosty system automatycznego domu oparty na sieci Wi-Fi, który można wykonać samemu.

Stworzony z myślą o łatwej obsłudze, bez natłoku funkcji, ze zautomatyzowaną konfiguracją wstępną oraz sterowaniem dostępnym w zasięgu jednego palca.

iDom oparty jest na platformie Arduino, więc każdy może zbudować swoje urządzenia, następnie wgrać udostępnione oprogramowanie i korzystać z darmowej aplikacji sterującej.
System wykorzystuje funkcję WPS do pierwszego połączenia z routerem. Natomiast aplikacja automatycznie odnajduje urządzenia w lokalnej sieci Wi-Fi i pobiera ich parametry pracy oraz ustawienia.

Urządzenia posiadają możliwość tworzenia cyklicznych zautomatyzowanych ustawień, w których określić możemy m.in. godzinę, porę dnia (dzień/noc), temperaturę lub dzień tygodnia.


  • iDom to:
    •  - intuicyjna obsługa
    •  - przejrzysty interfejs
    •  - prosta konfiguracja
    •  - przystępna cena

Aplikacja  |  Roleta  |  Termnostat  |  Prototyp włącznika



Aplikacja iDom

Aplikacja iDom pozwala sterować oświetleniem, roletami oraz termostatem poprzez sieć Wi-Fi.
Użytkownik ma łatwy dostęp do sterowania urządzeniami bez potrzeby przełączania się między ekranami, a możliwość przypisania różnych kolorów belce tytułowej (zdjęcie 1) pozwala na szybkie identyfikowanie pomieszczeń.
Sterować możemy bezpośrednio z belki tytułowej za pośrednictwem ikon lub rozwinąć listę do widoku szczegółowego (zdjęcie 2), gdzie dodatkowo ustawimy funkcje automatyczne (zdjęcie 6) lub podejrzymy parametry pracy danego urządzenia (zdjęcie 5).

Z poziomu aplikacji stworzyć możemy cykliczne zautomatyzowane ustawienia, w których określimy godzinę wykonania czynności lub zakres godzin, porę dnia (dzień/noc), temperaturę lub dzień tygodnia (zdjęcie 7).
Aplikacja udostępnia także możliwość przełączania stanów pracy wszystkich urządzeń jednocześnie (zdjęcie 8).

Urządzenia są automatycznie wyszukiwane i identyfikowane w lokalnej sieci Wi-Fi, użytkownik musi tylko przypisać je do pomieszczenia (zdjęcie 4). Połączenie z urządzeniami połączonymi do tej samej sieci Wi-Fi odbywa się automatycznie.

Aplikacja wymaga połączenia z urządzeniem do obsługi funkcji z nim związanych.

Google Play

Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 Zdjęcie 5 Zdjęcie 6 Zdjęcie 7 Zdjęcie 8

↑ do góry  |  Roleta  |  Termnostat  |  Prototyp włącznika



Roleta iDom

Niewielkich rozmiarów urządzenie jest dopasowane do dostępnych w każdym sklepie mini rolet i zastępuje w nich mechanizm łańcuszkowy. Na oknie jest praktycznie niezauważalne, a swoim rozmiarem nie wpływa na położenia rolety.

Główny mechanizm (zdjęcie 1) rolety w górnej części (zdjęcie 2) zawiera wejście dla czujnika zmierzchowego oraz gniazdo dla mechanizmu dodatkowego (zdjęcie 3) dla drugiego skrzydła okiennego. W dolnej części znajduje się gniazdo do podłączenia zasilacza 5V. Czujnik oświetlenia wyprowadzony został na przewodzie (zdjęcie 4), aby można było go umieścić w dogodnym miejscu na szybie pod roletą.

Oprogramowanie przewiduje zmianę kierunku obrotów silnika, kalibrację pozycji rolet oraz opcję pomiaru wysokości okna. Wykorzystanie RTC oraz fotorezystora umożliwia obsługę funkcji automatycznych, takich jak opuszczanie i podnoszenie o zadanej godzinie lub porze dnia z uwzględnieniem dnia tygodnia. Roleta posiada wbudowaną pamięć dla ustawień, by po utracie zasilania móc wznowić pracę.
Urządzenie łączy się z domową siecią Wi-Fi.

Mechanizmy rolet komunikują się między sobą, wymieniając się danymi z czujnika światła oraz w razie potrzeby wysyłają sobie aktualny czas.

Mechanizm rolety został zbudowany w oparciu o WIFI D1 mini wraz z modułem RTC DS1307. Uzupełnieniem jest bipolarny silnik krokowy ze sterownikiem A4988 oraz fotorezystor pełniący rolę czujnika światła. Obudowa w całości została wykonana na drukarce 3D.

Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4

Film 7 Film 7

↑ do góry  |  Oprogramowanie rolety



Kod rolety

 <  main.cpp  |  main.h  |  core.h  |  c_online.h  > 

↑ do góry



Termostat iDom

Termostat posiada nowoczesny wygląd. Front urządzenia to mieniąca się czerń. Wyświetlacz posiada delikatne niebieskie podświetlenie. Samo urządzenie po zamontowaniu rozmiarem jest zbliżone do włącznika światła. Sterowanie odbywa się przy pomocy przycisków na urządzeniu lub przez aplikację iDom. Sterować urządzeniem można również przez Internet.

Posiada możliwość pracy wprost z zadanej wartości temperatury lub dogrzanie pomieszczenia przez ustawienie czasu grzania. Programowalny przez aplikację, pozwala na ustawienie żądanej temperatury na każdy dzień tygodnia. Termostat posiada wbudowaną pamięć dla ustawień, by po utracie zasilania móc wznowić pracę.


  • Zawiera również:
    •  - opcja wakacji wyłączająca zaprogramowane ustawienia na określony czas
    •  - opcja wstrzymania zaprogramowanych ustawień przez określony czas lub do końca dnia
    •  - ustawienie minimalnej temperatury (przeciwzamrożeniowa)
    •  - kalibracja pomiaru temperatury

Urządzenie przeznaczone do regulacji temperatury w układach centralnego ogrzewania.
Posiada otwory zapewniające cyrkulację powietrza w miejscu czujnika temperatury, a pomiar temperatury odbywa się z dokładnością do 0.1°C. Termostat dostosowany jest do montażu w puszkach o średnicy 60mm. Zasilany jest napięciem 230V i pozwala sterować urządzeniem elektrycznym sterowanym włącz/wyłącz.
Urządzenie łączy się z domową siecią Wi-Fi.

Termostat został zbudowany na bazie modułu WIFI D1 mini wraz z RTC DS1307 oraz czujnikiem temperatury DS18B20. Uzupełnieniem jest wyświetlacz OLED 128x64 SSD1306 oraz 1 kanałowy przekaźnik SSR.

Zdjęcie 1
Zdjęcie 2
Zdjęcie 3

↑ do góry  |  Oprogramowanie termostatu



Kod termostatu

 <  main.cpp  |  main.h  |  core.h  |  c_online.h  > 

↑ do góry



Prototyp włącznika

Podstawą włącznika są moduły WIFI D1 mini, RTC DS1307 oraz wykrywacz gestów APDS-9960. Uzupełnieniem jest 2 kanałowy przekaźnik SSR.

Wykrywacz gestów pozwala na sterowanie dwoma źródłami światła wraz z roletą systemu iDom. Ruchem ręki w górę lub w dół zmieniamy stan oświetlenia, natomiast przybliżając rękę do włącznika lub ją oddalając aktywujemy opuszczenie rolety lub jej podnoszenie.

Wbudowany RTC daje możliwość obsługi funkcji automatycznych, takich jak włączanie i wyłączanie o zadanej godzinie lub porze dnia z uwzględnieniem dnia tygodnia. Włącznik posiada wbudowaną pamięć dla ustawień, by po utracie zasilania móc wznowić pracę.

Oprogramowanie włącznika jest w zupełności gotowe, jednak samemu włącznikowi brakuje jeszcze zasilania.

Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 Zdjęcie 5 Zdjęcie 6 Zdjęcie 7 Zdjęcie 8

↑ do góry  |  Oprogramowanie włącznika



Kod włącznika

 <  main.cpp  |  main.h  |  core.h  |  c_online.h  > 

↑ do góry



Robosapien Wi-Fi

Technologia bezustannie gna do przodu i to, co było nowinką techniczną wczoraj, dziś może być już bezużytecznym starociem, który nikogo nie jest w stanie zainteresować. Nie inaczej jest z interaktywnymi zabawkami, które nie nadążają za obecną technologią. Robosapien firmy WowWee oryginalnie był sterowany pilotem na podczerwień. W ramach pracy dyplomowej rozbudowałem robota o układ zgodny z Arduino bazujący na mikrokontrolerze ESP8266 oraz napisałem aplikacje dla systemów Android oraz iOS sterującą robotem poprzez sieć Wi-Fi.

Robosapien


Modyfikacja robota

Modyfikacja polegała na dodaniu do niego układu WeMos D1 mini, którego kompaktowe wymiary (zdjęcie 1) pozwalają na schowanie go wewnątrz obudowy robota. Oryginalne sterowanie działało w oparciu o podczerwień, więc najprostszym sposobem na modyfikację, było wpięcie się do przewodu prowadzącego z odbiornika podczerwieni do układu logiki robota (zdjęcie 2, biały przewód) i symulowanie wysyłanych za pomocą pilota sygnałów. Inspiracją do modyfikacji robota było rozwiązanie RoboSapienIR. To stąd zaczerpnąłem najważniejszą funkcję odpowiedzialną za symulowanie sygnałów przesyłanych przez pilota. Jako, że wzorowałem się na tym rozwiązaniu, mój kod może być w wielu miejscach do niego podobny.

W Arduino wykorzystałem dwa piny, GPIO5 jako wejście sygnału z odbiornika podczerwieni i GPIO4 jako wyjście sygnału do układu robota. Arduino dzięki prostej funkcji przesyła właściwy kod do robota jakby pochodził on z pilota. Samo Arduino tuż po uruchomieniu łączy się z jedną z zaprogramowanych sieci Wi-Fi. Po połączeniu Arduino korzystając ze stworzonej dla robota usługi sieciowej wysyła do bazy swój adres IP, który został mu przydzielony oraz SSID sieci, z którą się połączył. Usługa sieciowa napisana w PHP działa w oparciu o wzorzec REST i zapisuje otrzymane dane do bazy MySQL, dzięki czemu aplikacja sterująca na smartfona wie gdzie wysyłać komendy. W następnym kroku Arduino same tworzy prostą usługę sieciową i od tego momentu oczekuje na komendy przesyłane mu za pomocą protokołu REST.

Układ logiki w Robosapien działa z napięciem 3,3V, które nie jest w stanie zasilić jednocześnie Arduino i mechanizmów robota, nic w tym momencie nie działało prawidłowo. Układ Arduino zasiliłem więc dwiema bateriami typu LR03. Nie chcąc robić otworów na dodatkowy włącznik dla Arduino wykorzystałem moduł wykonawczy z tranzystorem MOSFET IRF520 (zdjęcie 45). Zasilanie i sygnał sterujący modułem pobrałem z włącznika (zdjęcie 3), masę wziąłem z przewodu wychodzącego ze złącza w górnej części układu robota (zdjęcie 2, czarny przewód). Od teraz włączając robota, ten zasila moduł MOSFET, który z kolei steruje zasilaniem Arduino. Układ D1 mini umieściłem obok szyi robota (zdjęcie 6), a pod przednim pancerzem jest wystarczająco przestrzeni, aby zmieścić jednocześnie moduł MOSFET oraz dwie baterie zasilające.

Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 Zdjęcie 5 Zdjęcie 6 Zdjęcie 7


Kod Arduino




Sterowanie robotem

Aby sterować zmodyfikowanym Robosapien wystarczy znać jego adres IP, który został przyznany robotowi przez router oraz być połączonym do tej samej sieci Wi-Fi. Do samego sterowania nie jest wymagana jakakolwiek aplikacja, same polecenia do robota są przesyłane za pomocą wzorca REST. Znając jego adres i składnię komend przy pomocy dowolnej strony lub aplikacji oferującej tworzenie zapytań REST możemy wysłać polecenia do robota. Linia komend została podzielona na cztery fragmenty: body, left, right i program, a każdy z nich odpowiada innemu rodzajowi czynności i obsługuje sobie właściwe komendy.

I tak „body” odnosi się do ciała, mamy tam: walkforward, walkbackward, turnleft, turnright oraz stop.

Części „left” i „right” to ramiona robota obsługujące komendy: armup, armdown, armout, armin, handthump, handthrow, handpickup, handsweep, handstrike1, handstrike2 oraz handstrike3.

Natomiast „program” odnosi się do poleceń ogólnych: poweroff, sleep, wakeup, burp, high5, bulldozer, oops, whistle, talkback, roar, alldemo, karateskits, rudeskits i dance.

Przykłady użycia:
POST http://192.168.1.101/body/walkforward
POST http://192.168.1.101/left/armup



Aplikacja sterująca

Aplikacja posiada dość prosty obrazkowy interfejs (zdjęcie 1), a także menu (zdjęcie 2), w którym możemy podejrzeć lokalizację robota i w razie konieczności ją odświeżyć, jak również w przypadku chęci korzystania ze słuchawki Bluetooth jest opcja wybrania domyślnej słuchawki, która w chwili połączenia z telefonem będzie aktywować sterowanie głosowe robotem. Z poziomu aplikacji jest również możliwość szybkiego uruchomienia sieci Wi-Fi oraz Bluetooth. Ruchem robota sterujemy przy pomocy joysticka, a komendy wybieramy z rozwijanej listy.

Na potrzeby aplikacji wykorzystałem rozwiązanie ContinuesVoiceRecognition, wykorzystujące system rozpoznawania mowy dostępny w systemie Android. Aplikacja nasłuchuje otoczenia i zwraca wynik rozpoznania automatycznie. I jeśli tylko wydana została komenda, jest ona od razu przesyłana do robota. Aby rozpoznawanie mowy działało prawidłowo wykorzystałem technologię bezprzewodową Bluetooth. Aplikacja włącza rozpoznawanie mowy po wykryciu połączenia ze słuchawką Bluetooth, użytkownik musi jedynie wcześniej wybrać swoją słuchawkę. Sam system sterowania głosem nie wymaga stosowania konkretnie sformułowanych komend. Został stworzony, aby wyszukiwać komendy w rozpoznanym tekście. Przykładowo, tekst „robot, idź do przodu” zostanie rozpoznany tak samo jak „do przodu”, a tekst „robot, unieś lewą rękę w górę” jest równoznaczne z komendą „lewa w górę”. Zależało mi, aby ton wypowiadanych komend był jak najbardziej naturalny.

Aplikacja posiada również system dodawania nowych komend oraz edycji już istniejących. Same polecenia przechowywane są w bazie SQLite, a edycja odbywa się za pomocą wydawanych poleceń głosowych.

Zdjęcie 1 Zdjęcie 2


Robosapien Wi-Fi w praktyce

Test ostatecznej wersji robota. Prezentacja całości z wbudowanym układem WeMos D1 mini, modułem MOSFET IRF520 oraz zasilaniem 2xLR03.

Film 1

Pierwszy test oprogramowania Arduino. Robot połączony z układem ArduCAM zasilany baterią 9V.

Film 2

Filmy nagrywane aplikacją Apowersoft Screen Recorder.



O mnie i tej stronie

Nazywam się Tomasz Rymiorz.
Ukończyłem studia inżynierskie na kierunku Informatyka w Wyższej Szkole Biznesu w Dąbrowie Górniczej.
Specjalizuję się w Aplikacjach mobilnych oraz Internecie rzeczy.
Przygodę z programowaniem zacząłem w Borland Delphi, które do teraz uważam za jedno z lepszych środowisk programistycznych. Hobbystycznie również tworzyłem strony internetowe ze szczególnym upodobaniem technologii Adobe Flash. Obecnie programuję i rozwijam się w środowiskach Android Studio oraz Arduino. Aplikacje mobilne i Internet Rzeczy to bodajże najbardziej rozwijające się obecnie technologie, dające sporo możliwości i jeszcze więcej satysfakcji. Jakkolwiek w dalszym ciągu lubię tworzyć strony, czego ta tutaj jest doskonałym przykładem.

Obecnie pracuję na Android Studio oraz PlatformioIO.
Korzystałem również z Arduino IDE, Delphi, Visual Studio i XCode.
Programowałem w językach Java, C/C++, Object Pascal, HTML, PHP, ActionScript, Objective-C.

Strona zbudowana na fullPage.js;
Galerie oparto na fancyBox;
Kontakt ze mną poprzez e-mail;



Aplikacje desktopowe

TotalCommander Portable >> Pobierz
Program uruchomieniowy dla TotalCommandera. Żadna ze znalezionych przeze mnie wersji portable nie chciała działać bez ingerowania w pliki ustawień właściciela komputera. Moja wersja zmusza TotalCommandera do korzystania z ustawień przyniesionych wraz z programem.
Stworzone dla TotalCommandera w wersji 7. Używam tego do dnia dzisiejszego.


OX >> Pobierz
Moja pierwsza aplikacja, gra kółko-krzyżyk.


spis7 >> Pobierz
To zwieńczenie moich prac nad programem katalogującym, wersja piąta, na chwilę obecną ostateczna. Jest szybki, prosty, intuicyjny i dobrze wygląda. Można w nim katalogować m.in. filmy, gry, książki. Potrafi dużo i robi to elegancko. Dopracowany w najdrobniejszych szczegółach, pozwala w przejrzysty sposób zebrać informacje o zbiorach multimedialnych w jednym miejscu.
- Program daje możliwość zabezpieczenia zakładek hasłem.
- Opcja pożyczek wraz z przypominaniem.
- Opisy są przejrzyste i dynamicznie generowane w kodzie HTML.
- Proste, a zarazem zaawansowane szukanie i filtrowanie pozycji.
- Przenoszenie pozycji między zakładkami.
- Możliwość przeciągania tekstów i obrazków z przeglądarki.
- Automatyczne odczytywanie informacji z plików wideo.
Program od Windows 8 przestał się uruchamiać. Nie mam wszystkich plików źródłowych, by usunąć problem i skompilować program na nowo.

Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 Zdjęcie 5

Starsze wersje programu katalogującego

Spis 2 >> Pobierz
Druga wersja mojego programu do katalogowania i pierwsza udostępniona publicznie. Pozbawiona jakichkolwiek zaawansowanych opcji, pozwala jedynie na proste katalogowanie. Możliwość przypisania do czterech opisów do pozycji.

Zdjęcie 1 Zdjęcie 2

spis3 >> Pobierz
Trzecie wydanie, tym razem z opcjami zmiany ustawień i obsługą skórek. Bardziej zaawansowany od poprzednika, pozwala na szczegółowe opisy pozycji, które prezentuje w przejrzysty sposób, po raz pierwszy generowany w HTML. Ten program wytyczył kierunek, w którym podążałem z każdą następną wersją.

Zdjęcie 1 Zdjęcie 2

spis 2008 >> Pobierz
Kontynuacja koncepcji z programu spis3 oraz wyeliminowanie jego błędów. Największe zmiany to rezygnacja ze skórek i dostosowanie programu wizualnie do systemu. Sam program nabrał prędkości w działaniu jednocześnie zwiększając swoje możliwości, m.in. poprzez dodanie obrazków do pozycji.
Program od Windows 8 przestał się uruchamiać.

Zdjęcie 1 Zdjęcie 2


Projekty stron www

Zdjęcie 1

Rok 2005. Multimedialna Strefa. Cały projekt strony oparty został na tabelach. Na potrzeby tego serwisu stworzyłem program, który generował odświeżony kod HTML po każdorazowym dodaniu nowego pliku. Podgląd kodu

Ewolucja strony domowej

Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 Zdjęcie 5 2015r.
Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 2007r.
Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 2003r.
Zdjęcie 1 Zdjęcie 2 Zdjęcie 3 Zdjęcie 4 Zdjęcie 5 2003r.

Mapy do gier

Unreal Tournament >> Pobierz
Jest to przeróbka mapy Deck16. Usunąłem część świateł i dodałem latarki.
Gra się całkiem przyjemnie, mapa w znacznym stopniu zmienia klimat rozgrywki.

Heroes of Might & Magic III >> Pobierz
Mapa "Oblicze świata", wymaga dodatku "The Shadow of Death".

StarCraft >> Pobierz
Zbiór czternastu moich najlepszych map.