我正在尝试将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)