Sunteți pe pagina 1din 26

Partie I Etude de l’objet connecté Photon

Institut Supérieur d’Electronique et d’Automatique


Master Electronique, Energie électrique, Automatique
Orientation : Mesure et Traitement de l’Information

TP1

Compte rendu TP1 IOT

Présenté par :

 Amina KHALFI

Enseignant :

 Olivier HABERT

Promotion 2019/2020
Partie I Etude de l’objet connecté Photon

Liste des Abréviations


IoT : Internet of Things, (Internet des objets).

IDE: Integrated Development Environment (Environnement de développement intégré).

ID : Identifiant.

HTML: HyperText Markup Language (Langage Signalétique Hyper Text).

.
Partie I Etude de l’objet connecté Photon

Sommaire
Introduction ....................................................................................................................................................... 1
I. Objectif du TP ................................................................................................................................................. 1
I.1 Etude de l’objet connecté PHOTON de PARTICLE et de sa Plateforme .................................................... 1
I.1.1. Objet connecté ............................................................................................................................... 1
I.2 Les plateformes Internet des Objets ...................................................................................................... 1
I.2.1 Définitions ......................................................................................................................................... 1
I.3 Présentation du module photon .................................................................................................................... 2
I .4 Création d’un compte et configuration du photon ................................................................................. 3
I.4.1. Configuration de module Photon ................................................................................................... 3
I .4.2 Particle web IDE ................................................................................................................. 4
Premier Programme avec le Web IDE .............................................................................................................. 5
I.5.1 Clignotement de la LED bleue intégrée et connectée sue le port D7 ................................................... 5
I.5.1 Interfaçage d’un capteur, mesure et publication des mesures ............................................. 5
I.6. Utilisation d’un module bouton pour la publication des mesures ......................................................... 7
I.7. Affichage des données capteurs dans un Dashboard ............................................................................. 8
II. communication entre deux photon par le cloud ........................................................................................ 9
II.1. Modification du programme pour la publication de la température a chaque appuie sur le bouton .... 11
II.2. Test de la luminosité de la led ............................................................................................................. 11
III. Pilotage par une page WEB ................................................................................................................. 12
III. 1 Affichage d’une variable dans une page Web .................................................................................... 13
III.2. Affichage de la valeur de température, pression et altitude.................................................................... 15
III.3. Contrôle de la LED avec JavaScript .................................................................................................. 16
Envoi-réception de données par Appareils mobiles........................................................................................ 17
V. PubNub, une plateforme temps réel pour objets connectés...................................................................... 19
V.1 la publication d’un message sur la plateforme PubNub en passant par le Canal (Channel) ................ 20
V .2 Réception d’un message par un objet – souscription à un canal de PubNub ...................................... 21
v.3 Lecture de l’historique des messages .................................................................................................... 21
V.4 Désérialisation d’un document JSON sous Arduino .............................................................................. 22
Partie I Etude de l’objet connecté Photon

Introduction

I. Objectif du TP
L’objectif de ce TP est de de découvrir la mise en œuvre de la communication d’objets à travers un
Cloud et de l’interaction de ces objets avec des applications Web et des services Web.et cela par
l’utilisation d’un objet connecté professionnel et de ses fonctionnalité Cloud.

I.1 Etude de l’objet connecté PHOTON de PARTICLE et de sa Plateforme


I.1.1. Objet connecté

Les objets connectés sont des objets électroniques connectés sans fil à un réseau d’information
appelé internet des Objets (IoT). Leurs rôles consistent à émettre et/ou recevoir des données, pour les
stocker, les traiter ou les afficher. Ces données peuvent représenter des données brutes, des indicateurs
de performance ou des instructions et commandes vers des actionneurs ou robots.

Figure 1:Architecture de l’internet des objets connectés

I.2 Les plateformes Internet des Objets


I.2.1 Définitions

Une plate-forme IoT est une interface technique qui permet de connecter plusieurs objets et
gérer leur diversité. Elle facilite la communication entre ces derniers et assure la gestion des différents
périphériques et protocoles de communication complexe et variés. Elle est aussi capable d’analyser
les données en fournissant des bibliothèques d’algorithmes, des requêtes, des tableaux de bords et des
outils préconstruits.
1
Partie I Etude de l’objet connecté Photon

Figure 3 : Particle Cloud.

I.3 Présentation du module photon


Dans ce tp nous avons utilisé le module Photon de Particle qui est une carte de développement
IoT Wifi miniature basée sur un microcontrôleur ARM Cortex M3 à 120 MHz et sur un module
Wifi BCM43362.
Le Photon est destiné à la création de projets impliquant des produits connectés et se programme
facilement avec le logiciel Particle IDE en utilisant le même langage que les cartes ArduinoTM. La
figure suivante représente une image réelle de module Photon utilisé [3].

Figure 4: Particle Photon.

Le module photon possède18 pins d’Entrée-Sortie digitales avec 8 entrées analogiques, de plus il
possède les périphériques suivants :

 2 sorties DAC.
 2 modules SPI.
2
Partie I Etude de l’objet connecté Photon

 Un module I2C.
 Un module USB.
 9 sorties PWM

I .4 Création d’un compte et configuration du photon


Dans un premier temps il faut créer un compte sur le site https://www.particle.io

Figure 5 : création d’un compte particle

I.4.1. Configuration de module Photon

Le Module Photon peut être configuré de plusieurs façons [4] :

 Directement en ligne via une interface Web avec sauvegarde dans un Cloud,
 A partir d’une application installer sur Smartphone iOS, Android et Windows Mobile.

Dans notre cas on utiliser la configuration du photon via une interface web

Configuration par Web

 Allez vers le lien setup.particle.io.


 Cliquez sur « setup à photon ».
 Télécharger le fichier html.
 Connectez votre Ordinateur au Photon.

PS : Il faut savoir que la LED du photon doit clignoter en bleu foncé. C’est ce qu’on appelle le mode
écoute (listening) du photon. Si ce n’est pas le cas, c’est que ce dernier est déjà configuré. Il faut

3
Partie I Etude de l’objet connecté Photon

d’abord le réinitialiser. Pour cela il faut maintenir le bouton setup enfoncé pendant trois seconds
jusqu’à ce que la LED commence à clignoter en bleu.

 A partir de la liste du réseau wifi, sélectionner le réseau auquel vous souhaiter connecter
votre photon.
 Renommer le photon et celui-ci est maintenant configuré

Une fois le module configuré, un identifiant ID et un jeton d’accès « accesstoken » uniques seront
attribués au module. Ces deux attributs vont permettre par la suite d’accéder à notre module photon.

Figure 6 : Photon configuré lors du TP

I .4.2 Particle web IDE


Afin de pouvoir développer compiler ou téleverser sur notre photon on utilise le Particle IDE qui est
un environnement de développement intégré, accessible à travers la plupart des navigateurs web, cet
environnement est similaire à celui d’Arduino ce qui le rend simple à utiliser. La figure suivante
illustre l’interface IDE

Figure 7: Interface graphique web IDE.

4
Partie I Etude de l’objet connecté Photon

Premier Programme avec le Web IDE


I.5.1 Clignotement de la LED bleue intégrée et connectée sue le port D7

La structure du programme est similaire que arduino tout d’abord en commence par la déclaration
des variables, après dans le setup () on initialise la configuration du programme et en dernier On
utilise une boucle Loop () pour exécuter le programme cette dernière sera exécuter en permanant là
où la fonction digitalWrite est déclarer puis quand l’exécution est terminée on la ré-exécute

Après avoir effectué notre programme on lance la compilation puis on télverse le programme sur le
photon et on va remarquer que la led du port D7 commence à clignoter

Figure 8 : Programme clignotement d’une led

I.5.1 Interfaçage d’un capteur, mesure et publication des mesures


Dans cette partie nous allons utiliser une carte baromètre Grove a basée sur le capteur BMP280 on
banche le capteur sur la carte Shield du photon pour déterminer la pression, la température ainsi que
l’altitude .la communication se fait en I2C par le connecteur Grove.

5
Partie I Etude de l’objet connecté Photon

Figure 9 : photon-baromètre BMP20

Pour la partie programmation on commence d’abord par ajouter les bibliothèques du capteur BMP-
20 et la fonction d’initialisation

Pour l’affichage des mesures de température et lire la mesure à partir du capteur on a utilisé la
fonction particle. Publish dans le programme principale (boucle loop) qui permet la publication des
données
Ps : les valeurs envoyées sont en forme float il faut les convertir en string pour pouvoir publier
Afin de visualiser les mesures il faut aller à l’ongle event sur la plateforme Web de partcile

6
Partie I Etude de l’objet connecté Photon

I.6. Utilisation d’un module bouton pour la publication des mesures


Dans cette partie on va utiliser un module Grove bouton et le connecter sur un connecteur digital du
shield(c’est le fil jaune qui porte le signal de bouton et qui doit être connecté sur l’entrée digital) .

Figure 10 : module bouton

On gardera la même structure on rajoute juste la lecture de l’état du bouton et la condition pour la
publication du message.

Scripte état du bouton :

Script condition pour la publication du message :

7
Partie I Etude de l’objet connecté Photon

I.7. Affichage des données capteurs dans un Dashboard

Dans cette partie afin d’afficher les données d’un capteur on crée un tableau de bord (Dashboard) et
à l’aide d’un webhook on facilite l’analyse et on affiche les données graphique (pression et
température) et cela pour faire un pont entre réel et le digital
Etape suivis :
Création d’un webhook pour l’envoie des données ensuite l’utilisation d’un thigspeak pour le
stockage et la collection des données

Configuration Thingspeak

Configuration webhook

8
Partie I Etude de l’objet connecté Photon

Affichage des graphes

II. communication entre deux photon par le cloud


Dans ce présent chapitre, nous allons faire la communication entre nos objets connectés qui
sont les deux photon , ces deniers seront connectés entre eux via un réseau internet (Cloud particle)
afin d’échanger des informations entre eux pour allumer ou éteindre une led .

Particle Cloud

Figure 11 : connexion entre les deux photons

9
Partie I Etude de l’objet connecté Photon

Programme publiant

Deux fonctions sont utilisées. Pour créer des évènements, nous utilisons le particle. Publish () et
afin d’écouter les évènements nous utilisons particle. Subscribe (), fonctions incluses dans la
bibliothèque du particle.

Le programme ci-dessous va envoyer alternativement ON et OFF à chaque appui sur le bouton. (D2
c’est l’entée digital du bouton) :

Ensuite passant au programme principale : On envoie le message ON dans le canal CabalMTI7


lorsque on appuie sur le bouton (état 1), et on envoie OFF a l’état 0.

Programme souscripteur

Ce dernier va recevoir le message envoyer par le photon publiant, et à partir du message reçu on va
contrôler la LED

10
Partie I Etude de l’objet connecté Photon

II.1. Modification du programme pour la publication de la température a chaque appuie


sur le bouton

Pour envoyer un évènement nous utilisons la syntaxe suivante :

II.2. Test de la luminosité de la led

Pour que notre led s’allume selon sa luminosité il faut fixer un seuil :

Luminosité < seuil : allumer la LED


Luminosité > seuil : éteindre la LED

11
Partie I Etude de l’objet connecté Photon

III. Pilotage par une page WEB


Dans cette partie Nous allons créer une page web en html pour commander la led pour qu’elle puisse
s’allumer ou s’éteindre …etc. La figure ci-dessous représente le principe de commande via une page
html.

Utilisation de la fonction Particl.function


Particle.function permet d’exposer une fonction via le Cloud pour pouvoir l’appeler
avec POST /v1/devices/{DEVICE_ID} /{FUNCTION}. Cette dernière permet au périphérique d’être
exécuter à la demande de l’api Cloud.

Création de la page html

Créons maintenant une interface via une page Web pour envoyer des commandes au particle
Cloud

Exemple d’envoi de la commande « allumer ou éteindre led »

"https://api.particle.io/v1/devices/330019000447363339343638/maled?access_token=c2e2ba3215a757d4e22ab52a4782
e71afd26a5ea"method="POST"target="hiddenFrame">

12
Partie I Etude de l’objet connecté Photon

Ce lien représente l’adresse ou notre led va être envoyée (Cloud Particle), lorsque cette dernière sera
transmise vers le Cloud particle, le photon va souscrire l’information et il va l’envoyer vers notre led

Le https, veut dire que la commande envoyée est sécurisée est qu’elle ne sera pas lue par
n’importe quel utilisateur.

Interface HTML

Figure 11 : Interface html

III. 1 Affichage d’une variable dans une page Web

Dans cette partie on va essayer d’afficher les données d’une photo sur une page web

Dans un premier temps on commence à écrire un code html pour afficher la température

13
Partie I Etude de l’objet connecté Photon

Résultats

On remarque qu’il ne se passe rien quand on appuie sur le bouton, alors il faut ajouter une partie
JavaScript.
On commence d’abord par extraire l’Object afin d’avoir la bonne variable de la température, puis
on va connecter le photon avec cette page de commande par access Token, la variable et l’ID du
photon.

Résultat sur notre interface HTML

14
Partie I Etude de l’objet connecté Photon

III.2. Affichage de la valeur de température, pression et altitude


En se basant sur le programme précèdent on fait la lecture des valeurs (température, pression,
altitude) pour cela il faut à extraire à chaque fois la variable qu’on veut lire une par une, en générant
une modification sur le nom de la variable dans la partie JavaScript et ajouter aussi les variables
désirées dans le firmware du photon.

Programme des trois variables

15
Partie I Etude de l’objet connecté Photon

Programmes sur les cloud

Résultat sur l’interface web

III.3. Contrôle de la LED avec JavaScript


Dans cette partie on va faire le contrôle de la led mais avec du JavaScript en utilisant une fonction
d’appel Ajax $. Post). Ajax permet de modifier partiellement la page affichée par le navigateur pour
la mettre à jour sans avoir à recharger la page entière.
Par exemple le contenu d'un champ de formulaire peut être changé, sans avoir à recharger la page
avec le titre, les images …. Et cela en utilisant des requêtes dans la bibliothèque JQUERT.

16
Partie I Etude de l’objet connecté Photon

On se base sur le même programme utilisé précédemment

Interface HTML

Envoie et reception des données par apreil mobil

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::: :
: : : : : :: : : :
: ::::: ²
² :::::::::::::::::::::::::::::::::::::::::::::
::::

Envoi-réception de données par Appareils mobiles


Dans cette partie nous allons voir comment envoyer des données vers un canal IOT à partir d’une
application Android, appeler une fonction Particule ou réagir à un événement IOT sur un appareil
mobile. Pour cela il faut passer par plusieurs étapes

Dans un premier temps il faut créer une interface Android avec deux bouton pour lancer une
tache asynchrone et pour afficher les caractéristiques du Particle et un texte viewer pour
afficher les caractéristiques du photon (nom…)
Il ensuite il faut faire l’autorisation pour accès à internet en rajoutons la ligne ci-dessous

<uses-permission android:name="android.permission.INTERNE

17
Partie I Etude de l’objet connecté Photon

Après on devrais importer toute les bibliothèque nécessaire :

import java.io.IOException;
import android.os.AsyncTask;
import io.particle.android.sdk.cloud.ParticleCloudSDK;
import io.particle.android.sdk.cloud.ParticleDevice;
import io.particle.android.sdk.cloud.ParticleEvent;
import io.particle.android.sdk.cloud.ParticleEventHandler;
import io.particle.android.sdk.cloud.exceptions.ParticleCloudException;
import io.particle.android.sdk.utils.Toaster;

Afin de récupérer toutes les données de l’objet Photon actif dans notre compte on décale la classe
et cela en Déclarant une classe dérivée de la classe AsyncTask nommez GetAppareil
Après cela il faut Créer l’instance de la classe et faire l’exécution de la tâche asynchrone

Résultat (Affichage des information)

18
Partie I Etude de l’objet connecté Photon

V. PubNub, une plateforme temps réel pour objets connectés


Dans cette seconde partie du TP on va utiliser pubnub qui est une plateforme d’Object connecté qui
présente la particularité d’être temps réel. Et d’avoir les liens possibles vers d’autre platforme, dans
notre cas on va faire des application arduino qui serons connecté à cette dernière pour pouvoir
analyser, visualiser et créer des charts en ligne. On commence d’abord par créer un compte avec notre
email sur le site PubNub. A la création du compte on aura des clés qui vont nous permettre la
publication et la souscription au canal d’après un Arduino

Pour la connexion d’un Object a pubnub Chaque Appareil doit avoir une adresse MAC (Media
Access Control) unique sur le réseau, ce qui permettra au serveur DHCP de l’université de lui affecter
automatiquement une adresse IP.
Adresse Ip :

Boîte n°7 {hardware ethernet 90: a2: da:11:00:29; fixed-address 100.66.69.97;}

19
Partie I Etude de l’objet connecté Photon

V.1 la publication d’un message sur la plateforme PubNub en passant par le


Canal (Channel)
Nous allons maintenant lancer la publication d’un message sur la plateforme PubNub en passant par
le Canal (Channel) CanalMTI1 définit précédemment
Au niveaux du programme arduion il faut inclure la bibliothèque pubnub

#include <SPI.h>
#include <Ethernet2.h>
#include <PubNub.h>

Apres avoir fais la connéxion on recoit le message : { "BONJOUR": "Je suis l'Arduino qui publie"
} dans le canal PUbnub

20
Partie I Etude de l’objet connecté Photon

V .2 Réception d’un message par un objet – souscription à un canal de PubNub

Nous allons maintenant connecter un second Arduion (se mettre sur un seul canal avec un binôme)
qui va souscrire au canal CanalMTI7 de Pubnub et cela pour pouvoir envoyer et recevoir des
messages. On doit aussi échanger nos clé (configuration).
On remarque que dans un premier il affiche (attente de réception) puis dès qu’il reçois le message il
l’affiche .

v.3 Lecture de l’historique des messages

L’affichage de l’historique se fait par l’activation de la rubrique (Storage &playback) on cliquant


sur key.
Pour pouvoir récupérer l’historique on écrit un code dans la partie setup pour une exécution unique

21
Partie I Etude de l’objet connecté Photon

Résultats

V.4 Désérialisation d’un document JSON sous Arduino

En se basant sur programme suivant, on va lire les mesures du capteurs disponibles BMP280, le
publier en JSON et à réception, les désérialiser et les afficher dans le moniteur série de l’Arduino
Souscripteur.

Programme
Cette partie représente la lecture de la température

#include <Adafruit_BMP280.h> Adafruit_BMP280 bme; // I2C Temp =


bme.readTemperature();

Une fois la lecture de la température est faite on fait la conversion de cette valeur en string

String tempStr = String(Temp); strdata = "{\"eon\":{\"Temperature\":"; String


tempStr = String(Temp); String msgString = strdata + tempStr + "}}";

Après on l’envoie sur le canal

l = msgString.length()+1; mess = (char *)malloc(l);


msgString.toCharArray(mess,l); Serial.println(mess); client =
PubNub.publish(channel,mess); free(mess);

Résultat

22
Partie I Etude de l’objet connecté Photon

Conclusion

Dans le cadre de ce TP nous avons acquis plusieurs compétences notamment sur les IOT, le
développement des objets connectés (publier et souscrire des données), l’Arduino, la robotique, le
langage de balisage conçu pour représenter les pages web (HTML) ainsi que langage informatique
java script. Ça nous montre aussi les possibilités qu’offrent ces technologies, dans le large Intervalle
et aussi que dans un avenir très proche, l’internet des objets connectés sera devenu incontournable,
non seulement dans le monde de la technologie, mais également dans la révolution des industries 4.0
qui sont en cours de développer cet aspect

23

S-ar putea să vă placă și