项目描述:
将无线倾角传感器、无线电流传感器数据对接到涂鸦云平台。
源代码:

 """www.daq-iot.com数采物联网版权所有,非授权禁止商业目的使用"""
import base64
import hashlib
import hmac
import traceback
import ssl
import paho.mqtt.client as mqtt
import json
import os
import ssl
import time
import openpyxl
import pandas as pd
from flask import Flask
from flask import requestapp = Flask(__name__)
def logintime():return int(time.time())
def datatime():return int(round(time.time() * 1000))
def getdeviceid(m):file_name = ".\\涂鸦云对接目录.xlsx"file_result = os.path.join(file_name)wb = openpyxl.load_workbook(file_result)  # 首先获取excel文件生成对象wb 使用openpyxl.load_workbook 方法lie = pd.DataFrame(pd.read_excel(file_result))sheet = wb.activefor i in range(1, len(lie) + 2):cell = sheet.cell(row=i, column=1)cv = cell.valueif cv ==  m:dev = sheet.cell(row=i, column=2)dv = dev.valuereturn dv
def getdeviceselect(m):file_name = ".\\涂鸦云对接目录.xlsx"file_result = os.path.join(file_name)wb = openpyxl.load_workbook(file_result)  # 首先获取excel文件生成对象wb 使用openpyxl.load_workbook 方法lie = pd.DataFrame(pd.read_excel(file_result))sheet = wb.activefor i in range(1, len(lie) + 2):cell = sheet.cell(row=i, column=1)cv = cell.valueif cv == m:dev = sheet.cell(row=i, column=3)dv = dev.valuereturn dv
def getdevtype(m):file_name = ".\\涂鸦云对接目录.xlsx"file_result = os.path.join(file_name)wb = openpyxl.load_workbook(file_result)  # 首先获取excel文件生成对象wb 使用openpyxl.load_workbook 方法lie = pd.DataFrame(pd.read_excel(file_result))sheet = wb.activefor i in range(1, len(lie) + 2):cell = sheet.cell(row=i, column=1)cv = cell.valueif cv == m:dev = sheet.cell(row=i, column=4)dv = dev.valuereturn dvdef hmac_sha256(key, value):"""hmacsha256加密:param key::param value: 加密字符串:return: 加密结果转换为16进制字符串,并大写"""message = value.encode("utf-8")return hmac.new(key.encode("utf-8"), message, digestmod=hashlib.sha256).hexdigest()@app.route("/he/data/push/global", methods=['POST'])
def he_data_push_global():try:print('**** Receive Post Data *****')data = request.get_data()data= data.decode("utf-8")data=data.replace("'",'"')json_data = json.loads(data)print(json_data)IMEI=json_data["IMEI"]deviceid = getdeviceid(IMEI)deviceselect = getdeviceselect(IMEI)if getdevtype(IMEI)=='倾斜':time1=logintime()time2=datatime()# print(json_data)# data=data[2:-1]data=json_data["payload"]# print(data)data = str(data).replace("'", '"')data=json.loads(data)# print(data)data=data["APPdata"]# print(str(data))debs64=base64.b64decode(data)debs64=str(debs64)[11:-1]debs64=debs64.replace("{",'{"')debs64 = debs64.replace(",", '","')debs64 = debs64.replace(":", '":"')debs64 = debs64.replace("}", '"}')debs64=json.loads(debs64)jiaodu=int(debs64["angle"])/10dianliang=debs64["BT"]realdata={"msgId":"45lkj3551234001","time":time2,"data":{"jiaodu":{"value":int(jiaodu*10),"time": time2},"dianliang":{"value":int(float(dianliang)*10),'time': time2}}}elif getdevtype(IMEI) == '电流':time1 = logintime()time2 = datatime()payload = json_data['payload']['serviceData']dianliu=payload["IntData2"]dianlaing=payload["VoltageCur"]realdata = {"msgId": "45lkj3551234001","time": time2,"data": {"dianliu": {"value": dianliu,"time": time2},"dianliang": {"value": dianlaing,'time': time2}}}print(realdata)TASK_TOPIC = 'tylink/%s/thing/property/report'%deviceid  # 客户端发布消息主题# print(TASK_TOPIC)client_id = "tuyalink_%s"%deviceidusername="%s|signMethod=hmacSha256,timestamp=%s,secureMode=1,accessType=1"%(deviceid,time1)value="deviceId={},timestamp={},secureMode=1,accessType=1".format(deviceid,time1)password=hmac_sha256(deviceselect,value)# print(value)# print(client_id,username,password)"""client_id是连接到代理。如果client_id的长度为零或为零,则行为为由使用的协议版本定义。如果使用MQTT v3.1.1,那么一个零长度的客户机id将被发送到代理,代理将被发送为客户端生成一个随机变量。如果使用MQTT v3.1,那么id将是随机生成的。在这两种情况下,clean_session都必须为True。如果这在这种情况下不会产生ValueError。注意:一般情况下如果客户端服务端启用两个监听那么客户端client_id 不能与服务器相同,如这里用时间"20190222142358"作为它的id,如果与服务器id相同,则无法接收到消息"""client = mqtt.Client(client_id, transport='tcp')client.username_pw_set(username, password)client.tls_set(ca_certs=None, certfile=None, keyfile=None, cert_reqs=ssl.CERT_REQUIRED,tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None)client.connect("m1.tuyacn.com", 8883, 60)  # 此处端口默认为1883,通信端口期keepalive默认60# client.username_pw_set("", "")# client.connect("127.0.0.1", 1883, 5)client.loop_start()"""客户端发布消息:param message: 消息主体:return:"""# publish(主题:Topic; 消息内容)client.publish(TASK_TOPIC, json.dumps(realdata, ensure_ascii=False))print(realdata)print("Successful send message!")return 'POST SUCCESS'except:print(traceback.format_exc())return repr(Exception)passif __name__ == '__main__':app.run(host='0.0.0.0', debug=True, port=8002)

ctwing电信AEP平台对接涂鸦智能云平台python程序源码相关推荐

  1. 微信小程序(图像识别)腾讯云、百度智能云API(含源码)

    前言 近期因为自己生活上的需要,开发了一款图像识别小程序.在开发初期,自己浏览参考了大量网上现成存在的小程序,根据体验功能的使用情况,基本都能达到其所述功能.但是有个问题是,很多小程序图像识别功能过于 ...

  2. 计算机毕业设计ssm贵工程线上拍卖平台的设计与实现c1jil系统+程序+源码+lw+远程部署

    计算机毕业设计ssm贵工程线上拍卖平台的设计与实现c1jil系统+程序+源码+lw+远程部署 计算机毕业设计ssm贵工程线上拍卖平台的设计与实现c1jil系统+程序+源码+lw+远程部署 本源码技术栈 ...

  3. 计算机毕业设计ssm基于SSM的资产管理平台的设计与实现hx448系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于SSM的资产管理平台的设计与实现hx448系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于SSM的资产管理平台的设计与实现hx448系统+程序+源码+lw+远程部署 ...

  4. 计算机毕业设计ssm高校求职招聘智能推荐1875f系统+程序+源码+lw+远程部署

    计算机毕业设计ssm高校求职招聘智能推荐1875f系统+程序+源码+lw+远程部署 计算机毕业设计ssm高校求职招聘智能推荐1875f系统+程序+源码+lw+远程部署 本源码技术栈: 项目架构:B/S ...

  5. 地铁路线图云开发小程序源码和配置教程

    地铁路线图小程序源码是一款包含了北京.上海.广州.郑州.山东.杭州等全国近50个城市的地铁路线图, 涵盖了这些城市如地铁1号线2号线全部路线图,以帮助用户更快更方便的了解和体验该城市的交通, 一目了然 ...

  6. 计算机毕业设计ssm基于JAVA毕业生发展去向查询平台及数据统计系统6263k系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于JAVA毕业生发展去向查询平台及数据统计系统6263k系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于JAVA毕业生发展去向查询平台及数据统计系统6263k系统+程序 ...

  7. 最新JAVA智能微信停车场小程序源码+文档/兼容性很高

    正文: ​JAVA开发的智能微信停车场小程序源码+前端+部署文档 兼容市面上主流的多家摄像机,本停车场系统兼容市面上主流的多家相机,理论上兼容所有硬件,可灵活扩展. 相机识别后数据自动上传到云端并记录 ...

  8. 【免费领取】云开发工具箱小程序源码/游戏取名助手小程序源码

    本资源可免费获取,请至尾部读阅! 云开发工具箱小程序源码,游戏取名助手小程序源码,搭建就不多说了,直接用微信开发者工具导入,修改名字,发布即可. 免责声明:根据二○一三年一月三十日<计算机软件保 ...

  9. C#毕业设计——基于C#+asp.net+cs的CS应用程序平台多语种技术设计与实现(毕业论文+程序源码)——平台多语种技术

    基于C#+asp.net+cs的CS应用程序平台多语种技术设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+cs的CS应用程序平台多语种技术设计与实现,文章末尾附有本毕 ...

最新文章

  1. suse linux登录黑屏,SUSE Linux登录时黑屏解决办法
  2. Script:优化crs_stat命令的输出
  3. 商显行业高速发展,如何开启全新商务会议时代
  4. Vue:echarts画图实战,异步获取数据在Vue上使用echarts进行画图
  5. Cocos2d-x3.2 场景的生命周期
  6. 阿里技术 2019 年度热文 Top10 出炉,你错过哪些?
  7. 手游行业洞察:Project Makeover成爆款,中国手游出海如何破局
  8. Arduino ESP8266编程深入要点
  9. P5110-块速递推【特征方程,分块】
  10. MATLAB中,信号的频谱图该怎么绘制?横坐标如何标注出频率值?
  11. mongodb mysql 写_MySQL和MongoDB语句的写法对照
  12. 《大数据》2020年第4期目次摘要
  13. ffmpeg (一):起步
  14. C#华氏度转换成摄氏度的代码QVQ
  15. python apkg,Python 自动加固APK
  16. storm风暴英雄 tempo_19.4版本TempoStorm 风暴英雄天梯环境报告
  17. PHP:编写标准体重计算器
  18. APP开发:教你从零开始制作一个APP
  19. python在Scikit-learn中用决策树和随机森林预测NBA获胜者
  20. Convex Optimization 凸优化学习 第三章 凸函数(一)

热门文章

  1. 老二牛车Axure夜话:程序员眼中的原型设计视频教程之书到用时方恨少
  2. 【Pyside6】桌面应用--目录、代码结构设计(附案例)
  3. vue 仿今日头条_Vue仿今日头条实例详解_莺语_前端开发者
  4. 软件工程实验报告四软件总体设计及文档编写
  5. Scratch2Cards来自官网
  6. Bootstrap轮播
  7. 切比雪夫------切比雪夫不等式
  8. java中更改jdk版本_win10更改jdk版本的方法是什么_win10系统如何更改jdk版本图文教程...
  9. 930群控服务器虚拟机,安卓群控系统虚拟机版本跟真机版区别
  10. 物联网大三学生的感叹