Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Mam ESP32 i nie zawaham się go użyć... albo rozbudowywalny system pomiarowy

w_d 18 Jan 2021 13:53 1071 3
  • Mam nadzieję że zbytnio nie łamię reguł ale to do oceny admina.
    Ostatnio zainteresowałem się modułami z ESP32. Pierwsze zabawy były z gatunku 'proste i na zlecenie' ale teraz postanowiłem wykorzystać go w pełni. Wpadłem na pomysł zrobienia bazy do przyrządów pomiarowych. Bazy bo myślę o konstrukcji która zawiera podstawowe klocki stałe i określone klocki 'wymienne' zmieniające funkcję.
    Założenia:
    • Małe (takze fizycznie) urządzenia które dawały by się zestawiać wedle potrzeb jak klocki (nawet wymyśliłem formę wspierającej to obudowy do druku 3D).
    • Przewidziane są moduły w formie 1H1W, 2H2W, 1H2W itd. Wymiarowo jeden moduł minimalny to H=50mm W=100mm L=200mm (ale długość może być mniejsza / wieksza bez problemu dla mechanicznej funkcjonalnosci zestawu).
    • Wszystkie miały by możliwość łączenia i rozłączania w jeden blok wedle potrzeby. Zapewniają to występy boczne i dolne (robiące też za nóżki).
    • Obudowy miały by oddzielnie czesc przednia, body i tylnia. Body było by 'uniwersalne' z miejscem na montaż 2 płytek drukowanych. Tył w zasadzie byłby standardowy z jednym otworem na mikro USB i miejscem na drugi otwór na zasilanie 20V. Przód byłby bardziej zmnienny - pod funkcjonalność urzadzenia - złącza różnego typu...
    • Mocowanie przodu/tyłu w body na pasowanie i zatrzaski (ale w taki sposób aby się to nie wypinało przy operowaniu złączami. (już opanowane...)
    • Chłodzenie pasywne - otwory w bocznej górnej i dolnej części obudowy - tak zrobione że współgrają z sąsiednimi modułami.
    • Obudowy pojawiły by się na Thingiversie do pobrania (ale z licencja 'noncommercial' i napisami ). Jeszcze nie zostały zamknięte więc jeśli są uwagi to zapraszam...
    • Każde z urządzeń było by w pełni samodzielne ale mogły by działać w spójnym logicznym zestawie.
    • Kazde z urządzen (oprócz początkowych / najtańszych) posiada mały wyświetlacz OLED (sterowanie I2C) i 3 czujniki dotykowe pojemnosciowe (podklejone pod płytę przednia). Dodatkowo LEDy wedle potrzeby.
    • USB daje prostą komunikacje 'terminalową" - w tym komunikaty na czas uruchamiania. ale docelowo nie będzie chyba używane do komunikacji)
    • Komunikacja podstawowa to HTTP (docelowo też HTTPS).
    • Zasilanie urzadzen (oprocz tych potrzebujacych wiekszej mocy) to USB Micro albo USB B - powod to duza ilosc poniewierajacych sie wszedzie zasilaczy od telefonow - starsze to 400mA nowsze do 3A. Kable są też łatwo dostępne. Co do urzadzeń większych wymyśliłem sobie że wystarczy dodatkowy zewnętrzny zasilacz 20V / 3A - akurat jak od laptopa Lenovo :) Narobiło mi się ich kilka 'zapasowych' i żal wyrzucic. Zasilacze i te od USB i te komputerowe maja wszystkie niezbędne certyfikaty jakby co a jest polski 'producent' zamienników - okolo 20zl za zasilacz:)
    • Możliwe było by zasilanie 'powerbankiem' (ale tylko mniej żarłocznych modułów - na pewno nie zasilaczy > 5V)
    • Urządzenia komunikują się nominalnie przez WiFi.
    •• Pierwszy raz włączone udostępniały by własny AP (2.4G, 1 kanał, mała moc, hasło indywidualne na obudowie) do konfiguracji.
    •• Wbudowany serwer WWW umożliwiałby konfiguracje urządzenia.
    •• Po konfiguracji mogły by działać albo jako 'bida AP' (wybrany kanał i pasmo ale z niewielka ilością klientów - max 5) albo jako stacja z AP klienta. Ta część jest domknięta chociaż będą może jeszcze zmiany jak coś ktoś zażąda dodatkowego :)
    •• Skonfigurowanie WiFi lub nie nie zmienia nic w minimalnej 'ręcznej' funkcjonalności urządzenia. Tyle że nie będzie ustawiania z sieci itd - no i extra funkcji - bo po co komu powiadamianie o zmianie stanu jak nie ma kogo powiadomić przez siec.
    • Teoretycznie jest możliwa też komunikacja BT ale nie dodawałem (trudniej budować interface od strony komputera no i mniejsza przepustowość). Odpadają też wtedy moduły S2 a te są tańsze...
    • Urządzenia udostępniają interfejs do konfiguracji, odczytu danych i do sterowania urządzeniem. Podstawowy byłby dostęp po http: (Z dostępem po https mam problem - kwestia ładowania certyfikatów które będą wygasać przecież...). Wstępne rozwiązanie jest ale... i tak nie ma jeszcze linii urządzeń.
    • Urządzenia rozgłaszają się w sieci poprzez mDNS a więc nie trzeba pamiętać magicznych numerków (które zmienić się mogą po restarcie) ale mamy obok numerków nazwy nastawialne przez użytkownika. Ułatwia to też życie z certyfikatami.
    • Dostępna będzie możliwość programowania urządzeń przez sieć (także z aplikacji).
    • Postawą komunikacji z 'siecia' były by formularze HTML i JSONy ale tak sobie myślę ze dla zgodności z 'przeszłością' powinien być implementowany docelowo 'język' z komunikatów znanych z poprzednich epok - prawdopodobnie przez opcjonalnie dostępny port Telnet.

    Pierwszym byłby niewątpliwie prosty moduł 8*Digital IO plus pomiar napiec na tych liniach (ale z założenia bez jakiejś specjalnej precyzji - efektywne 8-10 bit). Miałby on możliwość generacji PWM (samodzielnie - w tym powolnego przyrostu i opadania).

    Drugim będzie zasilacz programowalny 0-20V w 2 odmianach (impulsowy 0-20V /3A i 0-15V / 3A impulsowo-liniowy).

    Później będą mierniki (napięcia, 20/40mA, termopary itd), generator arbitralny (, regulator PWM, 'stacja pogodowa' z wieloma (>2) czujnikami wyniesionymi, analizator logiczny, oscyloskop no i 'sterownik' który mógłby umożliwić autonomię pracy zestawu. Oczywiście "kiedyś". Przecież sam z dnia na dzień tego nie zrobię - szczególnie że to raczej 'hobby' a nie praca (czyli coś co daje na chleb z masłem na dzisiaj).

    Po co o tym wszystkim piszę? Poszukuje potrzeb innych ludzi. Zrobienie urządzenia dla siebie jest niewątpliwie fajne ale mało 'efektywne'. Myślę o tym aby zaproponować to docelowo na rynku - ale z pozostawieniem kodu jako otwartego. Potrzebuję krytyki (konstruktywnej) i propozycji jak coś zrobić lepiej

    Dodatkowo potrzebuje weryfikacji założeń. Oczywiście, część rzeczy już istnieje 'w kodzie' ale jak to z programem - zawsze można to zmienić... Powiedzmy - jaka komunikacja z aplikacjami w PC albo rodzaj języka dostępnego dla użytkownika w sterowniku.

    Czy ktoś jest zainteresowany współpracą? :)

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    w_d
    Level 12  
    Offline 
    w_d wrote 47 posts with rating 12, helped 2 times. Live in city Polska. Been with us since 2003 year.
  • MetalWorkMetalWork
  • #2
    faber
    Level 23  
    Pomysł fajny ale jaka miała by być grupa docelowa ? szkolnictwo ? no i nie zrozumiałem idei najważniejszej, budowy klocków. Rozumiem, że każdy "klocek" mógłby coś wykonywać, no ale złączenie 3, 4 klocków w blok co ma stworzyć ? jakiś przykład budowy większego urządzenia ?
  • MetalWorkMetalWork
  • #3
    w_d
    Level 12  
    faber wrote:
    Pomysł fajny ale jaka miała by być grupa docelowa ? szkolnictwo ? no i nie zrozumiałem idei najważniejszej, budowy klocków. Rozumiem, że każdy "klocek" mógłby coś wykonywać, no ale złączenie 3, 4 klocków w blok co ma stworzyć ? jakiś przykład budowy większego urządzenia ?


    Dzieki za zainteresowanie
    Grupa docelowa? :
    - Szkoły (Pamiętam jeszcze idee HP-PCIB) ale tez studenci i uczniowie
    - mniej zamożne firmy / startupy (koszt komponentów byłby bardzo niewielki - plus idea 'uzywania zapasów' typu zasilacze 5V)
    - automatyka i pomiarówka przemysłowa
    - AMATORZY (w sumie - Open Design)

    Klocki - chodzi o to ze całość daje się łączyć w zestawy - także mechanicznie. Wypustki / szczeliny umożliwiały by montaż w bloki jednolite mechanicznie. Myślałem pierwotnie o użyciu szyn DIN ale ona zbytnio ogranicza wielkość. Nie mówiąc o tym że nie widzę urządzeń w szynie na biurku. A więc klocki składane poziomo i pionowo z możliwością wrzucenia do racka 19" (elementarna wysokość to 'prawie' 1U)
    Podobnie oprogramowanie - klocki mogły by się komunikować - np - info o zmianie stanu linii w jednym klocku mógłby wywołać zmianę stanu innej linii w innym urządzeniu. Do tego przewidywałbym docelowo 'sterownik' o zwiększonych możliwościach (np. pamięć Flash typu SD do zapisu danych, przejście na sieci kablowe 10/100, dołączenie innych urządzeń np przez HPIB albo USB).
  • #4
    w_d
    Level 12  
    Z tego co widzę temat nie chwycił czyli średnio ma sens jego ciągnięcie......