Intégrez votre appareil Smart Home dans l'écosystÚme SmartThings

Les plateformes Smart Home vous permettent d'intégrer des appareils et de créer de nouveaux scénarios pour leur interaction. L'effet de plate-forme est connu: les utilisateurs sont plus susceptibles de choisir celui avec lequel leurs appareils existants sont compatibles, plutÎt que de passer à un nouveau. Par conséquent, pour les développeurs de nouveaux appareils ingénieux, il peut s'avérer plus rentable de s'intégrer dans une plate-forme déjà terminée, en se concentrant sur le produit «fer», plutÎt que de développer vos propres «vélos» sous la forme d'écosystÚmes cloud et de comptes personnels.

Voyons comment intĂ©grer votre propre appareil Ă  la plateforme Samsung SmartThings Smart Home. Nous mettons en Ɠuvre une option de connexion directe pour contrĂŽler l'appareil Smart Home en utilisant l'exemple d'un interrupteur Ă  bouton et d'une ampoule tricolore. 




Pourquoi avons-nous besoin de plateformes Smart Home?


Maintenant, des gadgets et des appareils intelligents sont en vente - autant que vous le souhaitez. Pas de problĂšme pour acheter une bouilloire avec contrĂŽle Bluetooth ou une ampoule avec WiFi. Mais cela rend-il votre maison «intelligente»? Une situation n'est pas rare: une ampoule n'est contrĂŽlĂ©e que via une application mobile du constructeur. Cela crĂ©e des inconvĂ©nients si vous essayez de combiner au moins plusieurs marques diffĂ©rentes. Par consĂ©quent, la plate-forme idĂ©ale est celle qui vous permet de gĂ©rer les appareils de diffĂ©rents fabricants de la mĂȘme maniĂšre.

De plus, j'aimerais voir un «ordinateur se dissoudre dans la vie de tous les jours», comme le rĂȘvait Mark Weiser de Xerox PARC: ne contrĂŽlez pas via une application spĂ©ciale, ne vaporisez pas votre attention. Je voudrais une interaction naturelle avec un environnement intelligent qui ne change pas nos habitudes. Comment l'implĂ©menter techniquement? Par exemple, il peut s'agir de scĂ©narios impliquant des appareils hĂ©tĂ©rogĂšnes dans la maison: vous vous ĂȘtes rĂ©veillĂ© - l'appareil portable l'a dĂ©tectĂ© et la bouilloire s'est allumĂ©e; vous ĂȘtes rentrĂ© Ă  la maison - le capteur sur la porte l'a enregistrĂ©, en tenant compte de l'heure, des rideaux fermĂ©s, de la lampe allumĂ©e et de la climatisation allumĂ©e en tenant compte de la tempĂ©rature.

Les scénarios deviennent encore plus utiles si nous utilisons Internet: par exemple, pour vérifier à distance si la prise avec le fer à repasser est fermée. Ou un exemple banal: votre maison intelligente a regardé les prévisions météorologiques et vous a donné des conseils sur la meilleure façon de s'habiller. Ou vous pouvez ajouter une commande vocale via un haut-parleur intelligent.

La plateforme Smart Home est conçue pour tout cela. Considérez ce que la plateforme Samsung SmartThings peut faire.

Contexte - Que sont les SmartThings?


SmartThings a commencĂ© en tant que startup. Au moment oĂč il est apparu, en 2012 aux États-Unis, le thĂšme de la «Smart Home» n'Ă©tait pas encore au sommet du battage mĂ©diatique, il n'y avait toujours pas d'enceintes intelligentes et une variĂ©tĂ© de gadgets en magasin. L'idĂ©e est venue au fondateur de la startup, Alex Hawkinson, aprĂšs un incident: sa maison familiale au Colorado a souffert du fait qu'aprĂšs une panne de courant temporaire, les conduites d'eau Ă©taient trĂšs froides, elles ont Ă©clatĂ© et tout le sol a Ă©tĂ© inondĂ©. Puis il a pensĂ© qu'il aurait pu prĂ©venir le problĂšme s'il avait su ce qui se passait dans la maison. 

AprÚs avoir vainement cherché une solution clé en main, Hawkinson et ses collÚgues ont réalisé un prototype de l'appareil et lancé une campagne sur Kickstarter. La campagne a connu un succÚs excessif, recueillant 1 200 000 $ au lieu des 250 000 $ prévus dans 30 jours. La vente d'un hub hub avec un petit ensemble d'appareils dans le kit a commencé: prise intelligente, capteur d'ouverture de porte, capteur de mouvement, capteur de présence. Et en 2019, déjà sous la marque Samsung SmartThings, la troisiÚme version du hub a été lancée.


La clé du succÚs sur Kickstarter était la disponibilité de prototypes fonctionnels de fer et de logiciels, et la convivialité pour la communauté des fabricants

Les créateurs de la startup ont quitté l'environnement de bricolage, ils développent donc constamment le concept d'une API ouverte pour les fabricants de geek qui peuvent agir en tant qu'adopteurs précoces à un stade précoce. Dans la campagne Kickstarter, il y avait un bouclier pour Arduino et divers modules cloud pour connecter en toute transparence votre appareil tiers. Sur Internet, vous pouvez trouver de nombreux exemples d'appareils faits maison compatibles avec SmartThings, qu'il s'agisse d'une porte de poulailler contrÎlée (avec la solution d'une tùche de la vie sérieuse - pour sauver les poulets d'un vison prédateur), ou de l' installation à distance d' un code de verrouillage électronique pour les clients avec Airbnb.


Source de la photo: https://www.hackster.io/aaronpk/auto-airbnb-entry-745799

En 2012-2013, SmartThings a effectué plusieurs cycles d'investissement et a reçu 12,5 millions de dollars. Enfin, en 2014, elle s'est intéressée à Samsung et a été acquise pour 200 millions de dollars dans le cadre d'une stratégie visant à pénétrer le marché de l'Internet des objets.
Les capacitĂ©s du cloud de la plate-forme sont restĂ©es gratuites: les auteurs, dĂ©sormais employĂ©s de Samsung, n'excluant pas la possibilitĂ© thĂ©orique de facturer de gros volumes de trafic, soulignent: il y aura toujours une option gratuite pour les dĂ©veloppeurs d'appareils. C'est bien, car maintenant presque tous les services cloud prĂ©voient la monĂ©tisation, et souvent mĂȘme pour une pĂ©riode d'essai, vous devez joindre une carte bancaire. SmartThings est une plateforme entiĂšrement gratuite.

Architecture de SmartThings




Déplaçons le motif de gauche à droite.

Dispositifs


Périphériques SmartThings - il peut s'agir non seulement de périphériques de la suite SmartThings , mais également de nombreux partenaires tiers de la liste des partenaires.



Si l'appareil ne figure pas dans la liste des appareils officiellement pris en charge, vous pouvez y rechercher le gestionnaire d'appareil - il peut ĂȘtre fourni par la communautĂ© des dĂ©veloppeurs - ou Ă©crire le vĂŽtre.

MĂ©thodes de connexion


Vous pouvez connecter des appareils Ă  la plate-forme des maniĂšres suivantes:

  • ConnectĂ© au concentrateur - via un concentrateur concentrateur, pertinent pour les appareils qui n'ont pas leur connexion Internet, mais qui sont connectĂ©s via des rĂ©seaux sans fil traditionnels comme ZigBee pour de tels systĂšmes. 
  • Directement connectĂ© - via Internet directement au cloud. SmartThings a rĂ©cemment publiĂ© un camĂ©scope, une ampoule et une prise intelligente, et ils fonctionnent sans concentrateur - via le WiFi. C'est l'option que nous allons implĂ©menter dans ce guide.
  • ConnectĂ© au cloud - via un cloud tiers pour les appareils qui ont dĂ©jĂ  leur propre Ă©cosystĂšme cloud. C'est plus compliquĂ©, donc nous n'envisagerons pas une telle option.

Centre


En rĂšgle gĂ©nĂ©rale, pour connecter une variĂ©tĂ© d'Ă©quipements dans votre maison devrait ĂȘtre un petit serveur spĂ©cial "Smart Home" qui prend en charge divers protocoles. Lui - un hub, un hub, une passerelle - les noms sont diffĂ©rents.


Hub et un ensemble d'appareils Ă  elle. Source de la photo: IXBT .

application


L'application SmartThings est une application qui peut ĂȘtre installĂ©e sur le systĂšme d'exploitation mobile principal et avec son aide: ajouter de nouveaux appareils au systĂšme, contrĂŽler ceux dĂ©jĂ  ajoutĂ©s, dĂ©finir des rĂšgles d'automatisation, recevoir des notifications par push et SMS, et bien plus encore. 



Abstraction


Dans SmartThings, comme dans de nombreuses autres plates-formes de maison intelligente, il existe les abstractions suivantes: piĂšces, scĂšnes, scĂ©narios. 

Les appareils sont regroupés en piÚces. Vous attachez simplement tel ou tel gadget à une piÚce de l'application et vous l'appelez «Cuisine», «Salle de bain», «Couloir».

Il existe encore des scÚnes (scÚnes) - ce sont des situations: «sommeil», «repos», «travail», «regarder un film» - chacune des situations est caractérisée par son propre ensemble d'états de périphérique.


ScĂšnes et piĂšces sur l'Ă©cran d'application

Et enfin, les scripts (Routines): rĂšgles d'automatisation if-then. Par dĂ©faut, le programme comporte quatre scĂ©narios: «Je suis de retour», «Bonne nuit», «Au revoir», «Bonjour». Vous pouvez configurer l'activation du script en fonction de la condition du matin, ou en cas de mouvement, ou en cas d'ouverture de la porte, etc. Un exemple non trivial: lorsque j'entre du trafic rĂ©seau Ă  domicile sur ma camĂ©ra de surveillance Ă  domicile pour Ă©viter la fuite de mes vidĂ©os personnelles. Ou un exemple Ă©ducatif cruel: dĂ©connectez de force la tablette du rĂ©seau quand il est 11 heures du soir pour vous empĂȘcher de rester sur Internet au lieu d'un sommeil sain.



De plus, dans le programme SmartThings au téléphone, il existe une opportunité intéressante - mémoriser des actions typiques. Lorsque vous utilisez souvent le téléphone, au fil du temps, il commence à vous indiquer la meilleure façon de configurer les scÚnes en fonction des applications les plus fréquemment lancées.

Pour ajouter de nouveaux périphériques au systÚme, un systÚme de plug-in est fourni. Le développeur peut programmer le plug-in pour son propre appareil - l'interface utilisateur à l'intérieur de l'application SmartThings et la logique de l'appareil. Il s'agit essentiellement d'une application Web. Du point de vue du développeur, le plugin peut s'abonner aux événements ou notifications de l'appareil, lui envoyer un message, surveiller l'état de la connexion avec l'appareil. Il existe une documentation claire sur le cycle de vie du plugin.

Ils sont téléchargés par l'utilisateur depuis le "plug-in store" selon les besoins, afin de ne pas gonfler l'application sur le téléphone.



Mais maintenant, nous ne ferons plus de plug-ins, mais nous allons simplifier: nous allons ajouter un appareil fait maison en utilisant uniquement des outils de plate-forme standard.

Rendre votre appareil compatible avec SmartThings


Vous avez peut-ĂȘtre une question: pourquoi? Quel est l'intĂ©rĂȘt de le rendre compatible si vous ĂȘtes dĂ©veloppeur d'appareils?

  • Le principal avantage est l'augmentation de la valeur du produit grĂące Ă  l'intĂ©gration automatique avec l'ensemble de l'Ă©cosystĂšme.
  • Sous rĂ©serve du succĂšs des tests fonctionnels, vous pouvez coller le logo: «Compatible avec SmartThings» sur la boĂźte du produit, garantissant ainsi une installation et une configuration sans problĂšme de l'appareil dans l'Ă©cosystĂšme SmartThings.
  • Comme avec n'importe quelle plate-forme, votre tĂąche est facilitĂ©e: vous n'avez plus besoin d'essayer de dĂ©velopper, par exemple, une interface utilisateur - vous pouvez utiliser les boutons standard et d'autres Ă©lĂ©ments de l'interface SmartThings.
  • Vous obtenez des relations publiques et un public d'utilisateurs grĂące Ă  la communautĂ© SmartThings (elle est vivante et active).

Dans le manuel ci-dessous, nous connecterons notre propre appareil entiÚrement personnalisé.

Que propose-t-on de faire


Le SDK SmartThings Device (STDK) a rĂ©cemment Ă©tĂ© prĂ©sentĂ© Ă  la Samsung Developer Conference en octobre 2019. Ci-dessous, nous proposons une traduction du manuel de ce SDK. Et pas seulement une traduction: nous avons fait la mĂȘme chose et l'avons rĂ©pĂ©tĂ©e de nos propres mains, il y aura donc des commentaires pratiques qui vont au-delĂ  du manuel d'origine.

À quoi ressemblera le rĂ©sultat final dans la vidĂ©o:


La lampe RVB est connectĂ©e Ă  la plate-forme SmartThings via WiFi, et vous la contrĂŽlez via le tĂ©lĂ©phone. La lampe elle-mĂȘme est mise en Ɠuvre de la maniĂšre la moins chĂšre et la plus simple - sur la puce ESP8266 super populaire. Le fer n'est pas important: il peut ĂȘtre fait sur n'importe quel microcontrĂŽleur, car le SDK est Ă©crit en C, disposĂ© dans le domaine public et il peut ĂȘtre portĂ© si vous le souhaitez. Il est peu probable que l'ESP entre en production (pour commencer, il est plus pratique d'utiliser d'autres interfaces dans la maison intelligente que le WiFi), mais il convient tout Ă  fait au modĂšle et Ă  l'illustration.

La fonctionnalité de l'ampoule intelligente qui en résulte sera la suivante: ContrÎle LED RVB à l'aide de la roue chromatique du téléphone. En plus de l'éteindre et de l'activer à l'aide du bouton.
Le processus de développement est illustré dans le diagramme:


Le processus indiquĂ© n'est pas difficile, certaines Ă©tapes peuvent ĂȘtre inversĂ©es, ce que nous montrerons dans le manuel.

Le fer


Le manuel d'origine montre tout sur l'exemple de la carte WeMos D1 Mini, il s'agit d'une carte de dĂ©bogage basĂ©e sur ESP8266 qui peut ĂȘtre insĂ©rĂ©e dans la planche Ă  pain. En gĂ©nĂ©ral, il n'y a rien de dĂ©licat, c'est juste un module de la puce ESP chinoise qui est super populaire parmi les fans, soudĂ© pour plus de commoditĂ© Ă  une carte plus large de la taille de la planche Ă  pain. Par consĂ©quent, vous pouvez tout faire sur n'importe quel autre tableau.


Gauche: WeMos D1, droite - Troyka WiFi Shield

Doux


Ce dont vous avez besoin pour construire l'exemple:

  • Version Ubuntu Linux pas infĂ©rieure Ă  18.04 (vous pouvez construire un exemple pour Windows et MacOS, mais pour ĂȘtre prĂ©cis, nous avons choisi Linux)
  • 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



Les appareils suivants seront considérés comme des exemples: interrupteur intelligent et ampoule intelligente. Nous allons commencer par un interrupteur intelligent, plus simple et ne nécessitant aucun périphérique externe.

Étape 1. Enregistrez votre appareil.


Le travail commence dans l' espace de travail du dĂ©veloppeur SmartThings , oĂč vous devez vous connecter Ă  l'aide de votre compte Samsung. Ce compte est crĂ©Ă© gratuitement, et pour le crĂ©er il n'est pas nĂ©cessaire d'avoir un tĂ©lĂ©phone Samsung. 



Dans Developer Workspace, il vous est immédiatement proposé de créer le premier projet. Nous sommes d'accord, aprÚs quoi, parmi les deux options de projet, vous devez sélectionner l'intégration des périphériques.



Le choix sera donnĂ© trois options pour intĂ©grer l'appareil: 

  • SmartThings Cloud Connector - pour connecter des appareils qui ont leur propre cloud qui seront connectĂ©s au cloud SmartThings
  • SmartThings Hub n'est pas disponible pour les appareils ZigBee, Z-Wave, Bluetooth et au moment de la rĂ©daction, car le hub n'est pas encore officiellement vendu en Russie
  • Directly Connected est l'option la plus simple pour se connecter directement, sans intermĂ©diaire. 

Choisissez la troisiÚme option. Pensez à un nom de projet, par exemple, pour plus de simplicité - SmartSwitch.



Ajoutez un profil d'appareil. En termes de POO, un profil de périphérique est une telle «classe», et un périphérique spécifique est une «instance de classe».

Nous devons déterminer les caractéristiques fonctionnelles de l'appareil en termes de capacité SmartThings. Vous pouvez lire sur les «capacités» générales de l'appareil dans le manuel.



Nous remplissons les champs avec nos valeurs. Par exemple, le nom du profil peut ĂȘtre saisi Test Switch Profile, description - n'importe quel texte, type d'appareil - Switch, Vendor ID - n'importe quel texte. "Type d'appareil" affecte l'icĂŽne de votre appareil et l'interface utilisateur. Il n'y a pas beaucoup de types d'appareils possibles sur la liste (bien qu'il y en ait des exotiques, par exemple WineCellar - une cave Ă  vin), donc si vous ne trouvez pas le vĂŽtre, ne vous dĂ©couragez pas et choisissez simplement le plus proche et le plus proche. Sur le dernier Ă©cran (Dashboard Control), vous ne pouvez rien changer.

AprÚs avoir créé le profil, n'oubliez pas de cliquer sur le bouton «Ajouter un profil d'appareil au projet» en haut à droite.



  • Important: Health Check est requis pour tous les appareils directement connectĂ©s. Ajoutez-le au profil de l'appareil. 
  • « » : Switch, Health Check.

Ajoutez maintenant le profil d'authentification (profil d'intégration). En bref, dans ce profil, vous pouvez personnaliser les écrans qui apparaissent lorsque vous vous connectez et vous connectez pour la premiÚre fois. Saisissez un nom et un numéro à trois chiffres. Vous pouvez ignorer les deux autres écrans pour l'instant. Sur le dernier écran, sélectionnez l'option de confirmation - Bouton Confirmer - en appuyant sur le bouton de l'appareil. Dans ce manuel, nous supposons que vous avez une carte avec un bouton intégré. Si tout à coup il n'y a pas de bouton (par exemple, vous utilisez un autre module ESP), alors vous pouvez choisir l'option sans authentification du tout - elle s'appelle Just Works, c'est-à-dire qu'elle «fonctionne juste» sans aucune question.

Et encore une fois, par analogie avec l'exemple précédent, n'oubliez pas de cliquer sur le bouton "Ajouter l'intégration de l'appareil au projet".



Il ne reste plus qu'à cliquer sur le bouton Déployer. AprÚs cela, vous pouvez voir votre appareil dans l'application SmartThings - mais uniquement en mode développeur. Si Deploy n'est pas poussé et qu'ils écrivent «Veuillez ajouter un nom de modÚle» - cela signifie que vous n'avez pas spécifié d'ID d'intégration de périphérique, faites défiler la page ci-dessous et faites-le - entrez le nom de votre choix.



Vous pouvez maintenant commencer à tester votre appareil virtuel sur votre téléphone.

La premiÚre étape entiÚre est présentée en détail dans la vidéo:


Enregistrer un appareil dans le cloud


Avant de commencer Ă  travailler avec le matĂ©riel rĂ©el, vous devez faire autre chose. AprĂšs avoir appuyĂ© sur le bouton DĂ©ployer, l'Ă©cran sera diffĂ©rent: un nouveau champ IdentitĂ© du pĂ©riphĂ©rique y apparaĂźtra. 


Pour authentifier votre appareil dans le cloud SmartThings, vous devez entrer son numéro de série et sa clé publique (avec le schéma de signature ED25519). C'est assez simple.

Cet exemple montre comment créer une paire de clés ED25519 à l'aide d'un outil du SDK. Vous obtiendrez le fichier device_info.json comme résultat du programme dans le dossier tools / keygen / linux / output_ {serialNumber}

La version Linux de keygen se trouve dans st-iot-device-sdk-c-reference / iot-core / tools / keygen / linux ou dans st-device-sdk-c / tools / keygen / linux

Le numĂ©ro de sĂ©rie de l'appareil de test sera gĂ©nĂ©rĂ© de maniĂšre alĂ©atoire au format STDK + [MNID] + format alphanumĂ©rique (8 caractĂšres). Vous pouvez trouver votre MNID dans le profil de dĂ©veloppeur dans la section GĂ©rer le compte. 





Ensuite, pour générer la partie alphanumérique, vous devez entrer votre MNID (4 caractÚres) comme paramÚtre keygen. Dans l'exemple ci-dessous, le MNID est 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=

Copiez «abed ** 5c» de l'Ă©mission keygen et collez-le dans les champs XXXXXXXX de la section Enregistrement de l'identitĂ© du pĂ©riphĂ©rique. Une fenĂȘtre apparaĂźtra vous demandant d'entrer la clĂ© publique.


Copiez la clé publique de l'émission keygen («waGgyjWIvHhF1LU *** FG2hx / 4u *** ADFHr / ry0j5jbk =» dans cet exemple) et collez-la dans le champ «Device Public Key».



Étape 2. Micrologiciel de l'appareil


Parlez du code que vous téléchargerez sur l'appareil.
Des exemples de firmware se trouvent dans le dossier st-device-sdk-c-ref / apps / esp8266 / . Nous serons intéressés par l'exemple st_switch .

  • TĂ©lĂ©chargez onboarding_profile.json dans la fenĂȘtre de prĂ©sentation de votre appareil dans le bureau du dĂ©veloppeur.


  • Copiez le fichier onboarding_profile.json tĂ©lĂ©chargĂ© dans le rĂ©pertoire de votre application - dans notre cas apps / esp8266 / st_switch / main .

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

    Il existe déjà un exemple d'un tel fichier - remplacez-le simplement par le vÎtre.
  • De mĂȘme, copiez le device_info.json fichier de l' outil / keygen / linux / output_ {} serialNumber dossier , dans lequel les informations spĂ©cifiques Ă  l' appareil se trouve, dans le mĂȘme dossier, en remplaçant le fichier existant.

    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/

    Dans ce fichier, en plus des clĂ©s et du numĂ©ro de sĂ©rie, il y a la ligne «firmwareVersion» - elle peut ĂȘtre remplacĂ©e par la version de votre programme.
  • Maintenant, assemblez et flashez le programme.

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

    Ou le mĂȘme, mais plus court:

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


! Si vous ne pouvez pas flasher le programme de quelque maniĂšre que ce soit, vous avez probablement oubliĂ© de mettre la carte ESP8266 en mode de programmation. Cela se fait gĂ©nĂ©ralement en appuyant sur un bouton de la carte elle-mĂȘme. Par exemple, le module Wi-Fi Troyka peut ĂȘtre traduit en maintenant enfoncĂ© le bouton PROG, puis en appuyant et en relĂąchant le bouton RESET.

Une fois le firmware téléchargé, n'oubliez pas de redémarrer la carte.

Étape 3. Connexion et contrĂŽle depuis le tĂ©lĂ©phone


Activez le mode développeur dans l'application SmartThings sur votre téléphone. Comment faire est écrit sur le site officiel, mais il est plus facile de l'expliquer avec des mots: entrez les paramÚtres via le "gear" et appuyez sur le bouton "SmartThings Details" pendant 20 secondes. Le menu «Developer Mode» apparaßt ci-dessous.



Notre appareil doit ĂȘtre visible dans la liste de l'application SmartThings: lancez l'application, cliquez sur le bouton plus et Ajouter un appareil. Faites dĂ©filer jusqu'Ă  la fin de la liste des fournisseurs et voyez l'icĂŽne «Mes appareils de test». Cliquez dessus et sĂ©lectionnez votre appareil.



De plus: si vous avez déjà activé le mode développeur et allumé l'appareil, vous aurez alors un menu contextuel proposant d'ajouter cet appareil particulier!

La connexion démarre :


gĂ©rez l'appareil Ă  partir de l'application SmartThings. 

Dans un premier temps, l'appareil apparaßt comme un point d'accÚs, car il ne connaßt pas encore le mot de passe de votre WiFi. Au cours du processus de connexion, vous spécifiez le réseau avec lequel l'appareil doit se connecter. Si vous avez un point d'accÚs caché, ESP ne pourra pas s'y connecter, alors choisissez un point ouvert.

Le résultat sera le suivant:



Dans cet exemple ( st-switch ), vous contrĂŽlez la LED intĂ©grĂ©e sur la carte en appuyant sur le bouton de la carte elle-mĂȘme. Comme vous pouvez le voir, pour cet exemple, vous n'avez mĂȘme pas besoin de pĂ©riphĂ©riques supplĂ©mentaires, uniquement la carte ESP8266 elle-mĂȘme.

Vous pouvez Ă©galement allumer / Ă©teindre l'appareil avec le bouton du panneau de commande dans l'application mobile:



Et bien sûr, si vous appuyez sur le bouton physique, le statut de l'ampoule dans l'application est également mis à jour.

Exemple d'Ă©clairage intelligent


AprÚs avoir fait l'exemple Smart Switch, essayons de compliquer un peu les choses. Il y aura une LED RVB, et nous activerons / désactiverons un bouton externe, et sélectionnerons également une couleur via l'application.

Le fer


Le schéma de connexion sera simple:

Et le schéma de circuit ne fait pas de mal non plus:



si vous regardez la source (située à: st-device-sdk-c-ref / apps / esp8266 / st_lamp), alors la connexion est la suivante: vous pouvez réaffecter les conclusions selon lesquelles c'est le modÚle de la planche que vous avez. Veuillez noter qu'il existe un systÚme de notation (D1, D2 ...) sur la carte, et un autre dans le code, mais cela est facile à comprendre simplement en consultant la documentation de votre carte.

#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 




Partie logiciel


Selon la partie logicielle, nous allons changer plusieurs Ă©tapes:

  • Lors de l'ajout de capacitĂ©s, vous devez spĂ©cifier les Ă©lĂ©ments suivants: Switch, Switch Level, Color Control, Health Check. Le type d'appareil sera - Light.
  • Nous prenons un exemple de firmware du mĂȘme dossier avec des exemples, il s'appelle st_lamp

L'interface de l'application



ressemblera Ă  ceci: Ă  quoi cela ressemble en action - encore une fois GIF:



Conclusion


Donc, vous avez un exemple de travail prĂȘt. Vous voyez que la plupart du code a dĂ©jĂ  Ă©tĂ© fait pour vous - tout ce qui concerne la connexion, l'authentification, l'interface de l'appareil. L'exemple SmartThings est prĂ©cieux en ce qu'il n'est liĂ© Ă  aucun pĂ©riphĂ©rique matĂ©riel, et vous pouvez regarder et Ă©valuer les fonctionnalitĂ©s de la plate-forme nĂ©cessaires dans 2k20 si vous dĂ©veloppez une maison intelligente.


Tatyana Volkova - Auteur du programme de suivi de l'Internet des objets de la Samsung IT Academy, spécialiste des programmes de responsabilité sociale des entreprises au Samsung Research Center

All Articles