getpost27
Bac STI2D

TP n°34 : Méthodes Get et Post

Noms :  
Centre d'intérêt : CI 5 Communication entre systèmes
Classe : Term Sti2d Sin
Id programme : sin15, sin31  
Conditions : Seul , durée  3 heures.
Matériel : - un ordinateur;

Logiciel : - le logiciel Netbeans;
- Utiliser le navigateur chrome;
Document :  

I. Objectifs

  • Etudier les méthodes GET et POST en html;
  • Mettre en oeuvre les datas au format JSON;
  • Envoyer et recevoir des données.

II. Afficher une requête

Le lien ci-dessous renvoie la température d'une salle :

http://sciencesappliquees.com/templates/php/temp.php

Réaliser une page html qui affiche la température dans un div toutes les secondes.

Aide : 

  • Utiliser innerHTML pour mettre la valeur de la température dans le div;
  • Utiliser la fonction XMLHttpRequest() avec la script ci-dessous pour récupérer la température  1 fois sur le serveur:
<script type="text/javascript">
//declaration de l'objet pour la requete
var maRequete = new XMLHttpRequest();
//l'adresse email du serveur
var url = "http://sciencesappliquees.com/templates/php/temp.php";

//gestion de la reponse du serveur
maRequete.onload = function() {
//reponse du serveur
alert(this.responseText); //Affiche la reponse du seveur dans une fenêtre "alert"

};//fin de la fonction reponse (get ou post, adresse , asynchrone)

//Choisir le type de requete
maRequete.open("GET", url, true);
//envoyer la requete au serveur
maRequete.send();
</script>
  • Utiliser la fonction XMLHttpRequest() avec la script ci-dessous pour récupérer la température  toutes les 2 secondes sur le serveur: 
<script>
function lancerRequete(){
var maRequete = null; //initialiser l'objet

//déclare l'objet requete
if(window.XMLHttpRequest){
maRequete = new XMLHttpRequest();
}

//url du serveur
var url = "http://sciencesappliquees.com/templates/php/temp.php";

//Choisir le type de requete
maRequete.open("GET", url, true);
//gestion de la reponse du serveur
maRequete.onreadystatechange = function(){
if(maRequete.readyState == 4){
//affiche la réponse du serveur
alert(maRequete.responseText);

}
}

   //envoyer la requete au serveur
maRequete.send();

//relance la fonction au bout de 2 secondes
setTimeout('lancerRequete()', 2000);
}
//lance la fonction
lancerRequete();
</script>

 

Faire valider votre travail par le professeur.

III. La requête dans une Jauge

A l'aide de la bibliothèque RGraph, afficher la température dans une jauge toutes les secondes.

Aide :

  • Il faut ajouter dans le body de la page html une balise canvas avec l'id "monCanvas" pour afficher la jauge à l'intérieur :
<canvas id="monCanvas" width="100" height="400">
[No canvas support]
</canvas>
  • Pour utiliser RGraph, il faut importer les librairies suivantes :

<script src="https://www.rgraph.net/libraries/RGraph.common.core.js" ></script>
<script src="https://www.rgraph.net/libraries/RGraph.thermometer.js" ></script>

  • Pour créer l'objet jauge, vous devez utilisez le script ci-dessous :
<script type="text/javascript">
var thermometre = new RGraph.Thermometer({
   id: 'monCanvas',
   min: 0,
   max: 30,
   value: 20.3,
   options: {
   }
   }).draw();

</script>
  • Pour mettre à jour la valeur de la jauge, vous devez utiliser les instructions suivantes :
thermometre.value = laNouvelleValeur;
RGraph.Redraw();

 

Faire valider votre travail par le professeur. 

 

IV. La requête Get

Nous avons 2 "input text" sur une page html :

<label>Température</label><input type="text" name="temp" id="temp" value="19"><label>°C</label><br/>

<label>humidité</label><input type="text" name="humi" id="humi" value="45"><label>%</label>

Nous souhaitons envoyer leur contenu, au serveur ci-dessous, par la méthode Get.

http://sciencesappliquees.com/templates/php/metGet.php 

Réaliser le programme. 

Aide : 

  • Pour la méthode Get, l'url doit être sous la forme : adresseServeur?parametre1=valeur1&parametre2=valeur2
  • Pour récupérer la valeur d'un "input text", il faut utiliser l'instruction document.getElementById("idDuDiv").value 

 Faire valider votre travail par le professeur. 

 

V. La requête Post

Nous avons 2 "input text" sur une page html :

<label>Température</label><input type="text" name="temp" id="temp" value="19"><label>°C</label><br/>

<label>humidité</label><input type="text" name="humi" id="humi" value="45"><label>%</label>

Nous souhaitons envoyer leur contenu, au serveur ci-dessous, par la méthode Post.

http://sciencesappliquees.com/templates/php/metPost.php 

Réaliser le programme. 

Aide : 

  • Utiliser la fonction XMLHttpRequest() avec la script ci-dessous pour récupérer la température  1 fois sur le serveur:
<script>

   //déclaration de l'objet contenant les données à envoyer.
   var data = "parametre1=valeur1&parametre2=valeur2";

//declaration de l'objet pour la requete   
var maRequete = new XMLHttpRequest();

//url du serveur
var url = "adresse de la page";
//gestion de la reponse du serveur
maRequete.onreadystatechange = function(){
if(maRequete.readyState == 4){
//affiche la réponse du serveur
alert(maRequete.responseText);
}
}

    //Choisir le type de requete
maRequete.open("POST", url, true);
    //Entête de la requete pour la méthode POST
maRequete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   //envoyer la requete au serveur
maRequete.send(data);

</script>

Faire valider votre travail par le professeur. 

 

VI. Les datas au format JSON

Donner une définition du JSON.

Le serveur ci-dessous envoie les datas au format JSON.

http://sciencesappliquees.com/templates/php/json.php

Elles sont sous la forme suivante :

{
  "temp":19.07,
  "humi":27,
  "led1":"OFF"
}

Réaliser une page html qui affiche les 3 grandeurs dans 3 div toutes les secondes.

Aide :

  • Pour convertir la "responseText" en JSON, il faut utiliser l'instruction suivante : 
var data = JSON.parse(maRequete.responseText);
  • Pour récupérer la valeur d'une grandeur d'un JSON, par exemple "temp", il faut utiliser : data.temp  

Faire valider votre travail par le professeur. 

 

VII. Conclusion

 

 

 

alim13
Bac STI2D

TP n°31 : Le Bus I2C et SPI

Noms :  
Centre d'intérêt : CI 2 Instrumentation / Acquisition et restitution de grandeurs physiques
Classe : Term Sti2d Sin
Id programme : sin15, sin31  
Conditions : Par 2 , durée  3 heures.
Matériel : - un ordinateur;

Logiciel : - le logiciel Proteus;
- Utiliser le navigateur chrome;
Document :  

I. Objectifs

  • Etudier le bus I2C et Spi.
  1. Présentation

Le but de ce TP est de connaitre la température mesurée par un capteur de température connecté sur un bus I2C.

 

  1. Rappels concernant le bus I2C

  • Ce bus utilise trois lignes pour communiquer: , et la

. Puisqu'il utilise une horloge et une ligne de donnée, ce bus est un bus

_________________________ .

 

  • La transmission se fait de la manière suivante:

    • Condition de départ: Le maitre passe SDA à l'état bas quand SCL est à l'état haut.

    • Transmission de l'adresse du récepteur sur 7 bits (valeur possible de 0 à 127), le 8éme bit indique si le maitre fait une opération de (niveau__) ou ____________________ (niveau__).

    • Acquittement du récepteur. Celui-ci force un état bas sur la ligne SDA sur la 9éme impulsion d'horloge générée par le maître. Si le récepteur n'acquitte pas, la ligne SDA reste au niveau 1 à cause de la résistance de rappel au +Vcc.

    • Transmission d'un octet de donnée (bit de poids fort en premier).

    • Acquittement du récepteur. Le maitre peut alors continuer à transmettre ses données.

    • Condition d'arrêt: Le maître force le signal SDA à l'état haut quand SCL est à l'état haut.

Les principales fonctions disponibles pour gérer le bus I2C des cartes Arduino sont exposées dans un document ressources.

 

  1. Etude du capteur de température DS1621 : Afin d'utiliser ce capteur, nous allons commencer par

étudier sa documentation technique.

 

  1. Précisez la gamme de température mesurable par le DS 1621:

 

  1. Précisez la gamme d'alimentation acceptable par ce circuit:

 

  1. La température est renvoyée sous quelle forme?

 

  1. Complétez le tableau suivant:

 

Broche

Symbole

Description

1

SDA

 

2

SCL

 

3

TOUT

 

4

GND

 

5

A2

 

6

A1

 

7

A0

 

8

VDD

 

 

 

 

 

 

 

  1. Soit le tableau suivant présentant le code délivré en fonction de la température.

 

 

 

En remarquant que le code utilisé est le code complément à deux, complétez les deux lignes suivantes.

 

- +15,5°C : - -8,0°C :

- : 0001 1101 0000 0000 - : 1011 1100 1000 0000

 

  1. Que faut-il garder pour faire une lecture de la température au degré prés ?

 

  1. Donnez les deux modes de fonctionnement du DS1621.

 

-
-

  1. Donnez l'adresse I2C générique (en fonction de A2A1A0) d'un DS1621.

 

  1. En supposant que le DS1621 est configuré en mode « conversion unique sur demande ».

 Pour lire une température dans ce mode il faut donc envoyer tout d'abord l'ordre « Start Convert T », compléter avec les valeurs adéquates les tableaux des chronogrammes suivants.

 

 

 D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

 

 Dans un second temps, il faut envoyer l'ordre « Read Temperature ». Complétez les deux premiers octets à envoyer ci-dessous.

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

 

D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

 

 

  

D7

D6

D5

D4

D3

D2

D1

D0

 

 

 

 

 

 

 

 

 

En supposant que la température renvoyée par le capteur est de 23,5°C, compléter la deuxième série de valeurs de la page précédente.

  1. Câblage du circuit DS1621 sur une carte Arduino

On désire que le DS1621 soit à l'adresse la plus basse possible.

  1. A partir de la notice et à l'aide du logiciel Fritzing (à récupérer sur le disque réseau), dessiner le dessin de la platine d'essai ou apparaitront: la carte arduino, la plaque de prototypage, le DS1621 et les deux résistances, ensuite dessiner les fils de câblage. (Pour obtenir des fils de câblage souples vérifier que l'option "Curvy wires and legs" placée dans Edition->Préférences -> vue de la platine d'essai est validée.

 

  1. Réaliser le câblage conformément au dessin que vous avez réalisé.

 

  1. Mise en œuvre du circuit

 

a. Avant d'utiliser ce circuit, il est nécessaire de l'initialiser, le début du programme pour la carte Arduino doit être le suivant:

#include <Wire.h> //___________________________________________________________

 

#define DS1621_ID 0b_ _ _ _ _ _ _ //Adresse du composant I2C sur 7 Bits

void setup() {

Serial.begin(9600); //________________________________________________________

Wire.begin(); //_____________________________________________________________________________

Wire.beginTransmission(DS1621_ID); //____________________________________________________________

Wire.write(0xAC); //_________________________________________________________________________

Wire.write(0x01); // ________________________________________________________________________

Wire.endTransmission(); //____________________________________________________________

}

void loop() {

……

Commentez avec précision les lignes du programme ci-dessus, notamment le choix des valeurs 0xAC et 0x01.

 

b. Ecrivez un programme qui envoie toutes les secondes sur le port série les deux octets de température du DS1621, pour cela s'aider des réponses à la question 3) i.

 

c. Testez le programme et vérifier la cohérence des valeurs obtenues.

 

d. Modifiez le programme précédent afin que la température soit affichée à +-0,5° par un nombre en virgule flottante.

 

  1. Relevés des signaux SCL et SDA

 

a. Relevez à l'aide d'un oscilloscope les signaux SCL et SDA pour les deux premiers octets de chaque mesure.

 

b. Sur les relevés précédents, repérez: les phases de Start et de Stop, les phases d'acquittement et les valeurs transmises.

 

c. Enlevez le circuit et par un relevé, montrez qu'il n'y a plus d'acquittement de la part de l'esclave.

 

d. Modifiez ce qui est nécessaire afin que le DS1621 soit à l'adresse la plus haute possible, montrez le bon fonctionnement par un relevé adéquat.

 

  1. Pour aller plus loin

D'après la notice du DS1621, il est possible d'obtenir une précision à -+0,1°, modifiez le programme afin d'obtenir cette précision de mesure.

 

III. Bus SPI

Mettre en oeuvre un bus spi en utilisant la carte arduino et un afficheur lcd SPI.

 

IV. Conclusion

Comparer le bus i2c et spi.

alim13
Bac STI2D

TP n°30 : Mcc, Hacheur, Pont en H

Noms :  
Centre d'intérêt : CI 2 Instrumentation / Acquisition et restitution de grandeurs physiques
Classe : Term Sti2d Sin
Id programme : sin15, sin31  
Conditions : Seul , durée  3 heures.
Matériel : - un ordinateur;

Logiciel : - le logiciel Proteus;
- Utiliser le navigateur chrome;
Document :  

I. Objectifs

  • Etudier le moteur à courant continu (MCC)
  • Mettre en oeuvre un hacheur et un pont en H.

Faire le TP suivant :

http://mb13010.free.fr/TPs/TPs-1SI-SEQUENCE4/TP-proteusMCC.pdf

lcd4323
Bac STI2D

TP n°33 : Afficheur LCD

Noms :  
Centre d'intérêt : CI 2 Instrumentation / Acquisition et restitution de grandeurs physiques
Classe : Sti2d Sin
Id programme : sin15, sin31  
Conditions : Seul , durée  3 heures.
Matériel :

- PC
une carte Arduino Uno
- un shield "
clavier-lcd" 

Logiciels : - Arduino ide
- Utiliser le navigateur chrome
Document : 

Cours sur l'afficheur LCD

I. Objectifs

  • Etudier un afficheur LCD;
  • Programmer en C++.

radar123
Bac STI2D

TP n°24 : Serveur Web
Raspberry pi

Noms :  
Centre d'intérêt : CI 2 Instrumentation / Acquisition et restitution de grandeurs physiques
Classe : Term Sti2d Sin
Id programme : sin15, sin31  
Conditions : Par 2 , durée  3 heures.
Matériel : - un ordinateur;
Logiciel : - nano
- terminal de commande
Document :  

I. Objectifs

  • Mettre en place un serveur Php;
  • Gérer les GPIO.


Logo Lycée Paul Sérusier

J'enseigne au
Lycée Paul SERUSIER
Avenue de Waldkappel
29270 CARHAIX PLOUGUER
Tél : 02 98 99 29 29
Site : www.lycee-serusier.fr

footer2

Richard GAUTHIER
Professeur de Physique Appliquée
Certification ISN
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.

 

 


Mentions légales


Plan du site

  Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.