智慧卫生间
- 系统组成
- 智慧卫生间系统结构图
- 门锁感应开关
- 开关量采集模块
- 中控主机
- 服务端/云平台
- API文档
- 获取ApiKey/SecretKey
- 获取Access_token
- 获取卫生间实时数据
- 返回说明
系统组成
智慧卫生间系统结构图
门锁感应开关
·技术参数:
名称 | 参数值 |
---|---|
产品尺寸 | 75mm x 53 mm |
产品材质 | 304不锈钢 |
信号输出 | 开关量输出 |
引脚 | VCC/GND/OUT |
适用场景 | 内开门 |
用途 | 开关信号输出 |
·产品图:
开关量采集模块
·技术参数:
名称 | 参数值 |
---|---|
输入输出通道 | 16路IO开关量 |
通讯接口 | 1路RS485串口+1路RJ45网口 |
工作电压 | DC9~30V |
用途 | 采集门锁感应开关信号并传输至中控主机 |
中控主机
无特殊要求,作为本地与服务端/云平台之间的通信载体。
服务端/云平台
终端数据请求的平台
API文档
获取ApiKey/SecretKey
ApiKey/SecretKey采用 线下获取的方式,手动分配。
获取Access_token
向授权服务地址http://xxxxxx:12345/token(示意)发送post请求,并在data中带上以下参数:
·api_key : 你的ApiKey;
·secret_key: 你的SecretKey;
·expire_time: 有效期,单位为秒,值0为"永久";
例如:
#pythonimport requestsurl = 'http://xxxxxx:12345/token'# 你的 API Key 和 Secret Key
api_key = 'xxxxxxxx'
secret_key = 'xxxxxxxx'
expire_time = 3600 # token 的有效期(秒)
# expire_time = 0 "永久的" # 构建请求数据
data = {'api_key': api_key,'secret_key': secret_key,'expire_time': expire_time
}# 发送请求
response = requests.post(url, json=data)# 打印响应
if response.status_code == 200:print("Token:", response.json().get('token'))
else:print("Error:", response.json().get('message'))
获取卫生间实时数据
向API服务地址http://xxxxxx:12345/data使用POST发送请求
请求示例:
HTTP方法:POST
请求URL: http://xxxxxx:12345/data
import json
import requests# 服务端的 URL
url = 'http://xxxxxx:12345/data'# 假设的 Token
token = "xxxxxxxx"# 构建请求头部,包含 Token
headers = {'Authorization': token,'Content-Type': 'application/json'
}# 请求的详细数据
data = {'project_id': 'Project1','floor': 'default', # 可以是 'default' 或具体楼层号'gender': 'female' # 可以是 'male', 'female' 或 'default'
}# 发送请求
response = requests.get(url, headers=headers, data=json.dumps(data) )# 输出服务端响应
print(response.json())
·project_id: 项目名称
·floor: 楼层编号,可以是 1 2 3 4 5 或者 default就是获取当前项目的所有存在的楼层, 也可以是指定多个楼层
例如: ‘floor’: ‘1’ , ‘floor’: ‘2’ , ‘floor’: ‘2_3_5’, ‘floor’: ‘default’
·gender: 性别,请求男还是女或者全部请求 可以是 ‘male’, ‘female’ 或 ‘default’
返回说明
返回结果:
字段 | 类型 | 说明 |
---|---|---|
message | string | 返回Suceess或者Failed,用来判断是否请求成功 |
project_id | string | 返回当前请求的项目名 |
floor | string | 返回当前请求的楼层号 |
gender | string | 返回当前请求的性别 |
combined_data | list&dict | 返回当前请求的楼层号的厕所使用数据 |
combined_data格式如下
[{'floor': '3', 'signal_data': '0101010'},{'floor': '5', 'signal_data': '0101010'},{'floor': '7', 'signal_data': '0101010'}
]
其中
floor代表楼层号
signal_data代表最终数据,假设一层有7个坑位,那signal_data的长度就为7,0代表占用,1代表空闲