Witam,
jest to mój pierwszy projekt, który tutaj zamieszczam więc proszę o wyrozumiałość. Zrobiłem to dla siebie ale może komuś się przyda wiec go udostępniam.
Na początek o samych roletach. Zakupiłem trzy najtańsze rolety w supermarkecie. Kupiłem 3 silniki prądu stałego z przekładnią 1:48 takie jak na zdjęciu poniżej
Do tego zaprojektowałem we FreeCadzie uchwyt rolety, w którym zmieścił się silnik i przyczepiłem rolety do okien. Projekt uchwytów udostępniam do pobrania. Rolet nie da się ręcznie ustawiać, zastąpiłem jeden uchwyt rolety ten ze sznurkiem uchwytem, który wydrukowałem. Jako czujnik pozycji rolet wykorzystałem kontaktrony. Po jednym na każdą roletę i 2 magnesy, jeden na dole, drugi na górze na rolecie. Kupiłem małe magnesy 10x5x1 mm. Wystarczają aby załączyć kontaktron i są małe więc nie przeszkadzają w zwijaniu się rolety.
I teraz najważniejsze - sterownik rolet. Skleciłem go z atmegi328, 2 sterowników silników L293D, modułu bluetooth HM-10 i układu czasu rzeczywistego DS1307. Schemat udostępniam. Zasilam to wszystko zasilaczem 9V 4A. Na początku miałem jakiś chiński zasilacz 9V 1A ale spalił się już pierwszego dnia.
Hex do zaprogramowania atmegi też udostępniam.
Rolety steruje się za pomocą telefonu komórkowego przez bluetooth. Nie pisałem dedykowanej aplikacji na telefon tylko wykorzystałem Serial Bluetooth Terminal: Link do aplikacji na androida
Teraz trochę o opcjach. Roletami można sterować czasowo, podnosić i opuszczać o podanej godzinie. Można tez sterować każdą osobno. Oprócz podnoszenia i opuszczania jest też możliwość ustawienia rolety w jednej z 5 pozycji "po środku". Sterownik posiada też funkcje wykrywającą błędy w działaniu rolet. Jeśli taki błąd wystąpi roleta zostaje wyłączona i nie działa na niej czasowe jak i "ręczne" podnoszenie i opuszczanie do czasu wymazania błędu z programu. Sterownik posiada dużo opcji konfiguracyjnych aby można go było dostosować do różnych rolet i silników.
Poniżej zamieszczam pełną listę komend:
up[X] - [X - roller blind] podnosi rolety
down[X] - [X - roller blind] opuszcza rolety
posX - [X: 1 to 5] ustawia wszystkie rolety w danej pozycji
posXY - [X: 1 to 5, Y - roller blind] ustawia jedna roletę w danej pozycji
stop - zatrzymuje wszystkie rolety
/enable[X] - [X - roller blind] włącza czasowe ustawianie rolet
/disable[X] - [X - roller blind] wyłącza czasowe ustawianie rolet
date - pokaż datę i godzinę
time - to samo co date
/delayXYYY - [X - roller blind, YYY - time * 100ms] ustawia opóźnienie włącznik sensorów wyłączających rolety
/calibration - mierzy czasy podnoszenia się wszystkich rolet, potrzebne aby ustawić roletę w środkowej pozycji
/status - pokazuje status rolet
/options - pokazuje opcje
/settimeupHHMMSS - ustaw czas podniesienia rolet - format HHMMSS
/settimedownHHMMSS - ustaw czas opuszczenia rolet - format HHMMSS
/setmaxmovetimeXYYY - [X - roller blind, YYY: 0 to 254] ustawia maksymalny czas przez jaki roleta może się poruszac, po tym czasie wystąpi błąd i roleta zostanie wyłączona (1 = 100ms)
/clearerrorX - [X - roller blind] czyści błąd rolety
/timeHHMMSS - ustaw godzinę - format HHMMSS
/dateDDMMYYYY - ustaw datę - format DDMMYYYY
/setupspeedXYYY - [X - roller blind, YYY: 000 to 255] ustaw prędkość podnoszenia rolety
/setdownspeedXYYY - [X - roller blind, YYY: 000 to 255] ustaw prędkość opuszczania rolety
/help - pokazuje listę komend (bez opisu bo zabrakło pamięci RAM)
/uptime - pokaż kiedy sterownik został włączony
/version - pokaż wersję oprogramowania
To tyle, mam nadzieję że komuś się przyda.
Fajne? Ranking DIY
