Modifications

Sauter à la navigation Sauter à la recherche
104 octets ajoutés ,  24 octobre 2015 à 13:14
aucun résumé de modification
Ligne 17 : Ligne 17 :  
Voici comment fonctionne le programme
 
Voici comment fonctionne le programme
 
* Activer les broches sur lesquelles sont banchées les LEDs en tant que sortie (''output'' en anglais)
 
* Activer les broches sur lesquelles sont banchées les LEDs en tant que sortie (''output'' en anglais)
* Créer et répertorier (''register'') une fonction Spark (elle sera appelée automatiquement lorsque vous ferez un appel via l'API)
+
* Créer et répertorier (''register'') une fonction Particle (elle sera appelée automatiquement lorsque vous ferez un appel via l'API)
 
* Traiter la commande entrante (''parse'') pour prendre les actions appropriées.
 
* Traiter la commande entrante (''parse'') pour prendre les actions appropriées.
    
=== Le code ===
 
=== Le code ===
Voici le code proposé par Spark... avec traduction des commentaires pour faciliter la compréhension
+
Voici le code proposé par Particle... avec traduction des commentaires pour faciliter la compréhension
    
  <nowiki>// -----------------------------------
 
  <nowiki>// -----------------------------------
Ligne 34 : Ligne 34 :  
void setup()
 
void setup()
 
{
 
{
   // Enregistrez votre fonction Spark ici
+
   // Enregistrez votre fonction Particle ici
 
   // Le point de contact de l'API est "led" et la  
 
   // Le point de contact de l'API est "led" et la  
 
   // fonction appelée est "ledControl"
 
   // fonction appelée est "ledControl"
Ligne 93 : Ligne 93 :     
  POST /v1/devices/{CORE_ID}/led
 
  POST /v1/devices/{CORE_ID}/led
 +
 +
=== CURL? KASEKO?!?! ===
 +
[[Fichier:Curl-Logo.jpg|280px]]<small><br />Source: [http://curl.haxx.se/ curl.haxx.se]</small>
 +
 +
 +
curl est une programme/interface en ligne de commande destinée à récupérer le contenu d'une ressource accessible sur Internet (les réseaux informatiques en général). La ressource est désignée à l'aide d'une URL (comme https://api.spark.io/v1/devices/0123456789abcdef/led dans notre exemple). Contrairement à wget, curl est capable de créer et modifier des ressources (avec des requête POST) et peut aussi être utiliser en tant que client REST.
 +
 +
C'est donc l'outil idéal pour tester vos API Spark... et et disponible en multiplateforme (Linux, MacOS, Windows, ect). Les plus perspicaces verront là l'opportunité d'utiliser Particle Core avec leur Raspberry Pi :-)
 +
 +
Voyez:
 +
* [https://api.spark.io/v1/devices/0123456789abcdef/led CURL] sur WikiPedia pour plus d'information.
 +
* [http://curl.haxx.se/ Le site officiel de Curl]
 +
* Installation rapide: <code>sudo apt-get install curl</code>
    
=== Utiliser CURL ===
 
=== Utiliser CURL ===
Ligne 118 : Ligne 131 :  
}</nowiki>
 
}</nowiki>
   −
La réponse contient, en autre, la valeur retournée par votre fonction <code>ledControl</code> (voyez ''return_value''). Nous savons également que notre Spark Core est en ligne puisque ''connected'' est à true (valeur booléenne vrai)
+
La réponse contient, en autre, la valeur retournée par votre fonction <code>ledControl</code> (voyez ''return_value''). Nous savons également que notre PArticle Core est en ligne puisque ''connected'' est à true (valeur booléenne vrai)
    
=== Comment trouver votre CORE_ID ===
 
=== Comment trouver votre CORE_ID ===
Le CORE_ID (aussi appelé DEVICE_ID) est une valeur permettant d'identifier votre Spark Core.  
+
Le CORE_ID (aussi appelé DEVICE_ID) est une valeur permettant d'identifier votre Particle Core.  
   −
Souvenez-vous, en enregistrant votre Core sur Spark Cloud, vous lui avez donné un Nom. Le notre, nous l'avons nommé MCH-DEMO.
+
Souvenez-vous, en enregistrant votre Core sur Particle Cloud, vous lui avez donné un Nom. Le notre, nous l'avons nommé MCH-DEMO.
    
Cependant, l'informatique préfère les identifiants barbares comme 0123456789abcdef... oui, c'est barbare mais évite aussi les erreurs par confusion, les tentatives d'identifications par ingénierie sociale et sont faciles à stocker (dans un fichier ou une base de donnée).
 
Cependant, l'informatique préfère les identifiants barbares comme 0123456789abcdef... oui, c'est barbare mais évite aussi les erreurs par confusion, les tentatives d'identifications par ingénierie sociale et sont faciles à stocker (dans un fichier ou une base de donnée).
   −
Vous pouvez trouver le Core ID dans le Web IDE (build) de Spark. Connecter vous avec votre compte Spark Cloud.
+
Vous pouvez trouver le Core ID dans le Web IDE (build) de Particle. Connecter vous avec votre compte Particle Cloud.
   −
Vous trouverez votre Spark Core ID ici...
+
Vous trouverez votre Particle Core ID ici...
    
[[Fichier:Spark-Core-NetLed-Core_ID.jpg|640px]]
 
[[Fichier:Spark-Core-NetLed-Core_ID.jpg|640px]]
    
=== Comment trouver l' ACCESS_TOKEN ===
 
=== Comment trouver l' ACCESS_TOKEN ===
S'il ne fallait qu'un CORE ID pour contrôler un Spark Core, alors n'importe qui pourrait prendre le contrôle de n'importe quel Spark Core s'il connait le CORE ID.
+
S'il ne fallait qu'un CORE ID pour contrôler un Particle Core, alors n'importe qui pourrait prendre le contrôle de n'importe quel Particle Core s'il connait le CORE ID.
    
Imaginez que quelqu'un tente sa chance en utilisant des CORE ID au hasard? Lui, ou n'importe quel opportuniste, pourrait prendre le contrôle de votre Core!  
 
Imaginez que quelqu'un tente sa chance en utilisant des CORE ID au hasard? Lui, ou n'importe quel opportuniste, pourrait prendre le contrôle de votre Core!  
   −
C'est pour cela qu'il y a ACCESS_TOKEN! Ce dernier est lié à votre compte Spark Cloud et aussi barbare que le CORE ID.
+
C'est pour cela qu'il y a ACCESS_TOKEN! Ce dernier est lié à votre compte Particle Cloud et aussi barbare que le CORE ID.
    
Il est virtuellement impossible pour quelqu'un de trouver à la fois votre CORE_ID et le ACCESS_TOKEN pour piloter votre Core. Ouf!
 
Il est virtuellement impossible pour quelqu'un de trouver à la fois votre CORE_ID et le ACCESS_TOKEN pour piloter votre Core. Ouf!
   −
Pour identifier votre ACCESS_TOKEN, vous devez-vous connecter sur le Web IDE (build) de Spark en utilisant votre compte Spark Cloud.
+
Pour identifier votre ACCESS_TOKEN, vous devez-vous connecter sur le Web IDE (build) de Particle en utilisant votre compte Particle Cloud.
    
Vous trouverez l'information qui vous intéresse ici.
 
Vous trouverez l'information qui vous intéresse ici.
    
[[Fichier:Spark-Core-NetLed-Access_Token.jpg|640px]]
 
[[Fichier:Spark-Core-NetLed-Access_Token.jpg|640px]]
  −
=== CURL? KASEKO?!?! ===
  −
[[Fichier:Curl-Logo.jpg|280px]]<small><br />Source: [http://curl.haxx.se/ curl.haxx.se]</small>
  −
  −
  −
curl est une interface en ligne de commande destinée à récupérer le contenu d'une ressource accessible sur Internet (les réseaux informatiques en général). La ressource est désignée à l'aide d'une URL (comme https://api.spark.io/v1/devices/0123456789abcdef/led dans notre exemple). Contrairement à wget, curl est capable de créer et modifier des ressources et peut aussi être utiliser en tant que client REST.
  −
  −
C'est donc l'outil idéal pour tester vos API Spark... et et disponible en multiplateforme (Linux, MacOS, Windows, ect). Les plus perspicaces verront là l'opportunité d'utiliser Spark Core avec leur Raspberry Pi :-)
  −
  −
Voyez:
  −
* [https://api.spark.io/v1/devices/0123456789abcdef/led CURL] sur WikiPedia pour plus d'information.
  −
* [http://curl.haxx.se/ Le site officiel de Curl]
  −
* Installation rapide: <code>sudo apt-get install curl</code>
      
=== Et mon navigateur Internet? ===
 
=== Et mon navigateur Internet? ===
Ligne 175 : Ligne 175 :  
Dans l'image ci-dessus, nous avons encodé l'URL dans la barre de navigation, cette requête est de type GET (pour obtenir une ressource/information depuis un serveur WEB).
 
Dans l'image ci-dessus, nous avons encodé l'URL dans la barre de navigation, cette requête est de type GET (pour obtenir une ressource/information depuis un serveur WEB).
   −
Un GET, ce n'est pas un POST! Et Spark Cloud nous répond laconiquement "''variable not found''" puisqu'il n'a pas trouvé (1) le formulaire et (2) les variables <code>access_token</code> et <code>params</code> qu'il devrait contenir!
+
Un GET, ce n'est pas un POST! Et Particle Cloud nous répond laconiquement "''variable not found''" puisqu'il n'a pas trouvé (1) le formulaire et (2) les variables <code>access_token</code> et <code>params</code> qu'il devrait contenir!
    
=== Mon navigateur Internet + FORMULAIRE ===
 
=== Mon navigateur Internet + FORMULAIRE ===
Comme vous l'avez vu ci-dessus, le simple fait d'encoder une URL dans la barre de navigation n'est pas suffisant pour commander votre Spark Core.
+
Comme vous l'avez vu ci-dessus, le simple fait d'encoder une URL dans la barre de navigation n'est pas suffisant pour commander votre Particle Core.
    
Il y a de nombreuses technique de commandes possible via Curl, Python, C, Php, Ajax et bien d'autre... mais ici, nous allons nous concentrer sur l'approche la plus simple possible.
 
Il y a de nombreuses technique de commandes possible via Curl, Python, C, Php, Ajax et bien d'autre... mais ici, nous allons nous concentrer sur l'approche la plus simple possible.
Ligne 186 : Ligne 186 :  
# Charger la page HTML dans notre navigateur
 
# Charger la page HTML dans notre navigateur
 
# Remplir/modifier les données du formulaire
 
# Remplir/modifier les données du formulaire
# Appeler notre API via le Spark Cloud
+
# Appeler notre API via le Particle Cloud
    
==== Etape 1: Créer le formulaire ====
 
==== Etape 1: Créer le formulaire ====
Ligne 194 : Ligne 194 :  
Soyez très scrupuleux avec la syntaxe!!!!
 
Soyez très scrupuleux avec la syntaxe!!!!
   −
{{ambox|text=J'ai volontairement masqué une partie du CORE_ID avec des "''xxx''" et mon access_token avec des "''yyyyyyy''". Vous devrez les remplacer avec vos propres valeurs. Le but, c'est de jouer avec votre Spark Core, pas le mien ;-)<br />
+
{{ambox|text=J'ai volontairement masqué une partie du CORE_ID avec des "''xxx''" et mon access_token avec des "''yyyyyyy''". Vous devrez les remplacer avec vos propres valeurs. Le but, c'est de jouer avec votre Particle Core, pas le mien ;-)<br />
 
Nous avons déjà vu ci-avant comment retrouver votre CORE_ID et ACCESS_TOKEN.}}
 
Nous avons déjà vu ci-avant comment retrouver votre CORE_ID et ACCESS_TOKEN.}}
   Ligne 202 : Ligne 202 :  
<html>
 
<html>
 
<body>
 
<body>
<p style="width:480px">Exemple simpliste de FORMULAIRE POST permettant d'envoyer des donn&eacute;es vers votre Spark Core via le Spark Cloud</p>
+
<p style="width:480px">Exemple simpliste de FORMULAIRE POST permettant d'envoyer des donn&eacute;es vers votre Particle Core via le Particle Cloud</p>
 
<form id="form" name="form" action="https://api.spark.io/v1/devices/54xxxxxxxxxxxxxxxxxx67/led" method="post">
 
<form id="form" name="form" action="https://api.spark.io/v1/devices/54xxxxxxxxxxxxxxxxxx67/led" method="post">
 
<label id="label1" for="access_token">access_token</label>
 
<label id="label1" for="access_token">access_token</label>
Ligne 214 : Ligne 214 :  
</nowiki>
 
</nowiki>
   −
Une page comme celle-ci sur votre ordinateur ou SmartPhone doit pouvoir vous permettre de commander facilement des fonctionnalités de votre Spark Core ;-).
+
Une page comme celle-ci sur votre ordinateur ou SmartPhone doit pouvoir vous permettre de commander facilement des fonctionnalités de votre Particle Core ;-).
    
==== Etape 2: Charger la page ====  
 
==== Etape 2: Charger la page ====  
Ligne 232 : Ligne 232 :     
==== Etape 3: Envoyer la requête ====
 
==== Etape 3: Envoyer la requête ====
Lorsque vous pressez le bouton "Allez Hop!" (bouton de type Submit, ''soumettre''), la formulaire envoi un requête de type "POST" version l'api de Spark Cloud (l'URL mentionnée dans ''action'').
+
Lorsque vous pressez le bouton "Allez Hop!" (bouton de type Submit, ''soumettre''), la formulaire envoi un requête de type "POST" version l'api de Particle Cloud (l'URL mentionnée dans ''action'').
    
Cette requête contient tous les paramètres nécessaire... et cette fois, vous recevez une réponse positive :-)
 
Cette requête contient tous les paramètres nécessaire... et cette fois, vous recevez une réponse positive :-)
29 836

modifications

Menu de navigation