体验申请请关注公众号 fay数字人
# 安装依赖
pip3 install -r requirements.txt
# 安装 Virtual Unit 服务
sudo sh ./install.sh
# 配置iotm
vunit\main.py
python3 main.py
# 启动服务
sudo systemctl start virtualunit
# 创建开机启动
sudo systemctl enable virtualunit
命令 | 描述 |
---|---|
help | 获取帮助 |
did | 获取单元 did (首次运行自动生成) |
stop | 关闭服务 |
.
├── main.py 主程序入口
├── database_core.py MongoDB 客户端
├── mqtt_client.py MQTT 客户端
├── relay_controller.py 继电器控制器
├── runnable 计划任务
│ ├── linkage_runnable.py 执行本地联动
│ ├── ping_runnable.py 发送心跳包
│ ├── relay_runnable.py 继电器状态保持
│ ├── sender_runnable.py 报告传感器数据
│ └── task_runnable.py 执行控制任务
├── scheduler
│ └── thread_manager.py 线程调度管理器
├── sensor 传感器
│ ├── my_sensor.py 传感器数据读取者
├── task 任务
│ ├── linkage_manager.py 本地联动管理器
│ └── task_manager.py 控制任务管理器
└── util.py 工具模块
字典 __RELAY_ID
中添加
'自定义编号': GPIO针脚Id
如:
__RELAY_ID = {
'1': 6,
}
*注:继电器编号,为字符串类型整数
import time
import database_core as dbc
import util
from scheduler.thread_manager import MyThread
__running = True
def __start_runnable():
while __running:
try:
# TODO 读取传感器数据
# 设 data 为传感器数据
data = 1.0
# 写入数据库
dbc.update_sensor_data('传感器端口', '传感器标题', '数据标签', data)
except BaseException as e:
print(e)
util.log('[X] 传感器发生了错误!')
def start():
MyThread(target=__start_runnable).start()
def cancel():
global __running
__running = False
4.3.2.1. 方法 __start_sensors 中添加:
__sensor_list.append(<传感器名称>_sensor)
如:
from sensor import my_sensor
def __start_sensors():
__sensor_list.append(my_sensor) # 添加传感器
4.3.2.2. 初始化传感器GPIO针脚 (非必须,仅GPIO接口传感器)
方法 __init_gpio 中添加:
GPIO.setup(GPIO端口Id, GPIO.IN)
如:
def __init_gpio():
with warnings.catch_warnings():
warnings.simplefilter("ignore")
GPIO.cleanup()
GPIO.setmode(GPIO.BCM)
GPIO.setup(6, GPIO.IN) # 初始化GPIO针脚
方法 __register_linkages 中添加:
linkage_manager.add_linkage(Linkage('联动Id', 最小触发值, 最大触发值, '传感器端口', '传感器标题', '数据标签', 继电器编号, 开关状态, 保持时间))
如:
def __register_linkages():
# 当环境度在区间 [30, 100] 时,打开编号为'3'的继电器,持续5分钟
linkage_manager.add_linkage(Linkage('linkage_in_1', 30, 100, 'Port1', '温度传感器', 'temperature', 3, 1, 5))
官网:https://www.emqx.com/zh
配置:
vunit内mqtt_client.py
iotm3内/application/api/controller/Emqx.php
iotm3内/application/common/controller/Emqx.php
iotm3内/Gateway/Applications/other/start_mqtt.php
官网:https://www.taosdata.com/
配置:
/application/common/controller/Tdengine.php
若需要新增传感器需要添加超级表
超级表格式model_标签名(如:cl2)
Field | Type | Length | Note |
=================================================================================
ts | TIMESTAMP | 8 | |
val | FLOAT | 4 | |
istext | BOOL | 1 | |
content | BINARY | 40 | |
content_des | NCHAR | 50 | |
did | BINARY | 100 | TAG |
sensorid | INT | 4 | TAG |
port | BINARY | 100 | TAG |
配置:
addons\smsbao\config.php
配置:
application\common\controller\Gizwits.php
基础框架:https://doc.fastadmin.net/doc
接入需配置伪静态
Nginx
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last; break;
}
}
cd Gateway
调试:
php start.php start
正式运行:
php start.php start -d
需要确保配置好redis和emqx,域名对应为您设置的域名