Changes between Version 2 and Version 3 of IOC20_T06


Ignore:
Timestamp:
Mar 27, 2020, 8:58:30 AM (5 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IOC20_T06

    v2 v3  
    88
    99Il 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.
    10 Pour ce dispositif : la station de base devrait être une !RaspberryPi 3 et les capteurs distants des ESP32.
    11 
    12 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). Entre le serveur HTTP et ''gateway'' nous allons utiliser des FIFOs Unix.
     10Pour ce dispositif : la station de base doit être une !RaspberryPi 3 et les capteurs distants des ESP32. L'application ''gateway'' doit utiliser un protocole de communication nommé MQTT.
     11
     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. Nous verrons le protocole MQTT ultérieurement.
    1313
    1414[[Image(htdocs:png/IOC6_plateforme_TP.png,nolink,600px)]]
    1515
    16 Le 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.
     16Le 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. Nous allons utiliser un tunnel ssh et de la redirection de port.
     17
     18
    1719
    1820Ce 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.