绘图实时传感器数据

时间:2019-10-08 22:39:29

标签: python-3.x android-sensors android-livedata

我正在尝试将DHT22(温度传感器)添加到plot.ly图中。

我要证明的测试用例是,可以在“服务器”上实时传输传感器数据。在这种情况下,是rasberry服务器。

我遇到以下错误,但看不到有什么问题。

传感器连接到GPIO引脚上的一个树莓派(我相信引脚4)

错误: def update_graph_live(n): ^ SyntaxError:语法无效

(如果您再看到错误,我真的很想知道;))

预先感谢

代码:

from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
import plotly
import random
import plotly.graph_objs as go
import time
import datetime
from collections import deque
from dash.dependencies import Input, Output

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

tijdstip = datetime.datetime.now().strftime("%X")

import Adafruit_DHT 
import time 


humidity, tempratuur = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22,4)

humidity = round(humidity, 2) 
tempratuur = round(tempratuur, 2)  


X = deque(maxlen=20)
X.append(1)
Y = deque(maxlen=20)
Y.append(1)

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(

    [
    html.H4('Tempratuur Thuis'),
    html.div(id= 'live-update-text'),
        dcc.Graph(id='live-update-graph', animate=True),
        dcc.Interval(
            id='onterval-compnent',
            interval=10000,
            n_intervals = 0
        ),
    ]
)

@app.callback(Output('live-update-text', 'childeren'),
        [Input('interval-component', 'n_intervals')])

def update_metrics(n):
    tijdstip = datetime.datetime.now().strftime("%X")
    tempratuur = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)
    style = {'padding': '5px', 'frontSize': '16px'}
    return ([
        html.Span('tijdstip: {0:.2f}'.format(tijd), style=style),
        html.Span('tempratuur: {0:.2f}'.format(tijd), style=style),
    ]
@app.callback(Output('live-update-graph', 'figure'),
        [Input('interval-component', 'n_intervals')])

def update_graph_live(n):
    data = { 
        'tijd': [],
        'tempratuur':[],
    }

    for i in range(180): 
        tijd = datetime.datetime.now() - datetime.timedelta(seconds=i*20)
        tempratuur = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, 4)

        data['tijd''].append(tijd)
        data['temp'].append(tempratuur)

    fig = plotly.tools.make_subplots(rows=2, cols=1, vertical_spacing=0.2)
        fig['layout']['margin'] = {
            'l': 30, 'r': 10, 'b': 30, 't': 10
        }
        fig['layout']['legend'] = {'x': 0, 'y': 1, 'xanchor': 'left'}

        fig.append_trace({
            'x': data['tijd'],
            'y': data['tempratuur'],
            'name': 'tempratuur',
            'mode': 'lines+markers',
            'type': 'scatter'
        }, 1, 1)

    return fig


if __name__ == '__main__':
    app.run_server(debug=True)

0 个答案:

没有答案
相关问题