« SE5 ECEAI/eceai 2023/2024/Brenier-Nguyen » : différence entre les versions

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 15 : Ligne 15 :
**Entraînement des modèles pour les différentes applications cités précédemment
**Entraînement des modèles pour les différentes applications cités précédemment
**Finalement : entraînement à la reconnaissance d'objets de fournitures scolaires
**Finalement : entraînement à la reconnaissance d'objets de fournitures scolaires
Code du serveur Python :
<nowiki><code>from http.server import HTTPServer, BaseHTTPRequestHandler</nowiki>
import json
import socket
<nowiki>#</nowiki> Stocker les requ  tes POST re  ues
post_requests = []
class CustomHTTPHandler(BaseHTTPRequestHandler):
   def do_GET(self):
       if self.path == '/':
           self.path = '/index.html'
       if self.path == '/data':
           self.send_response(200)
           self.send_header('Content-type', 'application/json')
           self.end_headers()
           self.wfile.write(bytes(json.dumps(post_requests), 'utf-8'))
           return
if self.path == '/index.html':
           self.send_response(200)
           self.send_header('Content-type', 'text/html')
           self.end_headers()
           # Cr  er le contenu HTML avec les donn  es POST
           content = '<nowiki><html><body><h1>Donn  es POST:</h1></nowiki><nowiki><ul>'</nowiki>
           for item in post_requests:
               content += f'<nowiki><li>{item}</li></nowiki>'
           content += '<nowiki></ul></nowiki><nowiki></body></nowiki><nowiki></html></nowiki>'
           self.wfile.write(content.encode('utf-8'))
           return
       try:
file_to_open = open(self.path[1:]).read()
           self.send_response(200)
           self.send_header('Content-type', 'text/html')
           self.end_headers()
           self.wfile.write(bytes(file_to_open, 'utf-8'))
       except FileNotFoundError:
           self.send_error(404, 'File Not Found: %s' % self.path)
   def do_POST(self):
       content_length = int(self.headers['Content-Length'])
       post_data = self.rfile.read(content_length).decode('utf-8')
       # Ajouter les donn  es POST    la liste
       post_requests.append(post_data)
       # Envoyer une rponse HTTP
       self.send_response(200)
       self.end_headers()
self.wfile.write(b"POST request processed")
class HTTPServerV6(HTTPServer):
   address_family = socket.AF_INET6
if __name__ == '__main__':
   server_address = ('::', 8888)  #  ^icoute sur toutes les interfaces IPv6, p>
   httpd = HTTPServerV6(server_address, CustomHTTPHandler)
   print("Serveur actif sur le port", 8888)
   httpd.serve_forever() <nowiki></code></nowiki>

Version du 18 décembre 2023 à 16:34

  • Séance 1 :
    • Création et configuration de la VM sur Chassiron
    • Installation de NanoEdge
    • Installation de STM32cube
    • Installation de l'OS pour la Raspberry dans la carte micro SD
    • Prise en main de Nanoedge, de nucléo et de STM32cube
    • Début de réflexion sur l'application (métrologie)
  • Séance 2:
    • Mise en place du serveur python
    • Mise en place du client python
    • Test réussi de communication entre client et serveur via http
    • Programmation de la carte nucléo pour transfert de valeur via liaison série
    • Suite réflexion sur l'application (reconnaissance alphabet langue des signes, mouvement)
    • Choix de l'application : reconnaissance d'objets appliqué aux fournitures scolaires
    • Entraînement des modèles pour les différentes applications cités précédemment
    • Finalement : entraînement à la reconnaissance d'objets de fournitures scolaires


Code du serveur Python :

<code>from http.server import HTTPServer, BaseHTTPRequestHandler

import json

import socket

# Stocker les requ  tes POST re  ues

post_requests = []

class CustomHTTPHandler(BaseHTTPRequestHandler):

   def do_GET(self):

       if self.path == '/':

           self.path = '/index.html'

       if self.path == '/data':

           self.send_response(200)

           self.send_header('Content-type', 'application/json')

           self.end_headers()

           self.wfile.write(bytes(json.dumps(post_requests), 'utf-8'))

           return

if self.path == '/index.html':

           self.send_response(200)

           self.send_header('Content-type', 'text/html')

           self.end_headers()

           # Cr  er le contenu HTML avec les donn  es POST

           content = '<html><body><h1>Donn  es POST:</h1><ul>'

           for item in post_requests:

               content += f'<li>{item}</li>'

           content += '</ul></body></html>'

           self.wfile.write(content.encode('utf-8'))

           return

       try:

file_to_open = open(self.path[1:]).read()

           self.send_response(200)

           self.send_header('Content-type', 'text/html')

           self.end_headers()

           self.wfile.write(bytes(file_to_open, 'utf-8'))

       except FileNotFoundError:

           self.send_error(404, 'File Not Found: %s' % self.path)

   def do_POST(self):

       content_length = int(self.headers['Content-Length'])

       post_data = self.rfile.read(content_length).decode('utf-8')

       # Ajouter les donn  es POST    la liste

       post_requests.append(post_data)

       # Envoyer une rponse HTTP

       self.send_response(200)

       self.end_headers()

self.wfile.write(b"POST request processed")

class HTTPServerV6(HTTPServer):

   address_family = socket.AF_INET6

if __name__ == '__main__':

   server_address = ('::', 8888)  #  ^icoute sur toutes les interfaces IPv6, p>

   httpd = HTTPServerV6(server_address, CustomHTTPHandler)

   print("Serveur actif sur le port", 8888)

   httpd.serve_forever() </code>