Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2019
    Messages : 2
    Points : 3
    Points
    3
    Par défaut comment visualiser sur page web des données venant d'un prog python qui boucle
    J'ai un serveur appache sur raspberry . une page web avec formulaire pour que l'utilisateur rentre 2 données et qui envoie ( form action ) vers un programme php .
    Ce meme programme php envoie les 2 données dans mysql et grace à exec lance un programme python qui mesure en boucle ( une des données enregistrée fixe la durée de la boucle, l'autre donnée le temps entre 2 mesures ) une valeur physique .
    à chaque cycle de la boucle la valeur est enregistrée dans mysql .
    J'aimerais visualiser la valeur à chaque cycle de la boucle sur une page web . Comment faire ?
    J'ai essayé d'ouvrir une page avec webbrowser à la fin de chaque bouche mais ça ouvre autant de page que de cycles et je ne sais pas comment recuperer la valeur pour l'afficher dans la nouvelle page crée.
    Merci pour votre aide



    le programme php est le suivant
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     <?php
     
    $servername = "localhost";
    $username = "xxxxxx";
    $password = "yyyyy";
    $dbname = "elevage";
     
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
     
    echo $_POST["duree"];
    echo  $_POST["interval"];
    $duree = $_POST["duree"];
    $interval = $_POST["interval"];
     
    $sql = "INSERT INTO intervaltps (intervalle, duree) VALUES ( $interval, $duree )";
     
    if (mysqli_query($conn, $sql)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
     
    mysqli_close($conn);
     
    exec ('sudo /usr/bin/python3 /home/pi/Documents/ADS1x15/final.py' );

    le programme final.py :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    #!/usr/bin/python3
    import time
    import mysql.connector
    import RPi.GPIO as GPIO  # bibliothèque pour utiliser les GPIO
    import time              # bibliothèque pour gestion du temps
     
    GPIO.setmode(GPIO.BOARD)   # mode de numérotation des pins
    GPIO.setup(22,GPIO.OUT )  # la pin 22 réglée en sortie (output)
     
    baseDeDonnees = mysql.connector.connect(host="localhost",user="bernard",password="mdpbg",database="elevage")
    curseur = baseDeDonnees.cursor() 
    curseur.execute("SELECT duree, intervalle  FROM intervaltps WHERE id = 
    (SELECT MAX(id) FROM intervaltps) ")
    record = curseur.fetchall() 
    for row in record:
    dur = row[0] 
    inter = row[1] 
    print(dur)
    print(inter)
     
    baseDeDonnees.close
     
    from ADS1x15 import ADS1115
    adc = ADS1115()
     
     print('Reading ADS1x15 values, press Ctrl-C to quit...')
     
    i = 0
    while i<dur :
     
    GPIO.output(22,GPIO.HIGH)
    time.sleep(0.06)
    values = [0]    
        # Read the specified ADC channel using the previously set gain value.
    values = adc.read_adc(0,gain=1)
     
    # Print the ADC values
    time.sleep(0.02)
    GPIO.output(22,GPIO.LOW)    # sortie au niveau logique bas (0 V)
     
    baseDeDonnees = mysql.connector.connect(host="localhost",user="xxxxxx",password="yyyyyy",database="elevage")
    curseur = baseDeDonnees.cursor() 
    toto = {"commentaire": "ca marche", "V1" : values}
    curseur.execute("""INSERT INTO Donnesmi (commentaire, V1, date_insertion) VALUES(%(commentaire)s, %(V1)s, CURRENT_TIMESTAMP)""", toto)
    baseDeDonnees.commit()
    baseDeDonnees.close()
    print(values)
     
    # Pause for half a second.
    time.sleep(interval)
    i += 1

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 498
    Points : 24 523
    Points
    24 523
    Par défaut
    Salut,

    Déjà quand un browser fait une requête HTTP, il attend une réponse qui contiendra un message d'erreur et la page HTML à afficher. Donc si votre requête lance un code qui ne se termine pas, çà devrait partir en timeout.

    Pour afficher des données "en continu" dans une page Web, on peut le faire avec du Javacript (du code dans la page HTML) qui ira faire une requête pour "actualiser" le contenu de la page.
    On peut aussi utiliser une technologie dite WebSocket qui permet au serveur Web des données en asynchrone au navigateur (pas besoin de faire de requête).

    En tous cas, votre code n'a aucune chance de fonctionner ainsi et vous devez étudier un peu les techniques qui permettrait de... apprendre à la maîtriser et à l'utiliser.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [MySQL-5.5] Entrer des données via tableau sur page web
    Par patito1975 dans le forum MySQL
    Réponses: 2
    Dernier message: 19/01/2015, 12h12
  2. comment purifier une page web des script ?
    Par khadi8 dans le forum Général Python
    Réponses: 5
    Dernier message: 12/04/2014, 11h37
  3. Importer des données venant d'une page web protégé
    Par guismoman60 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/08/2013, 15h44
  4. Supprimer des fichiers listés sur page web
    Par LioFo33 dans le forum Langage
    Réponses: 3
    Dernier message: 18/04/2007, 13h04
  5. Comment faire 1 page web contenant des petits box comme ca ?
    Par mohamed dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 11/11/2006, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo