Wpis z mikrobloga

Dzień dobry Mirki,
Chciałbym się pochwalić swoim dość rozbudowanym niekomercyjnym projektem, mającym służyć do obsługi naszych zawodów łucznictwa konnego. Chciałbym również prosić o rady i ocenę sensowności poszczególnych prezentowanych rozwiązań.

Podstawowym celem systemu jest mierzenie czasu przejazdu zawodnika. W tym celu na początku i końcu toru umieszczam fotokomórkę (ir beam) z #arduino. Na razie zasilałem to akumulatorem żelowym 12V – ale pracuję nad minimalizacją i pewnie użyję 3/4 akumulatorów 18650. Do komunikacji stosuję układ radiowy HC-12 (433 MHz) , ponieważ deklarowany zasięg dochodzi do kilometra. Na zawodach zakładam, że odległość może wynosić jakieś 200 metrów z końmi i ludźmi pomiędzy, więc uznałem, że tańsze układy mogą być za słabe. Element centralny odbiera sygnały o minięciu bramek i wyświetla czas. To w tej chwili mi już działa – używałem to na zawodach w 2016.

Teraz pracuję nad dalszym rozwojem systemu i chciałbym dodać możliwość, by sędziowie odczytujący wyniki z tarcz znajdujących się wzdłuż toru, mogli raportować przy jego pomocy wynik zawodnika (czyli liczbę całkowitą z zakresu 0-5). Tutaj pojawia mi się problem, jak najłatwiej to rozwiązać? Prosta aplikacja na Androida? Myślałem o jakichś pilotach radiowych, ale nie znalazłem niczego zadowalającego. Skłaniam się do zrobienia pilota z Arduino pro mini 3.3V, 6 przycisków, układu HC-12 i akumulatorka 18650. Czy to dobre rozwiązanie? Czy ma ktoś jakąś lepszą pomysł?

Element centralny w tej chwili to Arduino Uno + multi function shield (gotowy shield z wyświetlaczem numerycznym i trzema przyciskami). Rozważam, czym go zastąpić. Prosta centrala z wyświetlaczami i przyciskami do obsługi? Może parę diodek statusu dla lepszego efektu. Ewentualnie osobny element centralny, umieszczony gdzieś pośrodku, i osobny panel do jego obsługi - umieszczony przy sędziach. W przyszłości pomyślę o jakichś większych wyświetlaczach.

Zastanawiam się, jakbym mógł najlepiej to połączyć z laptopem. Chciałbym, abym nie musiał ręcznie przepisywać wyników to Excela i w tym celu rozważam napisanie jakiegoś programu do obsługi. Myślałem nad zrobieniem tego pod Arduino i zapisywaniem wyników na karcie SD lub użyciem Rasbery. Coraz mocniej skłaniam się jednak do napisania prostej strony pod Tomcatem (JSP, może GWT - miałem z tym trochę styczności), służącej do obsługi zawodów i użyciem WiFi do wysyłania wyników z #esp8266 lub #esp32 (którym bym zastąpił Arduino w elemencie centralnym) po http do laptopa. Czy to nie robi się zbytnio skomplikowane? Ale nie wpadłem na to, jak to prościej, wygodniej i szybciej zrobić.

Jeśli ktoś jest zainteresowany i chce śledzić moje postępy, to będę do kolejnych wpisów dodawał tag #radekradarduino . I pozwolę sobie dodać #programowanie
  • 13
@radekrad: również zabieram zabieram się za duży projekt o nazwie roboczej gardenBOX, czyli pudło, w którym będzie można stworzyć idealne środowisko (temperatura, wilgoć, nawodnienie, oświetlenie) i będę korzystać z esp8266 żeby stworzyć interfejs.

Według mnie to jest najlepsze rozwiązanie bo zarówno dzięki temu możesz raportować wyniki przy pomocy aplikacji na Androida jak i zapisywać dane do bazy oraz je wyświetlać. Nawet można stworzyć prostą konfigurację bo cały interfejs robisz na serwerze
@ELO_2012: U mnie to się robi delikatnie trudniejsze. Bo chciałbym mieć współpracę z laptopem (bez dostępu do internetu) a jednocześnie musi to sobie radzić, jeśli laptopa nie będzie (przynajmniej w minimalnym zakresie). Dodatkowo muszę nie tylko oprogramować arduino/esp ale również klepnąć interfejs na laptopie. W sumie sporo zabawy.
@ELO_2012: też nad tym myślałem, ale właśnie nie za bardzo widzę, jakie są tego zalety. Jeśli chcę to obsługiwać, to i tak potrzebuje monitor i klawiaturę. Na zawody tego nie wezmę - prościej wziąć laptopa. A jak mam laptopa... to właśnie prościej na nim odpalić serwer http i SQL. I kółko się zamyka. A bez użycia laptopa to wystarczy, że czas i wyniki z tarcz się pojawią na małym ekranie (np.
@radekrad: Z wszelkimi bajerami na android uważaj. Jeśli wystawisz sieć wifi bez dostępu do internetu to dla android 6 lub 7 nie połączy się z nią, tzn połączy ale ruch dalej będzie szedł po hsdpa lub lte a przy ikonce wifi będziesz miał wykrzyknik. Z esp jest fajnie, ale 200 metrów przy przeszkodach to nie wiem czy pociągnie. Chyba że moduły z antenkami.
@houk: O ile mi wiadomo, ESP na 200 metrów może średnio dawać radę. Chodziło mi, że Arduino z bramek i pilotów słałby po HC-12 wyniki do ESP, a ten po WiFi do laptopa. Wbrew pozorom element centralny jest trochę zajęty. Na HC-12 musiałem zrobić prosty protokół transmisji z własną obsługą retransmisji. Ale tak, masz rację - rzeczywiście Androidy mogą się buntować, jeśli WiFi będzie bez internetu.
@radekrad: Ja bym stawiał na prostotę i piloty z 433 MHz dla sędziów. Do tego centrala sypiąca po serialu do laptopa albo Raspberry. Im mniej technologii w projekcie tym mniej może się popsuć zwłaszcza że masz działający system. Da się to zamknąć w wielkości typowego pilota jeżeli możesz zrobić układ na własnym PCB z elementami SMD.
@keton22: a nie widziałeś żadnych gotowych pilotów? Widziałem tylko jakieś do automatyki domowej - ale one miały zasięg do jakichś 100 metrów, a to troszkę mało. Zostaje zrobić prosty PCB z przyciskami, Arduino i radiem (wspomnianym HC-12). Może nie będzie to ładnie wyglądać ale powinno działać.
@radekrad: Mam możliwość zrobienia sobie układów pod daną aplikację więc nie śledzę tematu. Ale jak nie chcesz bawić się w radiówkę to ogarnij Moteino od Low power labs. O ile dobrze pamiętam jest wersja 433 MHz. Zostanie dorobić przyciski.
@radekrad może prościej ale tylko trochę, a pi możesz mieć włączone cały czas i dzięki serwerowi jesteś w stanie zrobić wszystko, nawet odświeżanie na żywo w Excelu.
Nie wiem też jak bardzo chcesz się w to bawić ale zapisywanie danych na kartę SD to już przeżytek...
@Marcin648: @ELO_2012: Wstępnie właśnie planowałem zrzucać pliki CSV na kartę SD, ale koniec końców uznałem, że to może się nie sprawdzić. Dlaczego? Trochę specyfika zawodów. Zwykle na zawodach zawodnicy startują w grupach, w każdej jest około 5 zawodników i mają powiedzmy 6 przejazdów. Czyli każdy w grupie jedzie pierwszy przejazd, później wszyscy w grupie drugi, cała grupa trzeci itd. I wystarczy, że ktoś wypadnie, ktoś będzie musiał powtórzyć przejazd, z