24 sierpnia 2020
Co, jeśli firma nie tworzy firmware ani frameworku, a tylko oprogramowanie? Są specjaliści, którzy przygotowują wyłącznie sprzęt, i razem mogą osiągnąć sukces. Pojawia się jednak inne pytanie: czy nie prościej kupić gotowy zestaw? Takie urządzenie jest już podłączone do chmury, komunikuje się przez API i można na nim postawić własny system. Rozwiązania smart home łatwo zintegrować – mają już subskrypcję i są ze sobą kompatybilne. Dobrym przykładem firmy, która dostarcza takie rozwiązania, jest Asset Link Global. I to wystarcza – wszystko działa. Asset Link produkuje sondy złożone z czujnika, jednostki obliczeniowej i łączności satelitarnej (opcjonalnie GSM). Kupując taki zestaw, od razu dostajemy dostęp do API i możemy zbudować własny system, a zestaw montuje się w miejscu, w którym będą wykonywane pomiary. Asset Link wszystko konfiguruje.
Inaczej jest, gdy chcemy prowadzić bardziej zaawansowane badania. Bez gotowych zestawów droga jest nieco bardziej skomplikowana. Często po prostu nie ma gotowego zestawu, który mierzy dokładnie ten parametr, którego potrzebujesz – i to w określonych warunkach. W tych warunkach może też brakować dostępu do zasilania. Na rynku komercyjnym zwyczajnie nie ma gotowych czujników do każdego parametru. Pomiary w wodzie to na przykład bardzo wąska dziedzina – jeśli potrzebujesz takiego urządzenia, trzeba je przygotować indywidualnie. Nawet z tymi samymi sondami nie zawsze wystarczy wyjąć je z pudełka, wrzucić do zbiornika z wodą i od razu mieć pomiary. Najpierw trzeba dobrać parametry czujników. Zdarza się, że bateria działa za krótko albo że transmisja idzie przez satelitę, bo na miejscu nie ma zasięgu GSM. W końcu trzeba zebrać wszystkie wymagania: w jakich warunkach urządzenie ma pracować, jak długo, jak często próbkować, żeby pomiar miał sens, jakie są możliwości zasilania itd. Tak powstają projekty takie jak Spark Control czy Smart Factor.
Budując urządzenie na zamówienie, trzeba przemyśleć kilka ważnych kwestii:
1. Sercem całego systemu jest procesor (CPU).
2. Do procesora podłączamy zestaw czujników przez magistrale takie jak UART, RS232, GPIO, I²C, I²S. Bierzemy procesor i podłączamy do niego tyle czujników, ile potrzebujemy i ile ma sens – każdy z nich trzeba sprawdzić pod kątem poboru energii, interfejsów, do których zostanie podłączony, i odporności na warunki zewnętrzne. Wszystkie te elementy trzeba dobrać, zweryfikować, a potem zintegrować.
3. Za pomocą tych samych technologii komunikacji do interfejsu podłącza się terminal łączności. Może on być przewodowy albo bezprzewodowy. Wśród złączy przewodowych są PoE, USB, ethernet, Modbus. Do tego cała gama technologii bezprzewodowych, takich jak LoRa, LTE, radio GHz, BLE, WiFi, Bluetooth, Zigbee, narrowband itd.
4. Zasilanie. Żeby urządzenie działało poprawnie, potrzebuje energii. Baterię można ładować energią słoneczną, wiatrową, indukcyjną, z przepływu wody itd. Przy zasilaniu słonecznym sprawdza się prosty schemat: w dzień bateria się ładuje, w nocy urządzenie korzysta ze zgromadzonej energii. Przy zasilaniu indukcyjnym wygląda to tak, że ktoś podchodzi, wysyła impuls, cały zestaw się uruchamia i mamy pomiar. Generator z turbiną wodną musi znajdować się w zbiorniku – specjalna turbina może jednocześnie wytwarzać energię i wykonywać pomiar. Bardzo dobrym rozwiązaniem jest też PoE (zasilanie i komunikacja) + ethernet – zasilanie i komunikacja jednym przewodem.
Wróćmy jednak do procesora. W zależności od rodzaju projektu może wyglądać bardzo różnie.
Jednym z najprostszych rozwiązań jest Raspberry Pi. Łatwo go programować, bazuje na języku Python. Wszystkie skrypty pisze się pod Linuksem. Z poziomu systemu mamy dostęp do wszystkich portów. Jeśli pytasz, jak trudno z niego korzystać, odpowiadamy: „łatwo ++”.
Kolejne rozwiązanie to Industrino. Jest przeznaczone do zastosowań przemysłowych, programuje się je w C/C++ i nie ma systemu operacyjnego. Jest pewna nakładka, ale nie ma Linuksa. Mamy za to złącza, wszystkie porty, pamięć, wyświetlacz, przyciski i interfejsy diagnostyczne, przez które można wyprowadzić dodatki, na przykład interfejs diagnostyczny. To gotowe urządzenie, z którego można przygotować zestaw diagnostyczny, a nawet użyć go w produkcji lub procesie przemysłowym. Industrino ma obudowę i spełnia wymagania pracy w temperaturach od -40F do 176F (-40C/+80C); jest odseparowane, więc pozostaje bezpieczne, gdy uszkodzi się inny element projektu. Nadaje się do wdrożeń liczonych w dziesiątkach, a nawet setkach sztuk, ale nie więcej..png)
Arduino – występuje w dwóch odmianach. Jedna to coś w rodzaju zestawu DIY, ale nas interesuje Arduino przeznaczone do urządzeń jako jeden z ich komponentów. Jest też miniArduino (w rzeczywistości wycofane z produkcji, ale ma otwarte źródła i firmy wciąż z niego korzystają) – niektóre firmy nadal produkują je w różnych konfiguracjach sprzętowych. Ma rozmiar znaczka pocztowego. Ma wiele gotowych do użycia, różnych interfejsów, programuje się je w C/C++ jak Industrino, środowisko programistyczne jest to samo, a moc obliczeniowa – ograniczona. Arduino w wersji mini to układ bez obudowy, którego nigdzie się nie montuje i który nie ma bezpośrednich złączy. Żeby w ogóle go uruchomić, trzeba coś do niego dodać. Do uruchomienia potrzebna jest płytka PCB. Z tego właśnie buduje się urządzenie. Arduino jako jednostka sterująca.
ESP32 jest przeznaczony do bardziej złożonych zastosowań, zwłaszcza w pracach badawczo-rozwojowych. Moduły ESP mogą działać jako małe serwery lub klienty WWW. W praktyce ten moduł świetnie sprawdza się w zastosowaniach takich jak smart home. ESP wykorzystano jednak także w projektach rolniczych, takich jak Spark Control.
.png)
.png)
TI/STM32/ARM to rozwiązania bardziej zaawansowane, dostępne także w wersji mikro; przykłady zastosowań to Euroasfalt i Spark Control. Koszt prac badawczo-rozwojowych może być niski tylko przy produkcji powyżej 100 000 urządzeń – im więcej produkujemy, tym bardziej staramy się obniżyć koszt części i koszt prac badawczo-rozwojowych w stosunku do kosztów produkcji samego sprzętu.

Skala produkcji:
Raspberry 10+
Industrino 100+
Arduino 1000+
TI/ARM/STM 1000+
Na koniec rzecz nie mniej ważna – firmware. Gdy mamy już urządzenie, trzeba je zaprogramować: zdecydować, kiedy i jakie pomiary wysyłać. Być może urządzenie mierzy wartości, których nie chcemy przesyłać. Niektóre chcemy zbierać częściej, gdy przekroczą określony próg; być może będziemy sterować częstotliwością próbkowania i musimy ustalić, jak często o nią pytać. Za całą tę logikę odpowiada program i w każdym zastosowaniu wygląda ona inaczej – to ona sprawia, że urządzeniem można sterować z zewnątrz. Zawsze jest coś, co trzeba dostosować, skonfigurować, dobrać parametry. Firmware działa na niższym poziomie niż system operacyjny.
Jeśli masz pytania albo chcesz dowiedzieć się więcej, napisz do nas – chętnie pomożemy. Każdy komponent można wymienić, a my wiemy, jak zrobić to dobrze.
Zapytaj o wycenę lub poradę
Przeanalizujmy razem koncepcję Twojego projektu i to, na jakim jest etapie.
Otrzymasz od nas wstępną propozycję zakresu projektu oraz szacunek czasu i kosztów.
Konsultacje są objęte umową NDA.