歡迎您光臨本站 註冊首頁

python輪詢機制控制led實例

←手機掃碼閱讀     techdo @ 2020-05-05 , reply:0

我就廢話不多說了,大家還是直接看代碼吧!
# -*- 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
": ser.write("c") if e == "0
": 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
  • {% for key,val in users.items() %}

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

  • {% endfor %}


二、長輪詢
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
  • {% for key,val in users.items() %}

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

  • {% endfor %}



[techdo ] python輪詢機制控制led實例已經有279次圍觀

http://coctec.com/docs/python/shhow-post-232917.html