Jakiego mikrokontrolera i języka programowania należy używać do wyświetlania pogody w Internecie?


11

Jestem nowicjuszem w IoT i chcę rozpocząć karierę w IoT. Podczas wyszukiwania w Google startupów w IoT znalazłem wiele blogów. I znalazłem języki używane w IoT, takie jak C #, Java, Node.js oraz mikrokontrolery, takie jak Arduino, Raspberry Pi, Intel, Netduino itp.

Ponieważ jestem nowy w IoT, nie wiem, który język jest najlepszy i jakiego mikrokontrolera używam do uruchamiania?

Mówię, że w przypadku podstawowego uruchomienia chcę utworzyć urządzenie z wyświetlaczem pokazującym pogodę dla lokalizacji podanej z mojego telefonu komórkowego. Może to być dobry przykład na uruchomienie, które obejmuje sprzęt, Internet i oprogramowanie.

Urządzenie będzie zasilane bateryjnie, małym wyświetlaczem cyfrowym i ograniczeniem kosztów tak.

Z jakiego mikrokontrolera i języka powinienem korzystać, który spełnia moje wymagania dotyczące wyświetlania pogody?


1
Wydaje się, że jest to znacznie lepsze pytanie niż poprzednie; znacznie bardziej skoncentrowany na konkretnym przypadku użycia. Więc możemy dać ci dobrą odpowiedź, oto kilka pytań: czy twoje urządzenie będzie zasilane z sieci czy z baterii? Jak duży ma być wyświetlacz? Czy istnieje ograniczenie kosztów?
Aurora0001

2
Również w przypadku wyboru mikrokontrolera ta odpowiedź jest naprawdę fantastyczna.
Aurora0001

1
Dziękuję @ Aurora0001 Dodałem więcej szczegółów w komentarzach, proszę sprawdzić.
Jigarb1992

1
Zbieranie nitów: Arduino to mikrokontroler. Pi jest pełnym komputerem, takie jak Pis i Beaglebones i Gumstix są zwykle nazywane „komputerami jednopłytkowymi” (SBC) lub „komputerami na modułach” (COM). W przeciwieństwie do Pi, Arduino nie działa na systemie operacyjnym - Arduino to tylko Atmel ATmega ?? 8 na ładnej, łatwej w obsłudze płycie, która jest dostarczana z wygodnym IDE. Pi to prawdziwy komputer z rdzeniem mikroprocesora ARM Cortex-A53. Możesz użyć, powiedzmy, Pi do wykonania wszystkich działań związanych z siecią i wyświetlaniem oraz złożonej kontroli za pomocą Arduino do wykonywania prostych prac, takich jak przyciski odczytu, znaczniki RFID lub coś takiego.
Jason C

1
Urządzenia zasilane bateryjnie: czy masz na myśli smartfon / smartwatch (bateria Li, żywotność kilka dni między ładowaniami), czy jak zegar (AA nie nadaje się do wielokrotnego ładowania, żywotność kilka miesięcy)? To wpłynie na twój projekt i poważnie ograniczy twoje opcje, jeśli wybierzesz ten drugi.
pjc50

Odpowiedzi:


5

Osobiście wybrałbym do tego Raspberry Pi 3B , chociaż prawdopodobnie jest on o wiele potężniejszy niż naprawdę potrzebujesz. Powody, dla których sugeruję to:

  • Ma wbudowaną bezprzewodową sieć LAN 802.11 b / g / n, więc będziesz mógł podłączyć ją do sieci Wi-Fi zamiast za pomocą kabla Ethernet

  • Obsługuje również Bluetooth, więc możesz przez to połączyć się z telefonem.

Będziesz także potrzebował wyświetlacza, a wygodnie jest kilka wyświetlaczy zaprojektowanych dla Raspberry Pi, takich jak ekran dotykowy 4DPI-32 . Powinieneś być w stanie umieścić wyświetlacz bezpośrednio w 40-pinowym nagłówku:

40 pinów Raspberry Pi Foundation , CC BY-SA 4.0 . Wiem, że technicznie jest to Pi 2B, ale GPIO jest takie samo na 3B.

Jeśli chodzi o aspekt programowania w tym przypadku, wszystko, co musisz zrobić, to pobrać pogodę z interfejsu API i wyświetlić go na ekranie jako program GUI. Wyświetlacz działa jak każde wyjście HDMI dla Pi, więc nie musisz robić nic specjalnego. W przypadku Pythona możesz użyć Tkintera do stworzenia podstawowego interfejsu użytkownika lub możesz nawet napisać aplikację internetową w HTML / CSS / JS, w zależności od tego, z czym czujesz się komfortowo. Możesz użyć OpenWeatherMap API za darmo; dokumentacja jest połączona dla każdego punktu końcowego API.

W tym momencie to naprawdę zależy od ciebie. Najlepszy język jest tu język jesteś najbardziej komfortowo. Jeśli podoba Ci się angularjs, wystarczy utworzyć stronę HTML, pobrać pogodę z kątowym (lub użyć biblioteki jak to pomóc) i wyświetlić go za pomocą niektórych CSS, aby wyglądać ładnie.

Podejrzewam, że aby uzyskać lokalizację, łatwiej byłoby po prostu pozwolić użytkownikowi na wpisanie swojej lokalizacji na ekranie dotykowym Pi. Przesłanie lokalizacji telefonu jest prawdopodobnie nieco trudniejsze, chociaż możesz znaleźć coś, jeśli będziesz dużo szukać.

Jeśli chodzi o zużycie baterii, warto przeczytać to pytanie na Raspberry Pi Stack Exchange .


1
Muszę podłączyć zestawy Vilros Pi , które działają od razu po wyjęciu z pudełka i pozwalają zaoszczędzić mnóstwo irytującej konfiguracji początkowej. Także nie na temat, ale do debugowania uznałem to (i jego wzmocnioną wersję, jeśli przeszukujesz witrynę), za niezwykle przydatne. Drogie do jednorazowego użytku, ale warto, jeśli używasz go przez cały czas. Działa dobrze z adapterem HDMI -> VGA.
Jason C

1
Nie. Po pierwsze z powodu polegania na delikatnej karcie SD, po drugie dlatego, że tak naprawdę nie można przejść do produkcji w umiarkowanych ilościach. Pi może dać ci dowód koncepcji, ale wtedy będziesz musiał przeprojektować wokół czegoś, co można faktycznie wykorzystać w produkcie. Co więcej, jest to w zasadzie kompletny układ rozruchowy do zasilania bateryjnego w każdym poważnym użyciu.
Chris Stratton

@ChrisStratton: Dla początkującego, takiego jak OP, RPi wydaje się, moim zdaniem, realną opcją. Tak, w przypadku produkcji na dużą skalę nie byłoby to idealne, ale skupiłem się na zapewnieniu dostępnego , łatwego do modyfikacji pomysłu; POC jest dokładnie tym, czego potrzeba. Nie sądzę, aby karta SD była naprawdę wielkim problemem dla konfiguracji hobbystów; w masowej produkcji historia jest inna, ale na początek uważam, że powinno to działać wystarczająco dobrze. Jestem jednak otwarty na wszelkie sugestie dotyczące lepszego podejścia.
Aurora0001

Nawet poza tym, że problemy te sprawiają, że produkt nie jest opłacalny, zapotrzebowanie na energię z plakatu wyklucza go od samego początku. Ponieważ pi to architektura typu set-to-box bez zarządzania energią mobilnej, nie będziesz mieć więcej niż kilka godzin na rozsądnej baterii.
Chris Stratton

10

The Onion Omega 2 twierdzi, że jest najmniejszy komputer Linux na świecie. Twierdzenie to może nie do końca być zgodne z prawdą (patrz na przykład vocore2 poniżej), ale z mojego doświadczenia wynika, że ​​musi ono być najmniejsze. Kosztuje tylko 5 USD, wbudowane Wi-Fi, zaprojektowane specjalnie z myślą o IoT. Ma kilka tarcz dostępnych na swojej stronie internetowej . Zupełnie nowy produkt wydaje się mieć silną i aktywną społeczność. Zwolennicy Kickstarter otrzymują urządzenie. Warto sprawdzić.

Ponadto, jak wskazano w komentarzach, sprawdź vocore2 , który w rzeczywistości wydaje się mniejszy niż cebula i tańszy za 4 USD. Obecnie jest finansowany na IndieGoGo, a przewidywane daty wysyłki to luty 2017 r. (Następny miesiąc w momencie pisania tego tekstu). Wygląda również na to, że ma dostępny asortyment doków i ma wbudowany router Wi-Fi, co jest dość fajne.

Właśnie spotkałem tych innych i nie mam z nimi doświadczenia. Należy jednak pamiętać, ze względu na ich nowość, niektóre z pakietów systemu Linux mogą być używane do korzystania mogą nie być dostępne jeszcze (na przykład, wiem na pewno, że w momencie pisania tego tekstu pakiet gstreamer nie jest dostępny na cebulę jednak musisz budować ze źródła, chociaż gstreamer nie jest dla ciebie odpowiedni).

Krótko mówiąc, jak mówi druga odpowiedź, Pi jest świetnym, niedrogim urządzeniem. Nie zapomnij o Raspberry Pi Zero , kolejnym malutkim komputerze za 5 USD, podobnym do Cebuli. Nie ma wszystkich portów na pokładzie, które mają większe Pi, ale jeśli nie masz nic przeciwko, lub jeśli chcesz po prostu użyć 3 do rozwoju i Zero dla jego wielkości w produktach końcowych, to kolejny wybór, który warto rozważyć.

Inne urządzenia, niektóre drogie, obejmują:

  • BeagleBone Black (jest to jedyna alternatywa Pi, którą poważnie wziąłem pod uwagę ze względu na niski koszt).
  • Gumstix ($$$, ale używamy ich cały czas w projektach ze względu na ich rozmiar)
  • Udoo ($$$, ale daje cios)
  • Toradex Colibri (nieco trudny do pracy, ale też z nich dużo korzystamy, lepsze specyfikacje niż Gumstix, i mamy opcję uruchamiania Windows CE z funkcją natychmiastowego rozruchu, jeśli wolisz łańcuch narzędzi Windows i praktycznie zerowy czas uruchamiania ).

Zwróć też uwagę, że Vilros przygotowuje niesamowite zestawy startowe Pi (tańsze w Amazon) wstępnie wyposażone w system operacyjny, działające Wi-Fi, radiatory, etui, działa od razu po wyjęciu z pudełka i pozwala zaoszczędzić mnóstwo pracy przy konfiguracji. Warto również sprawdzić, czy jedziesz drogą Pi. Vilros również produkował zestawy startowe Beaglebone, które nie wydają się już dostępne na ich stronie, ale jeśli wyszukujesz Newegg / Amazon / etc. wciąż możesz znaleźć dostępne zapasy.


Nawiasem mówiąc, sam Arduino (lub inny mikrokontroler, w przeciwieństwie do pełnowymiarowych komputerów jednopłytkowych wymienionych powyżej) prawdopodobnie nie jest tym, czego chcesz tutaj. Arduino to tylko Atmel ATmega168 / 328. Nie obsługuje systemu operacyjnego i tak naprawdę nie robi nic poza tym, co mu nakazujesz. Na przykład do sieci potrzebna byłaby osłona Ethernet, która jest dostarczana z pełną biblioteką kontroli Ethernetu, która, jak sądzę, zapewnia stos TCP i UDP (nigdy go nie używałem, tylko przeglądam ich stronę) i oczywiście zajmuje dużo ograniczonej przestrzeni kodu.

Następnie musisz zbudować klienta pogodowego i wszystko inne, i musisz to wszystko zrobić w 32 KB lub mniej. To inny smak rozwoju niż tworzenie Linuksa / Windowsa na Pi / Beaglebone / Gumstix / Colibri / itp. Trochę poza zakresem tej odpowiedzi.

Arduino jest tutaj dobre jako dodatek do twojego głównego systemu do robienia sprzętowych interfejsów, takich jak odczyt czujników ciśnienia, przycisków, sterowanie podstawowymi elementami elektronicznymi i tym podobne.

Rozwój systemów wbudowanych to zupełnie inna bestia niż tworzenie komputerów stacjonarnych na Pi, a ja naprawdę nie polecałbym próbowania tego z samym Arduino, szczególnie bez doświadczenia.


1
vocore2 jest w tej chwili mniejszy i tańszy (4 USD) przy wciąż działającym OpenWRT (Linux)
Matija Nalis

2
Jaka jest historia tego oprogramowania?
Sean Houlihane

@SeanHoulihane Świetne pytanie. Zobaczę, czy uda mi się dowiedzieć, że w tej sprawie brakuje strony Kickstarter i strony głównej. Właściwie jestem trochę zirytowany twierdzeniem „najmniejszych na świecie” ludzi Onion po komentarzu Matii vocore2 powyżej, ale być może mogą oni odkupić się (w moich skromnych oczach) z otwartą architekturą.
Jason C

3
Pamiętaj, że ludzie mogą ubiegać się o wszystko na Kickstarter ...
Sean Houlihane

@SeanHoulihane O rany, nie zaczynajcie od mojej nienawiści do Kickstartera, heh. Opieraj się, opieraj się ... Mimo to, jak twierdzi Kickstarter i otwartość, zarówno Omega, jak i wokal są całkiem fajnie wyglądającymi nowymi urządzeniami. A my mamy RPi Zero również na taniej linii frontu.
Jason C

6

Proponuję podejście krok po kroku, aby dowiedzieć się, jakiego języka i kontrolera należy użyć. Potrzebny mikrokontroler będzie zależeć od zadań, które chcesz wykonać. Teoretycznie zadanie ustanowi pewne wymagania, które powinien spełnić odpowiedni mikrokontroler, dlatego należy wybrać mikrokontroler według tych wymagań.

  1. Zdefiniuj historię użytkownika dla urządzenia. Czego się od tego oczekujesz? Do czego chcesz?

    W twoim przypadku jest to już zdefiniowane przez Ciebie:

    Urządzenie zasilane bateryjnie, które powinno być w stanie odbierać dane wejściowe ze smartfona i wyświetlać informacje o pogodzie w wybranych lokalizacjach na własnym wyświetlaczu.

  2. Teraz krok 1. daje początek. Możesz zdecydować, jakiego sprzętu potrzebujesz na poziomie schematu blokowego.

    Na pewno będziesz potrzebować wyświetlacza i ewentualnie modułu WiFi lub Bluetooth do komunikacji z telefonem komórkowym. Dostęp do globalnych baz danych pogodowych może wymagać połączenia z Internetem. Należy kontrolować oba te elementy za pomocą MCU lub modułu WiFi (potrzebujesz Internetu, aby wykluczyć Bluetooth), powinieneś być w stanie kontrolować wyświetlacz i uruchamiać oprogramowanie.

  3. Możesz zacząć szukać określonych części. Możesz zacząć od podjęcia decyzji, z której baterii będziesz korzystać, abyś mógł wziąć pod uwagę zużycie energii potencjalnych części. Podsumowałem ogólny proces wyboru MCU w jednej z moich poprzednich odpowiedzi . Zasadniczo to samo należy zrobić tutaj. Znajdź tani wyświetlacz, do komunikacji prawdopodobnie użyje interfejsu SPI lub I2C. Następnie możesz wyszukać moduł Wi-Fi z SPI / I2C i zintegrowanym MCU lub oddzielnym MCU i modułem WiFi. Indywidualny moduł WiFi prawdopodobnie użyje UART do komunikacji, więc indywidualny MCU powinien mieć to wzdłuż SPI / I2C.

  4. Co do języka. Większość mikrokontrolerów ograniczy twoje możliwości w tej dziedzinie. W większości przypadków wybierzesz C, C ++ lub asembler, ściśle mówiąc o mikrokontrolerach, a nie komputerach jednopłytkowych.

    Jeśli zdecydujesz się na BeagleBone lub Raspberry, które mogą obsługiwać Linuksa lub inny potężny system operacyjny, mówię, że najlepszym językiem będzie ten, który znasz najlepiej, oczywiście, że powinien być w stanie poradzić sobie z tym zadaniem. ( Jeśli chcesz, możesz uruchomić Javę na RPi ).

    Otwarcie gniazda globalnej usługi danych pogodowych można również wykonać w C, C # lub Python. Przetwarzanie JSON z C byłoby nieco trudniejsze, ale na pewno możliwe.

Mówiąc ogólnie o kosztach. Najlepszą opcją jest wyszukiwanie urządzeń wyświetlających z obsługą WiFi, będzie dużo wyników i większość z nich będzie korzystać z tego samego sprzętu i prawdopodobnie będzie to najtańsza.


Możesz użyć modułu WiFi ESP8266 , który jest kompatybilny z Arduino, aby połączyć się z Internetem i interfejs wyświetlacza. Będzie to wymagało dużo majsterkowania niż Raspberry Pi, ale będzie tańsze.

Oto projekt Hackaday dotyczący wyświetlacza ESP8266 + OLED .


2
Dobry podział procesu. Mikrofiton jest dostępny dla wielu małych płyt, być może jednym z czynników, który należy wziąć pod uwagę, jest ekosystem płyty, a jeśli istnieją jakieś biblioteki typu open source (chociaż dostawcy MCU często zapewniają również dobre biblioteki).
Sean Houlihane

6

Tworzenie startupu nie polega na tym, co możesz zrobić z technologią, a nawet na produkcie. Aby udany start-up, który może przyciągnąć uwagę VC, powinieneś najpierw pomyśleć o rynku, który zamierzasz obsługiwać. Ale myślenie o rynku, którym będziesz obsługiwać, nie wystarczy. Potrzebujesz prawdziwych danych o rynku. Nie chodzi tylko o coś, co ma dla ciebie sens. Tworzenie produktu, a następnie wiązanie go w celu sprzedaży, nie jest udanym podejściem i tak kończy się większość nieudanych startupów. Rynek jest PRAWDZIWĄ POTRZEBĄ. Kiedy tworzysz skrzynkę, stwórz produkt, aby adresować go do określonego rynku. To właśnie stanowi udany produkt, który sam się sprzedaje, ponieważ ludzie już go szukają. VC inwestują tylko w start-upy, które mają takie produkty, zwłaszcza jeśli już sprzedają.

Aby wybrać technologię rozwoju produktu, musisz wiedzieć, co powinien zrobić Twój produkt, w ten sposób rozwiąże problem na wybranym rynku. Następnie spójrz na to, co potencjalni klienci są skłonni zapłacić za to. Następnie wybierz technologię, która pozwala na najszybszy czas wprowadzenia produktu na rynek, przy jednoczesnym zachowaniu kosztów w ramach budżetu. Następnie outsourcing rozwoju lub pozyskaj partnera, który może to zrobić i chętnie z Tobą współpracuje. Podziel się zyskami 50/50 ze swoim partnerem. Następnie, gdy masz prototyp, zacznij układać swój biznesplan i pamiętaj, że możesz oczarować VC tylko wtedy, gdy pokażesz im, jak mogą zarabiać pieniądze.

Jeśli chcesz obniżyć koszty produktu do masowej produkcji, możesz użyć języków niższego poziomu i mniej zaradnych mikrokontrolerów, takich jak Microchip PIC lub Silicon Labs EFM z ASM / C / C ++. Jeśli produkt nie jest przeznaczony do masowej produkcji (100 000+), użyj języka wyższego poziomu i bardziej zasobnych mikrokontrolerów, takich jak Micro Python lub Lua z ARM32 MIPS, a nawet Linux z ARM32 / 64. Oszczędza to koszty prac rozwojowych, ale podnosi cenę sprzętu. Pamiętaj, że cena produktu to nie tylko płytka drukowana z komponentami; rozwój, mieszkanie, pakowanie i wszystko inne niezbędne do sprzedaży produktu powinny iść w jego stronę. Umieść to w biznesplanie. I nie chodź do VC z Arduino, Raspberry pi lub Cebulą lub czymś, co wygląda jak gadżet hobbystyczny,

Zacznij od startu, a nie od upadku i powodzenia.


To naprawdę ma pełny sens marketingu. Dziękuję :)
Jigarb1992
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.