Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TypeError: float() argument must be a string or a number
- from flask import Flask, request, render_template
- from datetime import datetime
- from ubidots import ApiClient
- import matplotlib.pyplot as plt
- import matplotlib.dates as mdates
- import matplotlib.animation as animation
- from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
- from matplotlib.figure import Figure
- import io
- app = Flask(__name__)
- //get the latest value of the ldr sensor from Ubidots
- def get_records():
- api = ApiClient(token='XXXXXXXXXXXXXXXXXXXXXXX')
- my_variable = api.get_variable('XXXXXXXXXXXXXXXXXXXX')
- ldr = my_variable.get_values(1)
- return ldr
- //get the latest timestamp from Ubidots
- def get_times():
- api = ApiClient(token='XXXXXXXXXXXXXXXXXXXXXXXX')
- variable = api.get_variable('XXXXXXXXXXXXXXXXXXXXXX')
- value = variable.get_values(1)[0]
- timestamp = value.get('timestamp')
- global t
- t= mdates.epoch2num(timestamp)
- return t
- //render the graph with x and y values of time and sensor values respectively and send to Flask
- @app.route('/', methods=['POST'])
- def my_form_post():
- ldr= get_records()
- time= get_time()
- templateData = {
- 'ldr' : ldr,
- 'time' : t
- }
- return render_template('main.html', **templateData)
- //Plotting the graph using Matplotlib
- @app.route('/')
- def plot_temp():
- ldr= get_records()
- ys = ldr
- fig = Figure()
- axis = fig.add_subplot(1,1,1)
- axis.set_title("Light Intensity")
- axis.set_xlabel("Time")
- axis.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
- axis.grid(True)
- time= get_times()
- xs = time
- axis.plot(xs,ys)
- canvas = FigureCanvas(fig)
- output = io.BytesIO()
- canvas.print_png(output)
- response = make_response(output.getvalue())
- response.mimetype = 'image/png'
- ani= animation.FuncAnimation(fig, animate, interval=3000)
- return response
- if __name__ == "__main__":
- app.run(host='0.0.0.0', port=80, debug=True)
- <!DOCTYPE html>
- <head>
- <title>{{ title }}</title>
- </head>
- <body>
- <h1>Hello, World!</h1>
- <h2>The date and time on the server is: {{ time }}</h2>
- <img src="/" alt="Image Placeholder" width="49%">
- </body>
- </html>
Add Comment
Please, Sign In to add comment