TP SIN Programmation Support : Carte Arduino et Shield Ethernet

Documents pareils
ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

TP JAVASCRIPT OMI4 TP5 SRC

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Bonjour, Le document qui suit est le support de la formation ''Arduino applications distantes''.

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Module BD et sites WEB

Mise en service HORUS version HTTP

Projet de programmation (IK3) : TP n 1 Correction

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Bases de données et Interfaçage Web

Création de formulaires interactifs

Séance d ED n 5 : HTML et JavaScript

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Programmation Web. Madalina Croitoru IUT Montpellier

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Application de lecture de carte SESAM-Vitale Jeebop

Pack Fifty+ Normes Techniques 2013

Attaques de type. Brandon Petty

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

INF8007 Langages de script

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

TD HTML AVEC CORRECTION

HTML/CSS - Travaux Pratiques 2

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Serveurs et environnements de développement. Serveur Web

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Tutoriel de formation SurveyMonkey

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

NAS 208 WebDAV Une alternative au protocole FTP pour le partage sécurisé des fichiers

L3 informatique TP n o 2 : Les applications réseau

CREATION d UN SITE WEB (INTRODUCTION)

Réalisation de SMSMail

Le serveur HTTPd WASD. Jean-François Piéronne

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Piano Stairs. descriptif de la conception et des programmes associés. Copyright (C) 2013 taprik

IUT GEII MARSEILLE Patrick GUMUCHIAN. Lycée Alphonse Benoit L'Isle sur la Sorgue Marc SILANUS

Bernard HAMM, Évelyne LAVOISIER

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

Démonstration de la mise en cache via HTML 5 sur iphone

Sage CRM. Sage CRM 7.3 Guide du portable

Formulaires et Compteurs

STID 2ème année : TP Web/PHP

Techniques de Programmation pour Internet

Informatique : Création de site Web Master 2 ANI TP 1

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

HTTP 1.1. HyperText Transfer Protocol TCP IP ...

API SMS CONSEIL HTTP V2.01. Sommaire. Documentation V1.0 au 21/05/2011

Stockage du fichier dans une table mysql:

Développement Web. Les protocoles

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

(1) Network Camera

Boutique e-commerce administrable à distance

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Oracle Learning Library Tutoriel Database 12c Installer le logiciel Oracle Database et créer une Database

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Formulaire pour envoyer un mail

Micro-ordinateurs, informations, idées, trucs et astuces. Utiliser une caméra IP Trendnet IP-TV110. Auteur : François CHAUSSON

Chapitre 3 Configuration et maintenance

CGI et SSI. La programmation CGI. Sources. Objectifs. Qu'est ce qu'un programme CGI? CGI

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Normes techniques 2011

Bases de Données et Internet

Tutoriel Inscription et utilisation basique d'un blog hébergé chez Blogger.com

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Protocoles Applicatifs

>> Lisez-moi d abord... Connecter le ZyXEL Prestige 650HW/HW-I

Configuration de TCPIPconfig.h

Types MIME (2) Typage des ressources Internet. Les URI. Syntaxe dans les URI. Possibilité de spécifier un paramètre du sous-type

Mise en place d un serveur Proxy sous Ubuntu / Debian

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Failles des applications Web. Ce document est extrait du travail de diplôme de M. DIZON dans l état.

TIC. Réseau informatique. Historique - 1. Historique - 2. TC - IUT Montpellier Internet et le Web

Module http MMS AllMySMS.com Manuel d intégration

WiFi Security Camera Quick Start Guide. Guide de départ rapide Caméra de surveillance Wi-Fi (P5)

DOM - Document Object Model

Guide d installation rapide

Sophos Mobile Control as a Service Guide de démarrage. Version du produit : 2.5

Axel Remote Management

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Extended communication server 4.1 : VoIP SIP service- Administration

Bravo! Vous venez d acquérir un routeur large bande à 4 ports Conceptronic C100BRS4H.

TAGREROUT Seyf Allah TMRIM

2) Téléchargement de l'application pour contrôler vos caméras :

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

Les services usuels de l Internet

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Configuration d'un Réseau Privé Virtuel (RPV ) communément appelé VPN

SERVEUR WEB. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

WEB page builder and server for SCADA applications usable from a WEB navigator

contact@nqicorp.com - Web :

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Transcription:

TP SIN Programmation Support : Carte Arduino et Shield Ethernet Support : Carte arduino Méga et Shield Ethernet Pré requis (l élève doit savoir): Savoir utiliser un ordinateur Programme Objectif terminal : L élève doit être capable de commander un servo moteur depuis une page html Matériels : Logiciel Arduino Carte Arduino méga Carte Ethernet Shield Arduino 3 boutons Servo moteur Carte shield Ethernet 1

1. Travail demandé Cahier des charges : On veut commander l allumage de Leds par une page html. Remarque : La balise <form> déclare une zone de formulaire dans laquelle les utilisateurs peuvent saisir des informations qui pourront par la suite être récupérées et traitées côté serveur. Il est possible d'utiliser plusieurs formulaires dans une même page sous condition de ne pas les imbriquer. Finalement, pour que le formulaire puisse être envoyé il faut qu'il soit soumis, soit à l'aide de la balise input : <input type="submit".../> soit à l'aide du javascript en appliquant la fonction "submit()" au formulaire (en se basant sur son identifiant) D'autre part, pour utiliser cette notion de formulaire, il est important de donner les valeurs adéquates aux principaux attributs de la balise <form> : - name : nom du formulaire utilisé pour faire référence à celui-ci. - action : indique l'adresse d'envoi des données du formulaire lors de sa soumission. - method : indique comment seront transmises les données au serveur ("get" ou "post"). Les éléments utilisés à l'intérieur d'un formulaire pour échanger explicitement des informations sont les suivant : - <button> - <input> avec les différents types qui lui sont associés (submit, text, checkbox...) - <select> - <textarea> Les methodes get et post : La méthode get transmet les informations présentes dans le formulaire via l'url (à la suite du "?"). Ces informations sont donc visibles dans la barre d'adresse du navigateur. La méthode post envoie les données en plaçant celles-ci dans l'entête de la trame http, elles ne sont alors pas directement visibles. La balise INPUT La balise INPUT est la balise essentielle des formulaires, car elle permet de créer un bon nombre d'éléments "interactifs". La syntaxe de cette balise est la suivante : <INPUT type="nom du champ" value="valeur par défaut" name="nom de l'élément"> L'attribut name est essentiel car il permettra au script CGI de connaître le champ associé à la paire nom/valeur, c'està-dire que le nom du champ sera suivi du caractère "=" puis de la valeur entrée par l'utilisateur, ou dans le cas contraire de la valeur par défaut repéré par l'attribut value. L'attribut type permet de préciser le type d'élément que représente la balise INPUT, voici les valeurs que ce champ peut prendre : checkbox: il s'agit de cases à cocher pouvant admettre deux états : checked (coché) et unchecked(non coché). Lorsque la case est coché la paire nom/valeur est envoyée au CGI 2

hidden: il s'agit d'un champ caché. Ce champ non visible sur le formulaire permet de préciser un paramètre fixe qui sera envoyé au CGI sous forme de pair nom/valeur file: il s'agit d'un champ permettant à l'utilisateur de préciser l'emplacement d'un fichier qui sera envoyé avec le formulaire. Il faut dans ce cas préciser le type de données pouvant être envoyées grâce à l'attribut ACCEPT de la balise FORM image: il s'agit d'un bouton de soumission personnalisé, dont l'apparence est l'image situé à l'emplacement précisé par son attribut SRC password: il s'agit d'un champ de saisie, dans lequel les caractères saisis apparaissent sous forme d'astérisques afin de camoufler la saisie de l'utilisateur radio: il s'agit d'un bouton permettant un choix parmi plusieurs proposés (l'ensemble des boutons radios devant porter le même attribut name. La paire nom/valeur du bouton radio sélectionné sera envoyé au CGI. Un attribut checked pour un des boutons permet de préciser le bouton sélectionné par défaut reset: il s'agit d'un bouton de remise à zéro permettant uniquement de rétablir l'ensemble des éléments du formulaire à leurs valeurs par défaut submit: il s'agit du bouton de soumission permettant l'envoi du formulaire. Le texte du bouton peut être précisé grâce à l'attribut value text: il s'agit d'un champ de saisie permettant la saisie d'une ligne de texte. La taille du champ peut être définie à l'aide de l'attribut size et la taille maximale du texte saisi grâce à l'attributmaxlength Propriétés de la balise Form : Propriétés Définition Valeurs action enctype method Spécifie l'url de la page qui recevra et traitera les informations soumises Spécifie quels encodages de caractères sont acceptés par le formulaire. Indique de quelle façon doivent être encodées les données soumises Détermine la façon dont sont transférées les données URL charset UTF-8... acceptcharset application/x-www-formurlencoded text/plain multipart/form-data get post name Nom donné au formulaire Texte target Permet de définir comment s'ouvre l'url définié par l'attribut action _blank _parent _self _top Exemple à tester : Texte : <html> <head> 3

<meta charset="utf-8"> <title>test balise form</title> </head> <body> <form action="http://www.coursstimartinique.fr/cours%20form/texte/recu.html" method="get" name="form1" id="form1"> <label for="textfield">rentrer un nom :</label> <input type="text" name="nom" id="nom"> </form> </body> </html> Boutons d option <!doctype html> <html> <head> <meta charset="utf-8"> <title>test balise form</title> </head> <body> 4

<FORM action="recu.html" method="get" NAME="form2"> <p>choisir une couleur : <br> <INPUT NAME="couleur" TYPE=radio VALUE="bleue"> Bleue</INPUT> </p> <p> <INPUT NAME="couleur" TYPE=radio VALUE="rouge"> Rouge</p> </INPUT> <input type="submit" name="submit" id="submit" value="envoyer"> </FORM> </body> </html> Tester le programme ci-dessous #include <SPI.h> #include <Client.h> #include <Ethernet.h> 5

#include <Server.h> #include <Udp.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; //adresse mac de la carte byte ip[] = { 10,49,18,80; byte gateway[] = { 10,49,18,1 ; // adresse IP à définir // adresse IP du routeur à définir byte subnet[] = { 255, 255, 255, 0 ; EthernetServer server(80); //masque sous réseau à définir //server port byte sampledata=50; //some sample data - outputs 2 (ascii = 50 DEC) int ledpin = 13; String readstring = String(30); //string for fetching data from address boolean LEDON = false; //LED status flag void setup(){ //start Ethernet Ethernet.begin(mac, ip, gateway, subnet); //Set pin 13 to output pinmode(ledpin, OUTPUT); //enable serial datada print Serial.begin(9600); void loop(){ // Create a client connection EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); //read char by char HTTP request if (readstring.length() < 100) { 6

//store characters to string readstring += c; //replaces readstring.append(c); //output chars to serial port Serial.print(c); //if HTTP request has ended if (c == '\n') { //dirty skip of "GET /favicon.ico HTTP/1.1" if (readstring.indexof("?") <0) { //Pas de paramètre dans l url else //lets check if LED should be lighted if(readstring.indexof("l=11") >0)//replaces if(readstring.contains("l=11")) { //led has to be turned ON digitalwrite(ledpin, HIGH); // set the LED on LEDON = true; else if(readstring.indexof("l=10") >0)//replaces if(readstring.contains("l=10")) { //led has to be turned OFF digitalwrite(ledpin, LOW); // set the LED OFF LEDON = false; // now output HTML data starting with standart header client.println("http/1.1 200 OK"); client.println("content-type: text/html"); 7

client.println(); //set background to yellow client.print("<body style=background-color:yellow>"); //send first heading client.println("<hr />"); //output some sample data to browser client.println("<font color='blue' size='5'>sample data: "); client.print(sampledata);//lets output some data client.println("<br />");//some space between lines client.println("<hr />"); //drawing simple table //printing some link //controlling led via checkbox if (LEDON) { client.println("<form method=get name=led22><input type=checkbox name=l value=10 CHECKED>LED<br><input type=submit value=submit></form>"); else { client.println("<form method=get name=led22><input type=checkbox name=l value=11>led<br><input type=submit value=submit></form>"); client.println("<br />"); //printing LED status client.print("<font size='5' color='blue'>led22 status: "); if (LEDON) { client.println("<font color='green' size='5'>on"); else { client.println("<font color='grey' size='5'>off"); client.println("</body></html>"); //clearing string for next read 8

readstring=""; //stopping client client.stop(); Remarque : L'objet String méthode indexof () vous donne la possibilité de rechercher pour la première instance d'une valeur de caractère particulier dans une chaîne. Vous pouvez également regarder pour la première instance du caractère après une position donnée. La méthode lastindexof () vous permet de faire les mêmes choses de la fin d'une chaîne. Modifier le programme pour rajouter une lampe On veut commander un servo moteur depuis l application internet, http://eskimon.fr/287-arduino-602-un-moteur-qui-de-la-tete-le-servo-moteur CONNECTIQUE Le servomoteur a besoin de trois fils de connexion pour fonctionner. Deux fils servent à son alimentation, le dernier étant celui qui reçoit le signal de commande : rouge : pour l alimentation positive (4.5V à 6V en général) noir ou marron : pour la masse (0V) orange, jaune, blanc, : entrée du signal de commande 9

Le signal de commande La consigne envoyée au servomoteur n est autre qu un signal électronique de type PWM. Il dispose cependant de deux caractéristiques indispensables pour que le servo puisse comprendre ce qu on lui demande. À savoir : une fréquence fixe de valeur 50Hz (comme celle du réseau électrique EDF) et d une durée d état HAUT elle aussi fixée à certaines limites. Exemple programmation (Arduino Yun) : Arduino Servo possèdant comme caractéristiques des durées de 1ms pour 0 et 2ms pour 180 et branché sur la broche 12 : #include <Servo.h> Servo monservo; void setup() { monservo.attach(12, 1000, 2000) ; // «12» est la borne de branchement du moteur sur broche Pin 12 void loop() { monservo.write(0) ; // mise en position 0 delay(2000) ; monservo.write(180) ; // mise en position 180 delay(2000) ; Flowcode Explication macro : http://www.matrixtsl.com/wiki/index.php?title=component:_servo_controller_(mechatronics) Panneau tableau de bord : 10

11

Programme : 12

Proteus (avec carte Arduino Méga) Réaliser l application pour faire tourner le moteur sur trois angles (0,90,180) avec trois boutons o Programme Arduino sur carte o Programme Flowcode sur carte et Proteus Réaliser l application html ci-dessous pour faire tourner le moteur avec Shield Ethernet Attention aux guillemets avec Arduino (exemple): client.println("<meta http-equiv=\"refresh\" content=\"2\">"); 13