Client / serveur avec l'Oxocard

L'article suivant a présenté une activité pédagogique sur la notion de client / serveur à l'aide de la carte Halocode.

Il est aussi possible d'utiliser la carte Oxocard.

On utilise des méthodes présentent dans le module tcpcom.py qui permet de gérer facilement un client TCP et un serveur TCP.

Il faut utiliser l'IDE TigerJython.

Fichier Python serveur (lampe connectée)

Fichier Python de la partie client (bouton connecté)

client / serveur TCP

Il existe plusieurs solutions pour mettre en oeuvre un client et un serveur TCP.

L'objectif est de faire comprendre aux élèves comment fonctionne, et comment mettre en oeuvre un client et un serveur sur un réseau, en utilisant les protocoles TCP/IP.

Cette activité pédagogique s'intègre donc dans les thèmes Internet et Objets connectés, et même Image.

Mais l'objectif principal est de traiter des compétences suivantes:

  • Distinguer le rôle des protocoles IP et TCP.
  • Inspecter le code d’une page hébergée par un serveur et distinguer ce qui est exécuté par le client et par le serveur.
  • Écrire des programmes simples d’acquisition de données ou de commande d’un actionneur.

Pour cela les élèves vont utiliser une tablette ou un smartphone ou même un PC (mais impossible en général, car le réseau de la classe est inutilisable, et impossible de s'y connecter), un point d'accès sans fil wifi, une carte Halocode. Cette carte est complémentaire à la carte Microbit ou autre. Elle permet de traiter la partie réseau et intègre aussi des LED avec couleur programmable.

Les élèves vont mettre en oeuvre la commande d'une lampe connectée sur un réseau.

Ils vont commencer par tester le protocole de communication pour commander la lampe (carte halocode qui va s'allumer ou s'éteindre). Mais avant cela ils vont devoir identifier leurs périphériques et revoir la notion d'adresse IP fondamentale.

Les élèves programmeront ensuite en Python une autre carte Halocode (client) qui jouera le rôle d'un bouton connecté, et qui leur permettra de commande la lampe connectée.

Et enfin les élèves, par îlot, mettront en oeuvre un bouton connecté (client), et une lampe connectée (serveur), pour commander cette fois la couleur de la lampe.

Il existe plusieurs systèmes pour réaliser cet objet connecté (lampe), il est aussi possible d'utiliser la carte oxocard avec un programme très similaire. L'IDE Mu proposé par makeblock n'est pas encore super finalisé, mais permet quand même de faire l'activité. Espérons que la société finalisera bientôt leur produit. Un site donne toutes les API.

La carte Oxocard est programmable par l'IDE tygerjython (qui ne propose pas une autocompletion correcte malheureusement) mais fonctionne à merveille. Un autre article traitera de cette carte pour créer un serveur Web HTTP très facilement ainsi qu'une initiation au protocole MQTT qui est utilisé dans le monde de l'objet connecté. Les fichiers Python sont déjà disponibles pour réaliser un client et un serveur en TCP pour ceux que cela intéresse.

Activité pédagogique

Fichier Python client élève

Fichier Python serveur élève

Fichier Python serveur prof

Envoi de message texte (protocole TCP)

Activité n°1

Cette activité permet de découvrir le protocole TCP de la couche transport. Elle fait suite à l'activité sur le protocole IP de la couche réseau.

Les élèves vont découvrir comment un message segmenté peut être récupérer par le destinataire.

Il faudra porter attention à ce que les consignes soient bien lues et respectées.

Activité pédagogique.

Les messages à envoyer.

 

Activité n°2

Une autre activité pourra être proposée dans la même optique, mais cette fois-ci pour envoyer une image qui sera aussi segmentée.

Activité pédagogique.

 

Activité n°3

Cette activité permettra de montrer aux élèves comment le protocole TCP arrive à contrôler le flux de données pour avoir un mode orienté connexion entre un emetteur et un recepteur.

Sous-catégories

Les serveurs DNS

Routage sur un réseau informatique