Własne moduły

Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Zawsze są to jakieś możliwości. Zastanawiam się czy nie dało by się zrobić przedłużacza usb po wifi, aby wgrywać firmware przez dołączenie do modułu na czas programowania takiego małego dongla.
djsuszi
Posts: 57
Joined: 14 Sep 2015, 11:03

Re: Własne moduły

Post by djsuszi »

do tego też możesz użyć ESP8266 (widzisz jaki uniwersalny moduł?)
pierwotnie został on wymyślony jako RS232<->WIFI,
także możesz go wpiąć pod RX/TX i wykreować po wifi połaczenie, później wypiąć
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

PelzaK - jak najbardziej mogę Ci wysłać Wemos D1 / NodeMCU / Arduino NANO / Arduino pro Mini lub wszystkie :) da to kopa projektowi :)
Napisz na e-maila adres gdzie wysłać : kompio(at)kompio.net
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Tu nie chodzi o brak urządzeń, bo raczej nie mam problemu z dostępem do nich. Problemem jest czas, więc jeśli byś dał radę trochę przesłać
to byłbym wdzięczny, ;).

Image
Kadr z filmu "In time"
VDR
Posts: 15
Joined: 01 Jun 2015, 12:57

Re: Własne moduły

Post by VDR »

W sieci są serwisy gdzie usb po tcp/ip przesyłamy ;) ;) Na drugi koniec globu ;) To już dawno zostało wymyślone zanim jeszcze ESP8266 wyszło ;)
Co do security - Z-Wave juz padł ;P http://www.networkworld.com/article/302 ... vices.html
Ja zaufania do Wi-Fi nie mam ;) Ethernet znacznie łatwiej chronić :D
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Wrzuciłem efekt kilku ostatnich dni pracy na gita. Testowałem różne możliwości uproszczenia całego procesu tworzenia firmware. Bloki, o których wspominałem wcześniej nazwałem SubModules. SubModuły odpowiadają pojedynczym funkcjom Hapcana. Jako pierwszy submoduł stworzyłem odpowiednik Hapcanowego wyjścia na przekaźnik. Jeden submoduł realizuje wyjście dla jednego przekaźnika, zatem można zrobić moduł na Arduino z dowolną liczbą wyjść. Nawet więcej, można będzie do jednego urządzenia dodać różne submoduły, realizując np. urządzenie mające 4 przekaźniki, 10 wejść na przyciski, 5 termometrów i wyświetlacz z godziną ;) - i to wszystko powinno zająć mniej niż stronę kodu.

Submoduł potrafi sam przetworzyć instrukcję otrzymaną z ramki Control Frame 0x10A, lub też zareagować na jakąś wiadomość ustawioną w boxie. Również i sam wysyła ramkę hapcanową przekaźnika 0x302. Jedyne co trzeba zrobić aby to zadziałało, to zainicjować submoduł itp, co daje łącznie kilka linii kodu i jest nowe urządzenie :). Submoduł obsługuje instrukcje On, Off, Toggle, opóźnienie każdej instrukcji oraz... Blink - czego mi brakowało w Hapcanie i realizowałem to kilkoma boxami :). Teraz można sobie będzie mrugać światłami do woli. Jeśli macie jeszcze sugestie co do wyjścia przekaźnikowego to piszcie na githubie https://github.com/Onixarts/Hapcanuino/issues.

Póki co jeszcze nie polecam nic na tym implementować, bo prawdopodobnie będę musiał jednak rozszerzyć nieco zminimalizowane boxy - bo nie mieszczą się wszystkie parametry instrukcji blink :). Jak ogarnę jeszcze kilka podstawowych submodułów zabiorę się za programator.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Własne moduły

Post by kompio »

Wow. :)
.. Pierwsza zecz jaka mi przyszla do glowy to zrobic modul do sterowania silownikami rozdzielaczy podlogowki :)) ..
Dalo by sie tym sterowac z termostatu w przyciskow dopuszkowych ?
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Akurat z termostatem nie miałem do czynienia, ale w zasadzie czemu miało by się nie dać? ;)

Zastanawiałem się również nad wejściami analogowymi, ale tutaj w hapcanowych modułach jest ograniczenie, bo np w boxach da się ustawić porównywanie bajtów na ignoruj, równe i różne. Do pełni szczęścia powinno się dać ustawić <, <=, >, >=, albo chociaż <,>. Ale to już Jacek musiałby takie usprawnienie dorobić :).
W innym przypadku trzeba by stworzyć osobny moduł zajmujący się porównywaniem danych analogowych i tłumaczeniem ich na ramki sterujące urządzeniami.
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

PelzaK wrote:...Submoduł obsługuje instrukcje On, Off, Toggle, opóźnienie każdej instrukcji oraz... Blink - czego mi brakowało w Hapcanie...
Kiedy wykorzystujesz funkcję Blink?
PelzaK wrote:...Do pełni szczęścia powinno się dać ustawić <, <=, >, >=...
Z tym nie ma problemu, tylko potrzebne jest jakieś 24h czasu wolnego... ;)
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Kiedy wykorzystujesz funkcję Blink?
W zasadzie jeszcze nie wykorzystuję, bo prace nad bibliotekami w toku. Ale przykładowo mam światło zapalane chwilę przed budzikiem - funkcję tę mogę aktywować lub wyłączyć pilotem. Jako potwierdzenie włączenia/wyłączenia migam sobie światłem jak w alarmie samochodowym :D. W zasadzie miganie ograniczyłem do dłuższego i krótszego zapalenia światła, bo mrugnięcie 2 razy światłem za pomocą wyłączania/włączania boxów uznałem za zbyt skomplikowane ;).

Miganie może być też przydatne w jakichś sytuacjach alarmowych czy awaryjnych, albo jako sygnalizacja ostrzegawcza zamykanych rolet czy bramy.

W przypadku hapcanowskich relayów może to nie być aż tak pożądana funkcja, ale moja biblioteka jest w zasadzie luźno związana z hardwarem, więc równie dobrze pod wyjście można podłączyć diodę LED czy inną lampkę ostrzegawczą i wykonać komendę w stylu mrugnij 5 razy z okresem 300ms.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Zrobiony kolejny, w sumie to drugi ;), submoduł - przycisk. Prócz Hapcanowych zdarzeń obsługuje dodatkowo naciśnięcie 1s i zwolnienie po 1s, oraz ma możliwość konfiguracji, czy aktywny (wciśnięty) jest stan wysoki czy niski. Się trochę rozpędziłem z tym kodem wysokopoziomowym, że mi w Arduinie pamięci zabrakło :D. Szkoda, że mniejsze jednostki mają tylko 32KB/2KB. Arduino Mega ma 256KB/8KB to już nie tak łatwo ją zaskoczyć. Ale tam z kolei ponad 50 niepotrzebnych pinów IO ;).

Chyba dorobię jeszcze odchudzoną wersję wejścia cyfrowego, które nie obsługuje tłumienia drgań przycisku i ma tylko dwa zdarzenia informujące o stanie wejścia - takie specjalnie pod czujniki wszelakiej maści z wyjściem cyfrowym.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

Optymalizacja zużycia pamięci zrobiona. Udało się zmniejszyć ją ponad 5 krotnie ;).

Jacku, kiedyś wspominałeś coś o wejściu analogowym. Czy może masz już rozplanowaną strukturę ramki takiego wejścia? Fajnie by było jakby wszelkie takie ramki "uniwersalne" były ustandaryzowane. Wtedy mógłby je obsługiwać i poprawnie wyświetlać dowolny monitor magistrali chociażby.
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

Nie zastanawiałem się jeszcze nad strukturą ramki analogowej, ale mogłoby to być coś takiego;
30 A0 id id FF FF [kanał] [wartość analogowa-bity 15-8] [wartość analogowa-bity 7-0] [rezerwa] [rezerwa] [rezerwa]
Regards
Jacek
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Własne moduły

Post by Bartek »

To może by wpisać to na jakąś listę standardowych ramek, że 0x30A - ramka wejścia analogowego. Prócz wartości 16 bit dodałbym jeszcze wartość analogową o zmniejszonej rozdzielczości do 8 bitów, żeby można było to ładnie obsłużyć innymi modułami. W sumie 256 wartości powinno wystarczyć do większości zastosowań.
Jacek
Posts: 561
Joined: 17 Feb 2007, 18:00

Re: Własne moduły

Post by Jacek »

Też tak myślałem, ale ten pierwszy bajt [wartość analogowa-bity 15-8] może pełnić tę funkcję. Drugi bajt będzie niejako "dokładnością po przecinku".
Regards
Jacek
Post Reply