Changes between Version 1 and Version 2 of IOC20_T06


Ignore:
Timestamp:
Mar 26, 2020, 3:30:05 PM (5 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IOC20_T06

    v1 v2  
    44
    55Le but du dispositif final est de créer un site web permettant d'accéder à des capteurs déportés.
     6
     7[[Image(htdocs:png/IOC6_but_principe.png,nolink,600px)]]
    68
    79Il y au cœur du dispositif une machine, nommée ''station de base'', contenant un serveur HTTP et une application, nommée ''gateway'', permettant d'accéder aux capteurs distants via un réseau sans fil.
    810Pour ce dispositif : la station de base devrait être une !RaspberryPi 3 et les capteurs distants des ESP32.
    911
    10 En l'état actuel, vous n'allez pas pouvoir travailler sur les !RaspberryPi 3, en conséquence, la station de base sera un des PC de la salle SESI. Il n'y aura pas non plus d'ESP32 et donc, dans un premier temps l'application ''gateway'' produira des données synthétiques (les valeurs d'un compteur circulaire par exemple).
     12En l'état actuel, vous n'allez pas pouvoir travailler sur les !RaspberryPi 3, en conséquence, la station de base sera un des PC de la salle SESI. Il n'y aura pas non plus d'ESP32 et donc, dans un premier temps l'application ''gateway'' produira des données synthétiques (les valeurs d'un compteur circulaire par exemple). Entre le serveur HTTP et ''gateway'' nous allons utiliser des FIFOs Unix.
     13
     14[[Image(htdocs:png/IOC6_plateforme_TP.png,nolink,600px)]]
    1115
    1216Le browser web (p.ex. firefox) sera sur votre PC local, il devra communiquer avec votre serveur HTTP sur votre PC du réseau enseignement. Nous allons devoir faire quelques manipulations pour rendre cela possible. En effet, nous avons deux obstacles. Le premier est que les machines du réseau enseignement ne sont pas directement accessibles, elles sont derrière une machine ''proxy'' (''durian''), le second est que le port d'écoute standard des serveurs web est 80 et que celui-ci est déjà utilisé par un serveur préinstallé (''apache''), nous devrons donc utiliser un autre port.
    1317
    14 
    15 Ce premier serveur web est écrit en Python, à la réception des requêtes du client, il exécute des scripts CGI (Common Gateway Interface) écrit également en Python pour produire des pages HTML dynamiques. Les scripts CGI devront communiquer avec le programme écrit en C contrôlant les LEDs. La communication entre les scripts et l'applic se fera par fifo UNIX. Le programme en C sera : soit la version permettant le contrôle depuis une application utilisateur (avec les droits de **root**), soit par une application utilisateur qui communique avec un driver. Je ne demande pas cette seconde possibilité parce que vous allez devoir insérer un module dans le noyau et c'est une difficulté supplémentaire qui n'apporte rien vis-à-vis de ce que vous allez voir aujourd'hui, mais je ne vous interdit pas de le faire.
     18Ce serveur web est écrit en Python, à la réception des requêtes du client, il exécute des scripts CGI (Common Gateway Interface) écrit également en Python pour produire des pages HTML dynamiques. Les scripts CGI devront communiquer avec le programme écrit en C contrôlant les LEDs. La communication entre les scripts et l'applic se fera par fifo UNIX. Le programme en C sera : soit la version permettant le contrôle depuis une application utilisateur (avec les droits de **root**), soit par une application utilisateur qui communique avec un driver. Je ne demande pas cette seconde possibilité parce que vous allez devoir insérer un module dans le noyau et c'est une difficulté supplémentaire qui n'apporte rien vis-à-vis de ce que vous allez voir aujourd'hui, mais je ne vous interdit pas de le faire.
    1619
    1720Pour ce faire, nous allons procéder en deux temps.