RPI méthode Flask avec Ajax

Bonjour tout le monde, je suis en train de découvrir le monde de Raspberry, j’ai quelque notion de base en programmation or, je suis pas un pro ! Je cherche à faire changer l’état d’une led créer sur ma page web à partir d’un entrée du Raspberry. J’aimerais utiliser ajax pour avoir une page beaucoup plus fluide qui évite de se rechanger.

Mon problème. je trouve pas vraiment d’exemple pour utiliser flask avec ajax sur Raspberry.

Voici mon code html à changer

      <H1>
        % if broue1:
        <span class="d-block badge rounded-pill text-bg-danger">Attention, risque de débordement !!!</span>
        % else:
        <span class="d-block badge rounded-pill text-bg-success">Aucune anomalie...</span>
        % end
      </H1>

Le seul tutoriel que j’ai trouvé sur le sujet avec la méthode ajax sur Raspberry.

Modèle : RPI3B V1.2

J’ai posté de quoi voila quelques jours, c’est dans la même idée, peux être ça peut t’aider ?

Salut, merci je vais aller voir ton poste !

Salut suite à ton poste, j’ai regarder un peu mais je ne comprend pas tout se que tu à écris. Par contre, de mon coté, j’ai essayer ceci mais cela n’a pas fonctionner.

Mon fichier Pins.py

import RPi.GPIO as GPIO

input_35 = 35

def Init():
    #GPIO.setwarings(False) 
    GPIO.setmode(GPIO.BCM)
    
    GPIO.setup(input_35, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    
def Read_Input35():
    if GPIO.input(input_35)== True:
        return True
    else:
        return False
    
if __name__ == "__main__":
    Init()
    try:
        while(True):
            Read_Input35()
    except:
        GPIO.cleanup()

Mon fichier main.py

from flask import Flask, render_template, Response, jsonify
import Pins

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/_show_msg1')
def _show_msg1():
    if Pins.Read_Input35():
        state = True
    else:
        state = False
    return jsonify(stateMsg1=state)
        

if __name__ == '__main__':
    app.run(debug=False, port=5000, host='0.0.0.0', threaded=True)

Coté html, j’ai seulement mis les partie importante voici le script :

 function show_msg1() 

{

$.getJSON('/_show_msg1', function(data)

    {

        $("#stateMsg1").text(data.stateMsg1);

        setTimeout(function(){show_msg1();},500);

    });

}

);

Parti de " led "

        {% if stateMsg1 == True %}

        <span class="d-block badge rounded-pill text-bg-danger">Attention, risque de débordement !!!</span>

        {% else %}

        <span class="d-block badge rounded-pill text-bg-success">Aucune anomalie...</span>

        {% endif %}

      </H1>

Merci pour l’aide.

Si tu prend mon code, il faut un serveur web, tu crée un fichier avec le code PHP dedans.
Via Ajax, tu lance une action (comme j’explique dans le post) et tu as le cron qui examine la demande a intervalle.

Dans le fichier PHP créé, tu dois modifier le code et le nom des commandes pour aller exécuter ton script python.

1 J'aime