Programme + libraires serveur capteur web + index en html + commentaires
Dependencies: EthernetNetIf Serveur_web_capteur mbed
Fork of Serveur_web_pt2_V2_avec_index_html by
index.htm
- Committer:
- sedid
- Date:
- 2018-07-03
- Revision:
- 5:976ba14cbadc
- Parent:
- 4:bf74bc9d6add
File content as of revision 5:976ba14cbadc:
Texte a recopier sur sublimetext il y'aura plus de problèmes de commentaires. <!DOCTYPE html> <html> <head> <title>VentiBed</title> <meta charset="UTF-8"> <!--> style CSS définie pour la beauté du site est pour décider de l'emplacement du tableau et des boutons <--> <style> body { background-color: #0000FF; } table, th, td { border: 1px solid white; border-collapse: collapse; border-color: white ; margin: auto; } th, td { padding: 5px; text-align: left; } </style> </head> </style> <!--> le body c'est le corps du programme comme un main dans un programme en C la on définie 2 checkbox ave un id auto et un manu et enfin 2 boutons un avec in venti et l'autre rafraichir puis nous déclarons un tableau avec 6 céllules <--> <body text="#FDF5E6"> <h1 style="text-align:center; color:white">VentiBed </h1> <p><input type="checkbox" name="auto" id="auto" onclick="auto_click()" />Auto</p> <p><input type="checkbox" name="manu" id="manu" onclick="manu_click()" />Manuel</p> <p style="text-align:center;"><input type="button" id="venti" value="Activer Ventilateur"> </p> <p id="temp"></p> <p style="text-align:center;"><input id="rafraichir" type="button" value="Rafraichir"> <table id="tableau" style="width:75%"> <tr> <th rowspan="5">Temperature(°C)</th> <td id="cell1"></td> </tr> <tr> <td id="cell2"></td> </tr> <tr> <td id="cell3"></td> </tr> <tr> <td id="cell4"></td> </tr> <tr> <td id="cell5"></td> </tr> <tr> <th>Moyenne</th> <td id="cell6"></td> </tr> </table> </body> </html> <!--> On rentre dans le script en javascript du site <--> <script type="text/javascript"> var btn = document.querySelector('#venti'); var btn2 = document.querySelector('#rafraichir'); var checkauto = document.querySelector('#auto'); var checkmanu = document.querySelector('#manu'); var req=new XMLHttpRequest(); var req2= new XMLHttpRequest(); var data_recu=0; // Déclarations de toutes les variables nécéssaires déclarations des variables en variables globales var temperature; var temp; var tension; var etatauto; var tabtemperature; var min; var max; var tableau; var tab = []; var i=0; var stop; btn2.addEventListener('click', updateBtn2); //2 évenement pour les boutons qui permert d'appler la fonction updatebtn2 ou btn.addEventListener('click', updateBtn); //updatebtn si on click sur l'un des boutons function updateBtn2() { fcttableau(); // si on appuye sur le btn2 qui est le bouton rafraichir on appel la fonctions fcttableau. tab=[]; } function lecture (){ req.open('GET', '/rpc/capteur_temp/read', true); // Fonction lecture qui permet de lire la température avec la req.onreadystatechange = function() { // meme méthode que du test n°2 if(req.readyState == 4 && req.status == 200) { data_recu = req.responseText; temp= document.getElementById("temp"); tension=data_recu*3.3; // je récupère une valeur analogique entre 0 et 1 donc temperature = Math.round((30.7*tension-24.06)+2.6); // je l'a met en forme pour que la valeur analogique soit égale a la temp.innerHTML ='La temperature est de : ' + temperature + ' °C.'; // Température } } req.send(null); if(document.getElementById('auto').checked){ // si le mode auto est check on regarde que la température ne if(temperature>33){ val='0'; // dépasse pas les 33°C . si ça dépasse le ventilateur s'active req2.open('GET', '/rpc/venti/write '+val, true); // en mettant la commande a 0. req2.send(null); }else{ val='1'; req2.open('GET', '/rpc/venti/write '+val, true); // si la température est < 33°C le ventillateur ne s'active pas. req2.send(null); } } if(i>=5){ stop=1; btn2.disabled=false; // ce if permet de gerer le remplissage du tableau est de rafraichir les i=0; //valeurs du tableau quand le bouton rafraichir est activé. }else{ tabtemperature=temperature; tab.push(tabtemperature); i++; btn2.disabled=true; stop=0; } } function fcttableau (){ tableau= document.getElementById("cell1"); // utilisation de la méthode innerhtml qui permet de remplir les cases du tableau.innerHTML = tab[0] ; // tableau une par une avec les donnés récoltés tableau= document.getElementById("cell2"); // la méthode inner sert a écrire sur la page web ce qu'on a stocké. tableau.innerHTML = tab[1] ; tableau= document.getElementById("cell3"); tableau.innerHTML = tab[2] ; tableau= document.getElementById("cell4"); tableau.innerHTML = tab[3] ; tableau= document.getElementById("cell5"); tableau.innerHTML = tab[4] ; tableau= document.getElementById("cell6"); tableau.innerHTML = (tab[0] + tab[1]+ tab[2]+ tab[3]+ tab[4])/5 ; } function updateBtn() { if (btn.value === 'Activer Ventilateur') { // la même structure que sur le test n°2 avec les boutons btn.value = 'Desactiver Ventilateur'; // mais la c'est l'utilisation du mode manuel. val='0'; req.open('GET', '/rpc/venti/write '+val, true); req.send(null); } else { btn.value = 'Activer Ventilateur'; val='1'; req.open('GET', '/rpc/venti/write '+val, true); req.send(null); } } function manu_click(){ if (document.getElementById('manu').checked){ // permet d'activer le bouton "activer le ventillateur" ou le désactiver btn.disabled = false; // en foncton de la checkbox manuel si elle est cocher ou non checkauto.disabled = true; } else{ btn.disabled = true; checkauto.disabled = false; } } function auto_click(){ if (document.getElementById('auto').checked){ // permet de desactiver tout les boutons si c'est en mode automatique btn.disabled = true; // en focntion de la checkbox automatique si elle est cocher ou non checkmanu.disabled = true; etatauto=1; } else{ etatauto=0; btn.disabled = true; checkmanu.disabled = false; } } setInterval(lecture,1000); // appel de la fonction lecture toutes les 1sec. </script>