在网页中获取arduino数字引脚的状态

时间:2017-07-16 13:36:27

标签: javascript python html flask

我想阅读arduino数字引脚的状态并希望显示它 在网页中。对于网络编程我正在使用Flask。我尝试了这段代码,但它没有用。从arduino方面我正在以1和0的形式读取6个数字引脚的值。我怎么能这样做?任何帮助将不胜感激。

<!doctype html>
<html>
<head>

</head>
<body>


<h1 style="font-size:30px;font-family:verdana;"><b>STATUS READ </h1><br><br>

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<p id="#status1"></p>
<p id="#status2"></p>
<p id="#status3"></p>
<p id="#status4"></p>
<p id="#status5"></p>
<p id="#status6"></p>
<script type=text/javascript>

function updatevalues() {
            $SCRIPT_ROOT = {{ request.script_root|tojson|safe }};
            $.getJSON($SCRIPT_ROOT+"/a",
                function(data) {
                    $("#status1").text(data.m+" %")
                    $("#status2").text(data.n+" %")
                    $("#status3").text(data.o+" %")
                    $("#status4").text(data.p+" %")
                    $("#status5").text(data.q+" %")
                    $("#status6").text(data.r+" %")

                });
        }
</script>
</body>
</html>

Python代码:

from flask import  Flask, render_template,request,redirect, url_for,jsonify,flash
import flask
from shelljob import proc
import math
import eventlet
eventlet.monkey_patch()
from flask import Response

import serial
import time
from datetime import datetime
import json
import random
from flask.ext.bootstrap import Bootstrap
from flask_bootstrap import WebCDN

app = flask.Flask(__name__)
app.secret_key = 'some_secret'
bootstrap = Bootstrap(app)
app.extensions['bootstrap']['cdns']['jquery'] = WebCDN('//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/')

arduino= serial.Serial( '/dev/ttyACM0' , 9600)    #creating object

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


@app.route('/a',methods=['GET'])

def a():

  mydata=arduino.readline().split(',')  
  return jsonify(m=float(mydata[0]),n=float(mydata[1]),o=float(mydata[2]),p=float(mydata[3]),q=float(mydata[4]),r=float(mydata[5]))



if __name__ == "__main__":
    app.run()

1 个答案:

答案 0 :(得分:0)

您似乎没有在Javascript中调用updatevalues。你应该尝试这样的事情:

setInterval(updatevalues, 1000); //So it runs the function every 1000ms (1 second)