Lycée Felix Le Dantec - Lannion UTILISATION D'UNE BASE DE DONNÉES TSTI2D TP7 -

Lycée Felix Le Dantec - Lannion UTILISATION D'UNE BASE DE DONNÉES TSTI2D TP7 - 4h NOM : PRÉNOM : CLASSE : Condition : • Travail en binôme; durée 4 heures Matériel : • un ordinateur sous Ubuntu avec LAMP installé • un Arduino Uno, un shield ethernet, un capteur de température TMP36 Documents : • le sujet du TP • le cours sur les bases de données L'objectif du TP est de découvrir l'utilisation d'une base de données. 1. Installation de phpMyAdmin Pour créer nos bases de données nous utiliserons phpMyAdmin, un des outils les plus connus permettant de manipuler une base de données MySQL. ✔ Installez phpMyadmin en tapant sous la console la commande : sudo apt-get install phpmyadmin ✔ Avec la barre espace, cochez la case Apache 2 comme serveur web à reconfigurer. ✔ Répondez OUI à la question « faut-il configurer la base de données de phpmyadmin ? » ✔ Entrez le mot de passe sti2dsin. ✔ Entrez à nouveau le mot de passe sti2dsin (2 fois) pour la connexion à phpmyadmin. ✔ Démarrez Firefox et allez à l'url localhost/phpmyadmin/. Connectez-vous à la base de données en utilisant le compte utilisateur root, mot de passe sti2dsin. L'écran suivant apparaît : Tsti2D SIN – TP {TSIN_TP7 base de donnees.odt - page 1/12} 2. Construire une table dans la base de données Vous allez créer une base de données sti2d, composée d'une table maTable constituée de 5 champs, afin d'y enregistrer les données du formulaire vu dans le TP précédent. id nom prenom sexe an_naissance ✔ Cliquez sur l'onglet Bases de données puis créez une nouvelle base sti2d : ✔ Dans la partie gauche de l'écran, sélectionnez maintenant cette nouvelle base sti2d. Puis créez une nouvelle table maTable composée de 5 champs (5 colonnes) : ✔ Créez alors les 5 champs comme ci-dessous puis cliquez sur en bas de la fenêtre sur Sauvegarder. Voilà, la table maTable est prête. Il est possible d'écrire, lire ou modifier des données à partir de requêtes écrites en langage SQL. ✔ Cliquez sur l'onglet SQL puis sur INSERT et tapez la ligne ci-dessous. Cliquez alors sur l'onglet Afficher et vérifiez que vous venez bien d'insérer une première entrée dans la table. INSERT INTO `maTable`(`id`, `nom`, `prenom`, `sexe`, `an_naissance`) VALUES (1,"Dupond","pierre","M",1994) Nous allons, dans le chapitre suivant, voir qu'il est possible d'écrire dans la table à partir d'un programme en PHP. Tsti2D SIN – TP {TSIN_TP7 base de donnees.odt - page 2/12} cochez pour cette ligne la case AI (Auto- incrémentation) 5 Type des variables : - int (4 octets) : entier - varchar : chaîne de caractères (de 0 à 65535 caractères) - char : chaîne de caractères courte (de 0 à 255 caractères) - smallint (2 octets) : entier de -32768 à +32767 3. Écrire dans une base de données en PHP Vous allez réutiliser le formulaire du TP PHP. On vous donne ci- dessous le fichier index.html. ✔ Enregistrez ce fichier dans le dossier /var/www de votre poste. index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mon super site</title> </head> <body> <form action="enregistrement.php" method="post"> Nom: <input type="text" name="nom" size="20"/><br/> Prénom : <input type="text" name="prenom" size="20"/><br/> Sexe : <input type="radio" name="sexe" value="M" /> Masculin <input type="radio" name="sexe" value="F" /> Féminin <br/> Année de naissance : <select name="annee"> <option value="1992">1992</option> <option value="1993">1993</option> <option value="1994">1994</option> <option value="1995">1995</option> <option value="1996">1996</option> <option value="1997">1997</option> <option value="1998">1998</option> <option value="1999">1999</option> </select> <br/> <input type="submit" value="Envoyer"/><br/> </form> </body> </html> Le formulaire appelle un fichier enregistrement.php dont le code est donné ci-dessous. Un autre fichier identifiants.php contient les identifiants de connexion à la base de données, ce qui garantit une meilleure sécurité. ✔ Enregistrez ces deux fichiers dans le dossier /var/www de votre poste. enregistrement.php <?php /* récupération des données du formulaire */ $nom = $_POST['nom']; $prenom = $_POST['prenom']; $sexe = $_POST['sexe']; $an_naissance = $_POST['annee']; include ('identifiants.php'); /* connexion à la bdd */ $link = mysqli_connect($host,$user,$pass,$bdd); if (!$link) die('Echec de connexion au serveur de base de données : ' . mysqli_connect_error() . '(' . mysqli_connect_errno() . ') '); echo 'base connectée ... <br\>'; /* envoi d'une requête pour un encodage en UTF-8 */ $query= "SET NAMES UTF8"; Tsti2D SIN – TP {TSIN_TP7 base de donnees.odt - page 3/12} mysqli_query($link,$query); /* envoi d'une requête pour mettre à jour la bdd */ $query = "INSERT INTO maTable (nom,prenom,sexe,an_naissance) VALUES ('$nom','$prenom','$sexe','$an_naissance')"; mysqli_query($link,$query); /* déconnexion de la bdd */ mysqli_close($link); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Mon super site</title> </head> <body> <p>Pour revenir à la page formulaire, <a href="index.html">cliquez ici</a></p> </body> </html> identifiants.php <?php /* identifiants de connexion */ $host = "localhost"; $user = "root"; $pass = "sti2dsin"; $bdd = "sti2d"; ?> ✔ Ouvrez le formulaire dans Firefox en tapant l'adresse 127.0.0.1. Remplissez le formulaire puis cliquez sur Envoyer. Allez ensuite voir dans votre base de données à l'aide de phpMyadmin que les valeurs entrées ont bien été ajoutées à la table maTable de la bdd sti2d. ✔ Quel est le rôle de la ligne $nom = $_POST['nom'] ; ? ✔ Quelle ligne permet de se connecter à la bdd ? ✔ Quel est le rôle de la requête "INSERT INTO maTable (nom,prenom,sexe,an_naissance) VALUES ('$nom', '$prenom', '$sexe', '$an_naissance')" ? Tsti2D SIN – TP {TSIN_TP7 base de donnees.odt - page 4/12} 4. Lire des éléments d'une base de données en PHP Vous allez maintenant lire et afficher le contenu de la table dans une page web. On vous donne ci-dessous le fichier lecture.php. ✔ Enregistrez ce fichier dans le dossier /var/www de votre poste. Ouvrez ce fichier dans Firefox et vérifiez son bon fonctionnement. lecture.php <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>lecture de la bdd</title> </head> <body> <?php include ('identifiants.php'); /* connexion à la bdd */ $link = mysqli_connect($host,$user,$pass,$bdd); if (!$link) die('Echec de connexion au serveur de base de données : ' . mysqli_connect_error() . '(' . mysqli_connect_errno() . ') '); echo 'base connectée ... <br/>'; /* envoi d'une requête pour un encodage en UTF-8 */ $query= "SET NAMES UTF8"; mysqli_query($link,$query); /* envoi d'une requête pour lire la bdd */ $query = "SELECT * FROM maTable "; // requête SQL if ($reponse = mysqli_query($link, $query)) { $nb = mysqli_num_rows($reponse); /* nombre de lignes du résultat est stocké dans la variable php $ reponse */ echo 'Nombre de personnes dans la base : '.$nb.'<br/>'; if ($nb!=0) { while($ligne = mysqli_fetch_array($reponse)) { /*les valeurs de nom sont lues dans le tableau $ligne['nom'] et stockées dans la variable &nom mais ne sont pas conservées*/ $nom = $ligne['nom']; $prenom = $ligne['prenom']; echo $nom.' - '.$prenom.' - '.'<br />'; } } mysqli_free_result($reponse); // libération des résultats } mysqli_close($link); ?> </body> </html> ✔ Quel est le rôle de la ligne $query = "SELECT * FROM maTable "; ? ✔ Quel est le rôle de la ligne while($ligne = mysqli_fetch_array($reponse)) ? ✔ Modifiez le programme afin d'afficher à l'écran tous les champs de la table maTable. Testez et faîtes valider le bon fonctionnement par le professeur. Tsti2D SIN – TP {TSIN_TP7 base de donnees.odt - page 5/12} Validation prof : 5. Arduino et base de données L'objectif de ce chapitre est d'effectuer des mesures de température, à l'aide d'un Arduino et d'un capteur de température TMP36, toutes les 20 secondes, et d'enregistrer les mesures dans une base de données. Navigateur web Pour ce faire, vous devez : – connecter un shield ethernet sur un Arduino UNO ; – câbler un capteur de température TMP36 sur la broche A0 de l'Arduino ; – modifier le programme Arduino donné ci-dessous et programmer l'Arduino ; – créer une table temp dans la base sti2d de votre poste avec 4 champs : id, date, heure, temperature ; – écrire un programme enregistrement.php qui reçoit les données de l'Arduino et les enregistre dans la table temp de la base de données sti2d. Ce programme récupère aussi la date et l'heure du PC afin de les envoyer avec chaque valeur de température ; – écrire une page web lecture.php qui se connecte à cette base et affiche les mesures. ArduinoTemp.ino /* ArduinoTemp.ino Web client Ce programme se connecte à un serveur web et transmet en paramètre la valeur de la température relevée sur un capteur TMP36 connecté à A0 Circuit: * Ethernet shield sur broches 10, 11, 12, 13 * TMP36 sur broche A0 22 octobre 2014 Christophe Le Bris */ #include <SPI.h> #include <Ethernet.h> // Enter a MAC address for your controller below. // Newer Ethernet shields have a MAC address printed on a sticker on the shield byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress server(192,168,11,42); // @IP du serveur Web IPAddress ip(192,168,11,221); // @IP du shield ethernet sur la carte Arduino // Initialize the Ethernet client library // with the IP address and port of the server // that you want to connect to (port 80 is default for HTTP): EthernetClient client; Tsti2D SIN – TP {TSIN_TP7 base de donnees.odt - page 6/12} à modifier : le serveur web est votre PC à modifier : prendre l'@ MAC de votre shield à modifier : @IP que vous attribuez à uploads/Management/ cours-gratuit-com-id-10560.pdf

  • 41
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 28, 2022
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.4937MB