Skip to content

Instantly share code, notes, and snippets.

@naoki-sawada
Created August 5, 2017 05:01
Show Gist options
  • Select an option

  • Save naoki-sawada/b5a5d268bff4ef898b690e6660527a35 to your computer and use it in GitHub Desktop.

Select an option

Save naoki-sawada/b5a5d268bff4ef898b690e6660527a35 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import serial
import math
def makeSendData(val):
print val
if val >= 100:
h = int(math.floor(val/100))
j = int(math.floor((val - (h*100))/10))
i = int((val - (h*100) - (j*10)))
return [h, j, i]
elif val >= 10:
j = int(math.floor(val/10))
i = int(val - (j*10))
return [0, j, i]
else:
return [0, 0, int(val)]
from flask import Flask, request, abort
#port = '/dev/ttyUSB0'
port = '/dev/cu.usbserial-DM00BHZW'
baud = 9600
app = Flask(__name__)
try:
ser = serial.Serial(port, baud)
print "serial open: {}, {}".format(port, baud)
except:
ser = None
print "serial open: failed {}, {}".format(port, baud)
@app.route("/api/led", methods=['POST'])
def callback():
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
data = json.loads(body)['text']
rgb = (data[0], data[1], data[2])
print rgb
if ser:
print 'send serial!'
# ser.write(255000000)
r = makeSendData(data[0])
g = makeSendData(data[1])
b = makeSendData(data[2])
ser.write(str(r[0]))
ser.write(str(r[1]))
ser.write(str(r[2]))
ser.write(str(g[0]))
ser.write(str(g[1]))
ser.write(str(g[2]))
ser.write(str(b[0]))
ser.write(str(b[1]))
ser.write(str(b[2]))
return 'OK'
if __name__ == "__main__":
app.run(debug=True, port=5255)
if ser:
ser.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment