Ich bin ein Neuling im IoT und möchte meine Karriere im IoT beginnen. Als ich bei Google nach Startups im IoT suchte, fand ich viele Blogs. Und ich fand die im IoT verwendeten Sprachen wie C #, Java, Node.js und die Mikrocontroller wie Arduino, Raspberry Pi, Intel, Netduino usw.
Da ich neu im IoT bin, weiß ich nicht, welche Sprache die beste ist und welchen Mikrocontroller ich für ein Startup verwende?
Für den Basisstart möchte ich ein Gerät erstellen, dessen Anzeige das Wetter für den von meinem Handy angegebenen Standort anzeigt. Es kann also ein gutes Beispiel für einen Start sein, der die Hardware, das Internet und die Software abdeckt.
Das Gerät wird batteriebetrieben sein, eine kleine Digitalanzeige und ja Kostenbeschränkung.
Welchen Mikrocontroller und welche Sprache sollte ich verwenden, um meine Anforderungen für die Anzeige des Wetters zu erfüllen?
quelle
Antworten:
Persönlich würde ich dafür einen Raspberry Pi 3B auswählen , obwohl er wahrscheinlich weitaus leistungsstärker ist, als Sie wirklich brauchen. Die Gründe, warum ich dies vorschlage, sind:
Es verfügt über ein integriertes 802.11 b / g / n-WLAN, sodass Sie es nicht über ein Ethernet-Kabel, sondern mit einem Wi-Fi-Netzwerk verbinden können
Es unterstützt auch Bluetooth, sodass Sie möglicherweise eine Verbindung zum Telefon herstellen können.
Sie benötigen außerdem eine Anzeigeeinheit, und bequemerweise gibt es mehrere Anzeigen, die für den Raspberry Pi entwickelt wurden, wie diesen 4DPI-32-Touchscreen . Sie sollten nur in der Lage sein, das Display direkt in den 40-poligen Header einzustecken:
Raspberry Pi Foundation , CC BY-SA 4.0 . Ich bin mir bewusst, dass dies technisch gesehen ein Pi 2B ist, aber der GPIO ist auf dem 3B der gleiche.
Was den Programmieraspekt in diesem Fall betrifft, müssen Sie lediglich das Wetter von einer API irgendwo abrufen und als GUI-Programm auf dem Bildschirm anzeigen. Das Display funktioniert wie jeder HDMI-Ausgang für den Pi, sodass Sie nichts Besonderes tun müssen. Für Python können Sie Tkinter verwenden, um eine grundlegende Benutzeroberfläche zu erstellen, oder Sie können sogar eine Webanwendung in HTML / CSS / JS schreiben, je nachdem, was Sie möchten. Sie können die OpenWeatherMap-API kostenlos verwenden. Die Dokumentation ist für jeden API-Endpunkt verknüpft.
An diesem Punkt liegt es wirklich an Ihnen. Die beste Sprache hier ist die Sprache, mit der Sie sich am wohlsten fühlen. Wenn Sie AngularJS mögen, erstellen Sie einfach eine HTML-Seite, rufen Sie das Wetter mit Angular ab (oder verwenden Sie eine Bibliothek wie diese , um Ihnen zu helfen) und zeigen Sie sie mit CSS an, damit sie gut aussieht.
Ich vermute, es wäre einfacher , dem Benutzer zu erlauben, seinen Standort auf dem Touchscreen des Pi einzugeben, um den Standort tatsächlich zu ermitteln . Das Senden des Standorts Ihres Telefons ist wahrscheinlich etwas schwieriger, obwohl Sie möglicherweise etwas finden können, wenn Sie viel recherchieren.
Für den Batterieverbrauch ist diese Frage zu Raspberry Pi Stack Exchange lesenswert.
quelle
Der Onion Omega 2 behauptet, der kleinste Linux-Computer der Welt zu sein. Diese Behauptung mag nicht ganz zutreffen (siehe zum Beispiel Vocore2 unten), aber meiner Erfahrung nach muss es sich um die kleinste 3 handeln. Kostet nur 5 US-Dollar, integriertes WLAN, das speziell für das Internet der Dinge entwickelt wurde. Hat ein paar Schilde auf ihrer Website zur Verfügung . Brandneues Produkt, scheint eine starke und aktive Community zu haben. Kickstarter-Unterstützer erhalten das Gerät. Ein Besuch lohnt sich.
Schauen Sie sich auch, wie in den Kommentaren erwähnt, den vocore2 an , der tatsächlich kleiner als der Onion zu sein scheint und mit 4 US-Dollar billiger ist. Es wird derzeit bei IndieGoGo finanziert und die voraussichtlichen Versanddaten sind Februar 2017 (nächster Monat zum Zeitpunkt dieses Schreibens). Scheint auch eine Auswahl an Docks zur Verfügung zu haben, und hat einen eingebauten WLAN-Router, was irgendwie cool ist.
Ich bin neulich auf diese gestoßen und habe keine Erfahrung mit ihnen. Beachten Sie jedoch, aufgrund ihrer Neuartigkeit, einige der Linux - Pakete , die Sie verwenden verwendet werden , möglicherweise nicht verfügbar sein kann , noch (zum Beispiel, ich weiß für eine Tatsache , dass ein gstreamer Paket zum Zeitpunkt dieses Schreibens auf der Zwiebel nicht verfügbar ist Sie müssen jedoch aus dem Quellcode erstellen, obwohl gstreamer für Sie nicht relevant ist.
Kurz gesagt, wie die andere Antwort sagt, ist der Pi ein großartiges, kostengünstiges Gerät. Vergessen Sie nicht den Raspberry Pi Zero , einen weiteren winzigen 5-Dollar-Computer nach dem Vorbild der Onion. Es sind nicht alle Ports an Bord, die die größeren Pi haben, aber wenn es Ihnen nichts ausmacht oder wenn Sie nur eine 3 für die Entwicklung und eine Null für die Größe in Endprodukten verwenden möchten, ist dies eine weitere erwägenswerte Wahl.
Andere Geräte, einige teuer, umfassen:
Beachten Sie auch, dass Vilros einige fantastische Pi-Starter-Kits (billiger bei Amazon) herstellt, die mit einem Betriebssystem, funktionierendem WLAN, Kühlkörpern und einem Gehäuse vorverpackt sind, sofort funktionieren und eine Menge Grunz-Setup-Arbeit sparen. Auch einen Besuch wert, wenn Sie die Pi-Route gehen. Vilros stellte auch Beaglebone-Starter-Kits her, die auf ihrer Website nicht mehr verfügbar zu sein scheinen, aber wenn Sie nach Newegg / Amazon / etc. Suchen. Sie können immer noch verfügbaren Bestand finden.
Übrigens ist ein Arduino (oder ein anderer Mikrocontroller im Gegensatz zu den oben aufgeführten vollwertigen Einplatinencomputern) für sich genommen wahrscheinlich nicht das, was Sie hier wollen. Der Arduino ist nur ein Atmel ATmega168 / 328. Es läuft kein Betriebssystem und macht nichts anderes als genau das, was Sie ihm sagen. Für das Netzwerk benötigen Sie beispielsweise das Ethernet-Schutzschild, das mit einer vollständigen Ethernet-Steuerungsbibliothek geliefert wird, von der ich glaube, dass sie einen TCP- und UDP-Stack bietet (ich habe ihn nie verwendet, nur auf ihrer Website zu surfen) und natürlich einen viel begrenzter Code-Platz.
Dann müssten Sie Ihren Wetter-Client und alles darüber aufbauen, und Sie müssen alles in 32 KB oder weniger erledigen. Es ist eine andere Art der Entwicklung als die Linux / Windows-Entwicklung auf dem Pi / Beaglebone / Gumstix / Colibri / etc. Ein bisschen außerhalb des Rahmens dieser Antwort.
Der Arduino ist hier als Add-On für Ihr Hauptsystem geeignet, um Hardware-Schnittstellen wie Lesedrucksensoren, Tasten, die Steuerung grundlegender elektronischer Elemente usw. auszuführen.
Die Entwicklung eingebetteter Systeme ist eine ganz andere Sache als die Desktop-Entwicklung, die Sie auf dem Pi durchführen würden, und ich würde wirklich nicht empfehlen, dies mit einem Arduino allein zu versuchen, insbesondere ohne Erfahrung.
quelle
Ich schlage einen schrittweisen Ansatz vor, um herauszufinden, welche Sprache und welchen Controller Sie verwenden sollten. Der Mikrocontroller, den Sie benötigen, hängt von den Aufgaben ab, die Sie ausführen möchten. Theoretisch werden durch die Aufgabe einige Anforderungen festgelegt, die ein geeigneter Mikrocontroller erfüllen wird. Daher sollten Sie den Mikrocontroller anhand dieser Anforderungen auswählen.
Definieren Sie eine User Story für das Gerät. Was erwartest du davon? Was soll es können?
In Ihrem Fall ist es bereits von Ihnen definiert:
Jetzt gibt Ihnen Schritt 1 etwas, mit dem Sie beginnen können. Sie können auf Blockdiagrammebene entscheiden, welche Hardware Sie benötigen.
Sie benötigen auf jeden Fall ein Display und möglicherweise ein WLAN- oder Bluetooth-Modul, um mit Ihrem Handy zu kommunizieren. Für den Zugriff auf globale Wetterdatenbanken ist möglicherweise eine Internetverbindung erforderlich. Sie sollten beide mit einer MCU oder dem WiFi-Modul steuern (Sie benötigen Internet, um Bluetooth auszuschließen), um die Anzeige steuern und Ihre Software ausführen zu können.
Sie können nach bestimmten Teilen suchen. Sie können zunächst entscheiden, welche Batterie Sie verwenden möchten, damit Sie den Stromverbrauch Ihrer potenziellen Teile berücksichtigen können. Ich habe in einer meiner vorherigen Antworten einen allgemeinen Prozess zur Auswahl von MCUs zusammengefasst . Grundsätzlich sollte hier das gleiche gemacht werden. Wenn Sie ein billiges Display finden, wird es wahrscheinlich eine SPI- oder I2C-Schnittstelle für die Kommunikation verwenden. Dann können Sie entweder nach einem Wifi-Modul mit SPI / I2C suchen, das über eine integrierte MCU verfügt, oder nach einer separaten MCU und einem WiFi-Modul. Das einzelne WiFi-Modul wird wahrscheinlich UART für die Kommunikation verwenden, sodass die einzelne MCU dies entlang des SPI / I2C haben sollte.
Wie für die Sprache. Die meisten Mikrocontroller schränken Ihre Möglichkeiten in diesem Bereich ein. In den meisten Fällen haben Sie die Wahl zwischen C, C ++ oder Assembly. Hier handelt es sich streng genommen um Mikrocontroller und nicht um Einplatinencomputer.
Wenn Sie sich für ein BeagleBone oder Raspberry entscheiden, auf dem Linux oder ein anderes leistungsstarkes Betriebssystem ausgeführt werden kann, ist die beste Sprache diejenige, die Sie am besten kennen. Natürlich sollte sie die Aufgabe bewältigen können. ( Sie können Java auf dem RPi ausführen, wenn Sie möchten. )
Das Öffnen eines Sockets für einen globalen Wetterdatendienst kann auch in C, C # oder Python erfolgen. Es wäre etwas schwieriger, JSON mit C zu verarbeiten, aber sicherlich möglich.
Apropos Kosten im Allgemeinen. Die beste Option ist die Suche nach WiFi-fähigen Anzeigegeräten. Es wird viele Ergebnisse geben und die meisten von ihnen verwenden dieselbe Hardware, und dies ist wahrscheinlich die billigste.
Sie können ein ESP8266- WLAN-Modul verwenden, das Arduino-kompatibel ist, um eine Verbindung zum Internet herzustellen und eine Anzeige anzuschließen. Es erfordert viel Basteln als ein Raspberry Pi, ist aber billiger.
Hier ist ein Hackaday-Projekt zum ESP8266 + OLED-Display .
quelle
Beim Erstellen eines Startups geht es nicht darum, was Sie mit der Technologie tun können, und nicht einmal um das Produkt. Für ein erfolgreiches Startup, das VCs fesseln kann, sollten Sie zuerst über den Markt nachdenken, den Sie bedienen werden. Aber über den Markt nachzudenken, den Sie bedienen werden, reicht nicht aus. Sie benötigen echte Daten über den Markt. Es geht nicht nur um etwas, das für Sie Sinn macht. Ein Produkt zu erstellen und es dann zu verkaufen, ist kein erfolgreicher Ansatz, und so enden die meisten erfolglosen Startups. Ein Markt ist eine echte Notwendigkeit. Wenn Sie ein Produkt in eine Kiste legen, erstellen Sie es, um einen bestimmten Markt anzusprechen. Dies macht ein erfolgreiches Produkt aus, ein Produkt, das sich selbst verkauft, weil die Leute bereits danach suchen. VCs investieren nur in Startups, die solche Produkte haben, insbesondere wenn sie bereits verkaufen.
Um eine Technologie für die Entwicklung Ihres Produkts zu wählen, müssen Sie zunächst wissen, was Ihr Produkt tun muss. So wird das Problem auf dem ausgewählten Markt gelöst. Dann schauen Sie sich an, was die potenziellen Kunden bereit sind, dafür zu bezahlen. Wählen Sie dann die Technologie, die die schnellste Markteinführung ermöglicht und gleichzeitig die Kosten innerhalb des Budgets hält. Dann lagern Sie die Entwicklung aus oder suchen Sie sich einen Partner, der dies kann und bereit ist, mit Ihnen zusammenzuarbeiten. Teilen Sie den Gewinn 50/50 mit Ihrem Partner. Wenn Sie dann einen Prototyp haben, legen Sie Ihren Geschäftsplan an und denken Sie daran, dass Sie VCs nur dann fesseln können, wenn Sie ihnen zeigen, wie sie Geld verdienen können.
Wenn Sie die Kosten Ihres Produkts für die Massenproduktion senken müssen, können Sie niedrigere Sprachen und weniger einfallsreiche Mikrocontroller wie Microchip PIC oder Silicon Labs EFM mit ASM / C / C ++ verwenden. Wenn das Produkt nicht für die Massenproduktion (über 100.000) vorgesehen ist, verwenden Sie eine höhere Sprache und einfallsreichere Mikrocontroller wie Micro Python oder Lua mit ARM32 MIPS oder sogar Linux mit ARM32 / 64. Dies spart Entwicklungskosten, erhöht aber den Preis der Hardware. Denken Sie daran, dass der Preis des Produkts nicht nur eine Leiterplatte mit Komponenten ist. Entwicklung, Unterbringung, Verpackung und alles andere, was zum Verkauf des Produkts erforderlich ist, sollten in die Kosten gehen. Setzen Sie das in den Geschäftsplan ein. Und gehen Sie nicht mit einem Arduino oder einem Himbeer-Pi oder einer Zwiebel oder etwas anderem, das wie ein Hobby-Gerät aussieht, zu einem VC.
Starten Sie hoch, nicht runter und viel Glück.
quelle