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?
źródło
Odpowiedzi:
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:
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 .
źródło
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ą:
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.
źródło
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ń.
Zdefiniuj historię użytkownika dla urządzenia. Czego się od tego oczekujesz? Do czego chcesz?
W twoim przypadku jest to już zdefiniowane przez Ciebie:
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.
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.
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 .
źródło
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.
źródło