python控制led屏_python轮询机制控制led实例

我就废话不多说了,大家还是直接看代码吧!

# -*- coding:utf-8 -*-

# File: ceshitianqi

import urllib2

import json

import time

import datetime

import serial

import random

import os

import sys

APIKEY = 'ZPdLyl***=' #改成你的APIKEY

ser=serial.Serial("/dev/ttyUSB2",9600,timeout=1)

def read(key):

ser.write(key)

print("output:"+key)

time.sleep(1)

response = ser.readall()

print(response)

print(type(response))

return response

def http_put(key):

val = read(key) #获取Arduino的数据

CurTime = datetime.datetime.now()

url='http://api.heclouds.com/devices/**1/datapoints'

#values={'datastreams':[{"id":"temp","datapoints":[{"at":CurTime.isoformat(),"value":val}]}]}

print(type(val))

if key== "a" :

values={'datastreams':[{"id":"humidity","datapoints":[{"at":CurTime.isoformat(),"value":val}]}]}

if key== "b" :

values={'datastreams':[{"id":"temperature","datapoints":[{"at":CurTime.isoformat(),"value":val}]}]}

jdata = json.dumps(values) # 对数据进行JSON格式化编码

#打印json内容

print jdata

request = urllib2.Request(url, jdata)

request.add_header('api-key', APIKEY)

request.get_method = lambda:'POST' # 设置HTTP的访问方式

request = urllib2.urlopen(request)

return request.read()

str = ("a","b")

while True:

for i in str:

f = open('1.txt')

e = f.read()

if e == "1\n":

ser.write("c")

if e == "0\n":

ser.write("d")

f.close()

resp = http_put(i)

time.sleep(2)

轮询1.txt

1则点亮

0则关闭

补充知识:python笔记(轮询、长轮询)

一、轮询

views.py

from flask import Flask,render_template,request,jsonify

app = Flask(__name__)

USERS = {

'1':{'name':'贝贝','count':1},

'2':{'name':'小东北','count':0},

'3':{'name':'何伟明','count':0},

}

@app.route('/user/list')

def user_list():

import time

return render_template('user_list.html',users=USERS)

@app.route('/vote',methods=['POST'])

def vote():

uid = request.form.get('uid')

USERS[uid]['count'] += 1

return "投票成功"

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

def get_vote():

return jsonify(USERS)

if __name__ == '__main__':

app.run(threaded=True)

html

Title

li{

cursor: pointer;

}

{% for key,val in users.items() %}

{{val.name}} ({{val.count}})

{% endfor %}

$(function () {

$('#userList').on('dblclick','li',function () {

var uid = $(this).attr('uid');

$.ajax({

url:'/vote',

type:'POST',

data:{uid:uid},

success:function (arg) {

console.log(arg);

}

})

});

});

/*

获取投票信息

*/

function get_vote() {

$.ajax({

url:'/get/vote',

type:"GET",

dataType:'JSON',

success:function (arg) {

$('#userList').empty();

$.each(arg,function (k,v) {

var li = document.createElement('li');

li.setAttribute('uid',k);

li.innerText = v.name + "(" + v.count + ')' ;

$('#userList').append(li);

})

}

})

}

setInterval(get_vote,3000);

二、长轮询

views.py

from flask import Flask,render_template,request,jsonify,session

import uuid

import queue

app = Flask(__name__)

app.secret_key = 'asdfasdfasd'

USERS = {

'1':{'name':'贝贝','count':1},

'2':{'name':'小东北','count':0},

'3':{'name':'何伟明','count':0},

}

QUEQUE_DICT = {

}

@app.route('/user/list')

def user_list():

user_uuid = str(uuid.uuid4())

QUEQUE_DICT[user_uuid] = queue.Queue()

session['current_user_uuid'] = user_uuid

return render_template('user_list.html',users=USERS)

@app.route('/vote',methods=['POST'])

def vote():

uid = request.form.get('uid')

USERS[uid]['count'] += 1

for q in QUEQUE_DICT.values():

q.put(USERS)

return "投票成功"

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

def get_vote():

user_uuid = session['current_user_uuid']

q = QUEQUE_DICT[user_uuid]

ret = {'status':True,'data':None}

try:

users = q.get(timeout=5)

ret['data'] = users

except queue.Empty:

ret['status'] = False

return jsonify(ret)

if __name__ == '__main__':

app.run(threaded=True)

html

Title

li{

cursor: pointer;

}

{% for key,val in users.items() %}

{{val.name}} ({{val.count}})

{% endfor %}

$(function () {

$('#userList').on('click','li',function () {

var uid = $(this).attr('uid');

$.ajax({

url:'/vote',

type:'POST',

data:{uid:uid},

success:function (arg) {

console.log(arg);

}

})

});

get_vote();

});

/*

获取投票信息

*/

function get_vote() {

$.ajax({

url:'/get/vote',

type:"GET",

dataType:'JSON',

success:function (arg) {

if(arg.status){

$('#userList').empty();

$.each(arg.data,function (k,v) {

var li = document.createElement('li');

li.setAttribute('uid',k);

li.innerText = v.name + "(" + v.count + ')' ;

$('#userList').append(li);

})

}

get_vote();

}

})

}

以上这篇python轮询机制控制led实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: python轮询机制控制led实例

本文地址: http://www.cppcns.com/jiaoben/python/311718.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值