Betten Sie Ihr Smart Home-Gerät in das SmartThings-Ökosystem ein

Mit Smart Home-Plattformen können Sie Geräte integrieren und neue Szenarien für deren Interaktion erstellen. Der Plattformeffekt ist bekannt: Benutzer wählen eher das Gerät, mit dem ihre vorhandenen Geräte kompatibel sind, als zu einem neuen zu wechseln. Daher kann es für Entwickler neuer genialer Geräte rentabler sein, sich in eine bereits fertiggestellte Plattform zu integrieren, wobei der Schwerpunkt auf dem „Eisen“ -Produkt liegt, anstatt eigene „Fahrräder“ in Form von Cloud-Ökosystemen und persönlichen Konten zu entwickeln.

Lassen Sie uns sehen, wie Sie Ihr eigenes Gerät in die Samsung SmartThings Smart Home-Plattform integrieren. Wir implementieren eine direkte Verbindungsoption zur Steuerung des Smart Home-Geräts am Beispiel eines Tastenschalters und einer dreifarbigen Glühbirne. 




Warum brauchen wir Smart Home-Plattformen?


Jetzt werden Gadgets und intelligente Geräte zum Verkauf angeboten - so viel Sie möchten. Kein Problem beim Kauf eines Wasserkochers mit Bluetooth-Steuerung oder einer Glühbirne mit WLAN. Aber macht das Ihr Zuhause „schlau“? Eine Situation ist nicht ungewöhnlich: Eine Glühbirne wird nur über eine mobile Anwendung des Herstellers gesteuert. Dies führt zu Unannehmlichkeiten, wenn Sie versuchen, mindestens mehrere verschiedene Marken zu kombinieren. Daher ist die ideale Plattform eine Plattform, mit der Sie Geräte verschiedener Hersteller auf dieselbe Weise verwalten können.

Darüber hinaus würde ich gerne einen „Computer sehen, der im Alltag aufgelöst ist“, wie Mark Weiser von Xerox PARC davon geträumt hat: Steuern Sie nicht durch eine spezielle Anwendung, sprühen Sie nicht Ihre Aufmerksamkeit. Ich möchte eine natürliche Interaktion mit einer intelligenten Umgebung, die unsere Gewohnheiten nicht ändert. Wie kann man das technisch umsetzen? Es können beispielsweise Szenarien sein, in denen heterogene Geräte im Haus betroffen sind: Sie sind aufgewacht - das tragbare Gerät hat dies erkannt und der Wasserkocher eingeschaltet; Sie sind nach Hause gekommen - der Sensor an der Tür hat dies unter Berücksichtigung der Tageszeit aufgezeichnet, die Vorhänge geschlossen, die Lampe eingeschaltet und die Klimaanlage unter Berücksichtigung der Temperatur eingeschaltet.

Szenarien werden noch nützlicher, wenn wir das Internet nutzen: Zum Beispiel, um aus der Ferne zu überprüfen, ob die Steckdose mit dem Bügeleisen ausgeschaltet ist. Oder ein banales Beispiel: Ihr Smart Home hat sich die Wettervorhersage angesehen und Ihnen Tipps gegeben, wie Sie sich am besten anziehen können. Oder Sie können die Sprachsteuerung über einen intelligenten Lautsprecher hinzufügen.

Die Smart Home-Plattform ist dafür ausgelegt. Überlegen Sie, was die Samsung SmartThings-Plattform leisten kann.

Hintergrund - Was sind SmartThings?


SmartThings wurde als Startup gestartet. Als er 2012 in den USA erschien, stand das Thema „Smart Home“ noch nicht ganz oben auf dem Hype, es gab noch keine Smart Speaker und eine Vielzahl von Gadgets in den Läden. Die Idee kam dem Gründer des Startups, Alex Hawkinson, nach einem Vorfall: Das Haus seiner Familie in Colorado litt darunter, dass die Wasserleitungen nach einem vorübergehenden Ausfall stark gefroren waren, platzten und der gesamte Boden überflutet wurde. Dann dachte er, er hätte das Problem verhindern können, wenn er gewusst hätte, was im Haus vor sich ging. 

Nachdem Hawkinson und seine Kollegen erfolglos nach einer schlüsselfertigen Lösung gesucht hatten, erstellten sie einen Prototyp des Geräts und starteten eine Kampagne auf Kickstarter. Die Kampagne war übererfolgreich und brachte in 30 Tagen 1.200.000 USD anstelle der geplanten 250.000 USD ein. Der Verkauf eines Hub-Hubs mit einem kleinen Satz von Geräten im Kit hat begonnen: Smart Socket, Türöffnungssensor, Bewegungssensor, Präsenzsensor. Und bereits 2019 wurde unter der Marke Samsung SmartThings die dritte Version des Hubs veröffentlicht.


Der Schlüssel zum Erfolg bei Kickstarter war die Verfügbarkeit funktionierender Prototypen von Eisen und Software sowie die Freundlichkeit für die Herstellergemeinschaft

Die Macher des Startups haben die DIY-Umgebung verlassen und entwickeln konsequent das Konzept einer offenen API für Geek-Macher, die frühzeitig als Early Adopters fungieren können. In der Kickstarter-Kampagne gab es einen Schutzschild für Arduino und verschiedene Cloud-Module, um Ihr Gerät eines Drittanbieters nahtlos zu verbinden. Im Internet können Sie viele Beispiele für hausgemachte Geräte kompatibel mit SmartThings zu finden, ob es sich um eine kontrollierte ist Tür eines Hühnerstall (mit der Lösung einer schweren Lebensaufgabe - Hühner aus einem räuberischen Nerz zu speichern) oder Remote - Installation von einem elektronischen Sperrcode für Gäste mit Airbnb.


Fotoquelle: https://www.hackster.io/aaronpk/auto-airbnb-entry-745799

In den Jahren 2012-2013 durchlief SmartThings mehrere Investitionsrunden und erhielt 12,5 Millionen US-Dollar. Und schließlich interessierte sie sich 2014 für Samsung und wurde im Rahmen einer Strategie für den Eintritt in den Internet der Dinge-Markt für 200 Millionen US-Dollar erworben.
Die Cloud-Funktionen der Plattform blieben kostenlos: Die Autoren, jetzt Samsung-Mitarbeiter, schließen die theoretische Möglichkeit aus, für große Verkehrsmengen Gebühren zu erheben, und betonen: Für Geräteentwickler wird es immer eine kostenlose Option geben. Dies ist gut, da mittlerweile fast alle Cloud-Dienste eine Monetarisierung ermöglichen und Sie häufig sogar für einen Testzeitraum eine Bankkarte anhängen müssen. SmartThings ist eine völlig kostenlose Plattform.

SmartThings-Architektur




Bewegen wir das Muster von links nach rechts.

Geräte


SmartThings-Geräte - Dies können nicht nur Geräte aus der SmartThings-Suite sein , sondern auch viele Partner von Drittanbietern aus der Liste der Partner.



Wenn das Gerät nicht in der Liste der offiziell unterstützten Geräte enthalten ist, können Sie nach dem Geräte-Handler suchen - er kann von der Entwickler- Community bereitgestellt werden - oder einen eigenen schreiben.

Verbindungsmethoden


Sie können Geräte auf folgende Weise mit der Plattform verbinden:

  • Hub-verbunden - über einen Hub-Hub, der für Geräte relevant ist, die keine Internetverbindung haben, aber für solche Systeme über herkömmliche drahtlose Netzwerke wie ZigBee verbunden sind. 
  • Direkt verbunden - über das Internet direkt mit der Cloud. SmartThings hat kürzlich einen Camcorder, eine Glühbirne und eine Smart-Fassung herausgebracht, die ohne Hub funktionieren - über WLAN. Dies ist die Option, die wir in diesem Handbuch implementieren werden.
  • Cloud-verbunden - über eine Cloud eines Drittanbieters für Geräte, die bereits über ein eigenes Cloud-Ökosystem verfügen. Dies ist komplizierter, daher werden wir eine solche Option nicht in Betracht ziehen.

Nabe


Um eine Vielzahl von Geräten in Ihrem Haus anzuschließen, sollte normalerweise ein spezieller kleiner Server "Smart Home" verwendet werden, der verschiedene Protokolle unterstützt. Er - ein Hub, Hub, Gateway - die Namen sind unterschiedlich.


Hub und eine Reihe von Geräten dazu. Fotoquelle : IXBT .

Anwendung


Die SmartThings App ist eine Anwendung, die auf dem mobilen Hauptbetriebssystem und mit ihrer Hilfe installiert werden kann: Hinzufügen neuer Geräte zum System, Steuern bereits hinzugefügter Geräte, Festlegen von Automatisierungsregeln, Empfangen von Benachrichtigungen per Push und SMS und vieles mehr. 



Abstraktion


In SmartThings gibt es wie in vielen anderen Smart-Home-Plattformen die folgenden Abstraktionen: Räume, Szenen, Szenarien. 

Geräte sind in Räume gruppiert. Sie hängen dieses oder jenes Gadget einfach an einen Raum in der Anwendung an und nennen es "Küche", "Badezimmer", "Flur".

Es gibt immer noch Szenen (Szenen) - dies sind Situationen: "Schlaf", "Ruhe", "Arbeit", "Film ansehen" - jede der Situationen ist durch ihre eigenen Gerätezustände gekennzeichnet.


Szenen und Räume auf dem Anwendungsbildschirm

Und schließlich Skripte (Routinen): Wenn-Dann-Automatisierungsregeln. Standardmäßig verfügt das Programm über vier Szenarien: "Ich bin zurück", "Gute Nacht", "Tschüss", "Guten Morgen". Sie können die Aktivierung des Skripts entsprechend dem Zustand des Morgens oder im Falle einer Bewegung oder im Falle des Öffnens der Tür usw. konfigurieren. Ein nicht triviales Beispiel: Wenn ich mit meiner Heimüberwachungskamera den Netzwerkverkehr blockiere, um das Auslaufen meiner persönlichen Videos zu verhindern. Oder ein grausames pädagogisches Beispiel: Trennen Sie das Tablet zwangsweise vom Netzwerk, wenn es 11 Uhr abends ist, um zu verhindern, dass Sie im Internet bleiben, anstatt gesund zu schlafen.



Darüber hinaus gibt es im SmartThings-Programm am Telefon eine interessante Möglichkeit - das Auswendiglernen typischer Aktionen. Wenn Sie das Telefon im Laufe der Zeit häufig verwenden, erfahren Sie, wie Sie Szenen basierend auf den am häufigsten gestarteten Anwendungen am besten konfigurieren können.

Um dem System neue Geräte hinzuzufügen, wird ein Plug-In-System bereitgestellt. Der Entwickler kann das Plug-In für sein eigenes Gerät programmieren - die Benutzeroberfläche in der SmartThings-Anwendung und die Logik des Geräts. Dies ist im Wesentlichen eine Webanwendung. Aus Sicht des Entwicklers kann das Plugin Ereignisse oder Benachrichtigungen vom Gerät abonnieren, ihm eine Nachricht senden und den Status der Verbindung mit dem Gerät überwachen. Es gibt eine klare Dokumentation über den Lebenszyklus des Plugins.

Sie werden vom Benutzer bei Bedarf aus dem "Plug-in-Store" heruntergeladen, um die Anwendung auf dem Telefon nicht aufzublähen.



Aber jetzt werden wir keine Plug-Ins mehr machen, sondern es einfacher machen: Wir werden ein hausgemachtes Gerät hinzufügen, das nur Standard-Plattform-Tools verwendet.

Kompatibilität Ihres Geräts mit SmartThings


Sie haben vielleicht eine Frage: Warum? Was bringt es, wenn Sie als Geräteentwickler kompatibel sind?

  • Der Hauptvorteil ist die Steigerung des Produktwerts durch die automatische Integration in das gesamte Ökosystem.
  • Unter der Bedingung, dass die Funktionstests bestanden wurden, können Sie das Logo „Kompatibel mit SmartThings“ in die Produktverpackung einfügen, um eine problemlose Installation und Konfiguration des Geräts im SmartThings-Ökosystem zu gewährleisten.
  • Wie bei jeder Plattform wird Ihre Aufgabe erleichtert: Sie müssen nicht mehr versuchen, beispielsweise eine Benutzeroberfläche zu entwickeln - Sie können die Standardschaltflächen und andere Elemente der SmartThings-Benutzeroberfläche verwenden.
  • Dank der SmartThings-Community (die lebhaft und aktiv ist) erhalten Sie PR und Benutzerpublikum.

Im folgenden Handbuch werden wir unser eigenes, vollständig benutzerdefiniertes Gerät anschließen.

Was ist zu tun vorgeschlagen


Das SmartThings Device SDK (STDK) wurde kürzlich auf der Samsung Developer Conference im Oktober 2019 vorgestellt. Nachfolgend bieten wir eine Übersetzung des Handbuchs für dieses SDK an. Und nicht nur eine Übersetzung: Wir haben das Gleiche getan und es mit unseren eigenen Händen wiederholt, sodass es einige praktische Kommentare gibt, die über das ursprüngliche Handbuch hinausgehen.

Wie das Endergebnis im Video aussehen wird:


Die RGB-Lampe ist über WLAN mit der SmartThings-Plattform verbunden und wird über das Telefon gesteuert. Die Lampe selbst wird auf die billigste und einfachste Weise implementiert - auf dem sehr beliebten ESP8266-Chip. Eisen ist nicht wichtig: Es kann auf jedem Mikrocontroller ausgeführt werden, da das SDK in C geschrieben und öffentlich zugänglich ist und auf Wunsch portiert werden kann. Es ist unwahrscheinlich, dass das ESP in Produktion geht (für den Anfang ist es bequemer, andere Schnittstellen im Smart Home als WLAN zu verwenden), aber es eignet sich gut für das Modell und die Abbildung.

Die resultierende „Smart Bulb“ bietet folgende Funktionen: RGB-LED-Steuerung über das Farbrad des Telefons. Sowie das Ein- und Ausschalten mit der Taste.
Der Entwicklungsprozess ist in der Abbildung dargestellt:


Der gezeigte Prozess ist nicht schwer, einige der Schritte können umgekehrt werden, was wir im Handbuch zeigen werden.

Eisen


Das Originalhandbuch zeigt alles am Beispiel der WeMos D1 Mini-Karte. Dies ist eine ESP8266-basierte Debug-Karte, die in das Steckbrett eingesetzt werden kann. Im Allgemeinen ist nichts Kniffliges daran, es ist nur ein Modul des chinesischen ESP-Chips, das bei Fans sehr beliebt ist und der Einfachheit halber auf ein breiteres Board in der Größe des Steckbretts gelötet wird. Daher können Sie alles auf jedem anderen Board tun.


Links: WeMos D1, rechts - Troyka WiFi Shield

Sanft


Was Sie brauchen, um das Beispiel zu erstellen:

  • Ubuntu Linux Version nicht niedriger als 18.04 (Sie können ein Beispiel für Windows und MacOS erstellen, aber aus Gründen der Bestimmtheit haben wir Linux gewählt)
  • Android 1.7.39, iOS 1.6.41-343. Play Market SmartThings, Samsung Account. Samsung, .
  • ESP8266 SDK. , , , :

    git clone https://github.com/espressif/ESP8266_RTOS_SDK.git

    SDK IDF_PATH:

    nano ~/.bashrc
    export IDF_PATH="~/git/ESP8266_RTOS_SDK:$IDF_PATH"
  • :

    sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools

    ():

    sudo mkdir /opt/Espressif
    sudo chown username /opt/Espressif/
    cd /opt/Espressif
    wget https://dl.espressif.com/dl/xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz
    tar -xzf ./xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz
    cd xtensa-lx106-elf
    export PATH="/opt/Espressif/xtensa-lx106-elf/bin:$PATH"

  • Smart Things Device SDK C – . github, , , .

    git clone https://github.com/SmartThingsCommunity/st-device-sdk-c-ref.git
    cd st-device-sdk-c-ref
    ./setup.sh esp8266



Die folgenden Geräte werden als Beispiele betrachtet: Smart Switch und Smart Glühbirne. Wir werden mit einem intelligenten Switch beginnen, der einfacher ist und keine externen Peripheriegeräte benötigt.

Schritt 1. Registrieren Sie Ihr Gerät.


Die Arbeit beginnt im SmartThings Developer Workspace , in dem Sie sich mit Ihrem Samsung-Konto anmelden müssen. Dieses Konto wird kostenlos erstellt. Zum Erstellen ist kein Samsung-Telefon erforderlich. 



In Developer Workspace wird Ihnen sofort angeboten, das erste Projekt zu erstellen. Wir sind uns einig, wonach Sie aus den beiden Projektoptionen die Geräteintegration auswählen müssen.



Sie können zwischen drei Optionen für die Integration des Geräts wählen: 

  • SmartThings Cloud Connector - zum Verbinden von Geräten mit eigener Cloud, die mit der SmartThings Cloud verbunden werden
  • SmartThings Hub ist für ZigBee-, Z-Wave-, Bluetooth-Geräte und zum Zeitpunkt des Schreibens nicht verfügbar, da der Hub in Russland noch nicht offiziell verkauft wird
  • Direkt verbunden ist die einfachste Möglichkeit, ohne Zwischenhändler direkt eine Verbindung herzustellen. 

Wählen Sie die dritte Option. Stellen Sie sich der Einfachheit halber beispielsweise einen Projektnamen vor - SmartSwitch.



Fügen Sie ein Geräteprofil hinzu. In Bezug auf OOP ist ein Geräteprofil eine solche „Klasse“, und ein bestimmtes Gerät ist eine „Klasseninstanz“.

Wir müssen die funktionalen Eigenschaften des Geräts im Hinblick auf die SmartThings-Fähigkeit bestimmen. Informationen zu den allgemeinen „Funktionen“ des Geräts finden Sie im Handbuch.



Wir füllen die Felder mit unseren Werten aus. Beispielsweise kann der Profilname eingegeben werden. Test-Switch-Profil, Beschreibung - beliebiger Text, Gerätetyp - Switch, Hersteller-ID - beliebiger Text. "Gerätetyp" wirkt sich auf das Symbol Ihres Geräts und die Benutzeroberfläche aus. Es gibt nicht viele mögliche Gerätetypen auf der Liste (obwohl es exotische gibt, zum Beispiel WineCellar - ein Weinschrank). Wenn Sie also Ihren nicht finden, lassen Sie sich nicht entmutigen und wählen Sie einfach den nächstgelegenen und nächstgelegenen. Auf dem letzten Bildschirm (Dashboard Control) können Sie nichts ändern.

Vergessen Sie nach dem Erstellen des Profils nicht, oben rechts auf die Schaltfläche „Geräteprofil zum Projekt hinzufügen“ zu klicken.



  • Wichtig: Für alle direkt angeschlossenen Geräte ist ein Health Check erforderlich. Fügen Sie es dem Geräteprofil hinzu. 
  • « » : Switch, Health Check.

Fügen Sie nun das Authentifizierungsprofil (Onboarding-Profil) hinzu. Kurz gesagt, in diesem Profil können Sie die Bildschirme anpassen, die beim ersten Herstellen und Anmelden angezeigt werden. Geben Sie einen beliebigen Namen und eine dreistellige Nummer ein. Sie können die beiden anderen Bildschirme vorerst überspringen. Wählen Sie im letzten Bildschirm die Bestätigungsoption - Schaltfläche Bestätigen - durch Drücken der Taste am Gerät. In diesem Handbuch wird davon ausgegangen, dass Sie eine Platine mit integriertem Knopf haben. Wenn plötzlich keine Schaltfläche mehr vorhanden ist (z. B. wenn Sie ein anderes ESP-Modul verwenden), können Sie die Option ohne Authentifizierung auswählen. Sie heißt Just Works, dh sie funktioniert ohne Fragen.

Vergessen Sie auch in Analogie zum vorherigen Beispiel nicht, auf die Schaltfläche "Onboarding zum Projekt hinzufügen" zu klicken.



Sie müssen nur noch auf die Schaltfläche Bereitstellen klicken. Danach können Sie Ihr Gerät in der SmartThings-Anwendung sehen - jedoch nur im Entwicklermodus. Wenn Deploy nicht gepusht wird und die Meldung "Bitte fügen Sie einen Modellnamen hinzu" angezeigt wird. Dies bedeutet, dass Sie keine Geräte-Onboarding-ID angegeben haben. Scrollen Sie auf der folgenden Seite nach unten und geben Sie einen beliebigen Namen Ihrer Wahl ein.



Jetzt können Sie Ihr virtuelles Gerät auf Ihrem Telefon testen.

Der gesamte erste Schritt wird im Video detailliert dargestellt:


Registrieren Sie ein Gerät in der Cloud


Bevor Sie mit der eigentlichen Hardware arbeiten, müssen Sie etwas anderes tun. Nach dem Klicken auf die Schaltfläche Bereitstellen sieht der Bildschirm anders aus: Dort wird ein neues Feld für die Geräteidentität angezeigt. 


Um Ihr Gerät in der SmartThings-Cloud zu authentifizieren, müssen Sie die Seriennummer und den öffentlichen Schlüssel eingeben (mit ED25519-Signaturschema). Das ist einfach genug.

Dieses Beispiel zeigt, wie Sie mit einem Tool im SDK ein Paar ED25519-Schlüssel erstellen. Sie erhalten die Datei device_info.json als Ergebnis des Programms im Ordner tools / keygen / linux / output_ {serialNumber}

Die Linux-Version von keygen befindet sich in st-iot-device-sdk-c-reference / iot-core / tools / keygen / linux oder in st-device-sdk-c / tools / keygen / linux

Die Seriennummer für das Testgerät wird zufällig im STDK + [MNID] -Format + alphanumerischen Format (8 Zeichen) generiert. Sie finden Ihre MNID im Entwicklerprofil im Abschnitt Konto verwalten. 





Um den alphanumerischen Teil zu generieren, müssen Sie als Nächstes Ihre MNID (4 Zeichen) als keygen-Parameter eingeben. Im folgenden Beispiel lautet die MNID fJ * c.


    cd ~/Workspace/st-iot-device-sdk-c-ref/iot-core/tools/keygen
    ./stdk-keygen -m fJ*c
    Go Device Identity of Developer Workspace.
    
    Serial Number:
    ┌──────────┬──────────┐
    │ STDKfJ*c    │ abed**5c   │
    └──────────┴──────────┘
    
    Public Key:
    waGgyjWIvHhF1LU***FG2hx/4u***ADFHr/ry0j5jbk=

Kopieren Sie "abed ** 5c" aus der Keygen-Ausgabe und fügen Sie sie in die XXXXXXXX-Felder im Abschnitt "Geräteidentitätsregistrierung" ein. In einem Fenster werden Sie aufgefordert, den öffentlichen Schlüssel einzugeben.


Kopieren Sie den öffentlichen Schlüssel aus der Keygen-Ausgabe (in diesem Beispiel "waGgyjWIvHhF1LU *** FG2hx / 4u *** ADFHr / ry0j5jbk =") und fügen Sie ihn in das Feld "Öffentlicher Geräteschlüssel" ein.



Schritt 2. Gerätefirmware


Sprechen Sie über den Code, den Sie auf das Gerät herunterladen werden.
Beispiele für Firmware befinden sich im Ordner st-device-sdk-c-ref / apps / esp8266 / . Wir werden uns für das Beispiel st_switch interessieren .

  • Laden Sie onboarding_profile.json im Übersichtsfenster Ihres Geräts im Büro des Entwicklers herunter .


  • Kopieren Sie die heruntergeladene onboarding_profile.json Datei in das Verzeichnis Ihrer Anwendung - in unserem Fall apps / Esp8266 / st_switch / main .

    cd ~/Workspace/st-device-sdk-c-ref/apps/esp8266/st_switch/main/
    cp ~/Downloads/onboarding_profile.json .
    

    Es gibt bereits ein Beispiel für eine solche Datei - ersetzen Sie sie einfach durch Ihre.
  • Kopieren Sie auf ähnliche Weise die Datei device_info.json aus dem Ordner tools / keygen / linux / output_ {serialNumber} , in dem sich die gerätespezifischen Informationen befinden, in denselben Ordner und ersetzen Sie die vorhandene Datei.

    cd ~/Workspace/st-device-sdk-c-ref/iot-core/tools/keygen/linux/
    cp output_{serialNumber}/device_info.json ~/Workspace/st-device-sdk-c-ref/apps/esp8266/st_switch/main/

    In dieser Datei befindet sich neben den Schlüsseln und der Seriennummer die Zeile „firmwareVersion“, die durch die Version Ihres Programms ersetzt werden kann.
  • Bauen Sie nun das Programm zusammen und flashen Sie es.

    cd ~/Workspace/st-device-sdk-c-ref
    ./build.sh esp8266 st_switch
    ./build.sh esp8266 st_switch flash
    ./build.sh esp8266 st_switch monitor

    Oder das gleiche, aber kürzer:

    cd ~/Workspace/st-device-sdk-c-ref
    ./build.sh esp8266 st_switch flash monitor


! Wenn Sie das Programm in keiner Weise flashen können, haben Sie höchstwahrscheinlich vergessen, die ESP8266-Karte in den Programmiermodus zu versetzen. Dies erfolgt normalerweise durch Drücken einer Taste auf der Platine. Zum Beispiel kann das Wi-Fi Troyka-Modul übersetzt werden, indem Sie die PROG-Taste gedrückt halten und dann die RESET-Taste drücken und loslassen.

Vergessen Sie nach dem Herunterladen der Firmware nicht, die Karte neu zu starten.

Schritt 3. Verbindung und Steuerung vom Telefon aus


Aktivieren Sie den Entwicklermodus in der SmartThings-App auf Ihrem Telefon. Wie das geht, steht auf der offiziellen Website, aber es ist einfacher in Worten zu erklären: Geben Sie die Einstellungen über das "Zahnrad" ein und drücken Sie die Taste "SmartThings Details" für 20 Sekunden. Das Menü "Entwicklermodus" wird unten angezeigt.



Unser Gerät sollte in der Liste in der SmartThings-Anwendung sichtbar sein: Starten Sie die Anwendung, klicken Sie auf die Plus-Schaltfläche und dann auf Gerät hinzufügen. Scrollen Sie zum Ende der Herstellerliste und sehen Sie das Symbol "Meine Testgeräte". Klicken Sie darauf und wählen Sie Ihr Gerät aus.



Außerdem: Wenn Sie den Entwicklermodus bereits aktiviert und das Gerät eingeschaltet haben, steht Ihnen ein Popup-Menü zum Hinzufügen dieses bestimmten Geräts zur Verfügung!

Die Verbindung wird gestartet :


Verwalten Sie das Gerät über die SmartThings-Anwendung. 

Das Gerät wird zunächst als Zugangspunkt angezeigt, da es das Kennwort für Ihr WLAN noch nicht kennt. Während des Verbindungsvorgangs geben Sie das Netzwerk an, mit dem das Gerät eine Verbindung herstellen soll. Wenn Sie einen versteckten Zugangspunkt haben, kann ESP keine Verbindung herstellen. Wählen Sie daher einen offenen Punkt.

Das Ergebnis ist folgendes:



In diesem Beispiel ( st-Schalter ) steuern Sie die eingebaute LED auf der Platine, indem Sie die Taste auf der Platine selbst drücken. Wie Sie sehen, benötigen Sie für dieses Beispiel nicht einmal zusätzliche Peripheriegeräte, sondern nur die ESP8266-Karte selbst.

Sie können das Gerät auch mit der Taste auf dem Bedienfeld in der mobilen Anwendung ein-



und ausschalten: Wenn Sie die physische Taste drücken, wird natürlich auch der Status der Glühbirne in der Anwendung aktualisiert.

Beispiel für intelligentes Licht


Nachdem Sie das Smart Switch-Beispiel erstellt haben, versuchen wir, die Dinge etwas zu komplizieren. Es wird eine RGB-LED geben, und wir werden eine externe Taste ein- und ausschalten und auch eine Farbe über die Anwendung auswählen.

Eisen


Das Verbindungsschema wird einfach sein:

Und der Schaltplan tut auch nicht weh:



Wenn Sie sich die Quelle ansehen (unter: st-device-sdk-c-ref / apps / esp8266 / st_lamp), dann ist die Verbindung dort wie folgt: Sie können die Schlussfolgerungen entsprechend neu zuordnen Es ist das Modell des Boards, das Sie haben. Bitte beachten Sie, dass sich ein Notationssystem (D1, D2 ...) auf der Karte und ein anderes im Code befindet. Dies lässt sich jedoch leicht anhand der Dokumentation für Ihre Karte herausfinden.

#define GPIO_OUTPUT_NOTIFICATION_LED 2
#define GPIO_INPUT_BUTTON 5
#define GPIO_OUTPUT_COLORLED_R 16
#define GPIO_OUTPUT_COLORLED_G 14
#define GPIO_OUTPUT_COLORLED_B 12
#define GPIO_OUTPUT_COLORLED_0 13 




Software-Teil


Je nach Softwareteil werden wir mehrere Schritte ändern:

  • Beim Hinzufügen von Funktionen müssen Sie Folgendes angeben: Schalter, Schalterstufe, Farbsteuerung, Integritätsprüfung. Die Art des Geräts wird sein - Licht.
  • Wir nehmen ein Beispiel für Firmware aus demselben Ordner mit Beispielen, es heißt st_lamp

Die Oberfläche in der Anwendung



sieht folgendermaßen aus : Wie sie in Aktion aussieht - noch einmal GIF:



Fazit


Sie haben also ein fertiges Beispiel. Sie sehen, dass der größte Teil des Codes bereits für Sie erstellt wurde - alles in Bezug auf Verbindung, Authentifizierung und Geräteschnittstelle. Das SmartThings-Beispiel ist insofern wertvoll, als es nicht an ein Hardwaregerät gebunden ist. Sie können beobachten und bewerten, welche Plattformfunktionen in 2k20 erforderlich sind, wenn Sie ein Smart Home entwickeln.


Tatyana Volkova - Autorin des Internet of Things-Lehrplans der Samsung IT Academy, Spezialistin für Programme zur sozialen Verantwortung von Unternehmen im Samsung Research Center

All Articles