# IOTServer **Repository Path**: zuozl1992/iotserver ## Basic Information - **Project Name**: IOTServer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-06 - **Last Updated**: 2022-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 智能家居 > 项目Gitee地址:https://gitee.com/zuozl1992/iotserver > > 项目流程管理:https://docs.qq.com/sheet/DRVNFY1JYRWNXRGpm * 物联网行业典型应用 * 市场规模成熟,应用数据庞大 * 品牌 * 米家 > 米家App > > 语音助手-小爱同学 > > 小米集团22年一季度财报 > > IOT > > ​ 2021年,小米在全球范围内持续推进手机×AIoT战略,形成长期领先优势。截至2021年12月31日,小米AIoT连接设备(不包括智能手机、平板及笔记本电脑)数已达4.34亿件,同比增长33.6%;拥有五件及以上连接至小米AIoT平台设备(不包括智能手机、平板及笔记本电脑)的用户数达到880万,同比增长40.4%。2021年12月,小爱同学月活用户同比增长23.3%,达1.07亿;米家App的月活用户同比增长42.0%,达6390万。 * 云米 * Yeelight * Aqara * 石头 * 智米 > MIOT物联网协议 > > 所有的厂家,只要符合该协议,均可认证加入生态 > > 产品接入,云接入 > > WIFI/BLUE Mesh/Zigbee > > 挑选成功的案例,投资,质量提升,价钱补贴,产品收购,XX摄像头,米家摄像头 * 华为 > 认证 * 阿里 > 厂家合作 * 美的/美居 > 小家电 * 海尔/智家 * Home Kit * 谷歌 * 亚马逊 * 项目目标 * 了解智能家居行业应用背景 * 掌握智能家居系统(IOT平台)基本的架构 * 巩固所学技术,掌握C++开发高级能力 * 组成 * 服务(IOT平台) * 网关 * 设备(模拟) * 灯 * 开关 * 锁 * 传感器 * 温度 * 湿度 * 光照 * 二氧化碳 * 紫外线 * 入口(APP、语言助手) * 分组 * 5~6人一组 * 合理搭配 * 明确设计任务 * 明确具体项目要做什么(需求确定过程) > XXX小组:智慧大棚 * 立项 * 召开立项会议 * 选定组长 * 项目题目 * 项目功能 * 生成会议记录 * 半小时 * 提交产品功能介绍 * 传感器、控制器数量的要求:8个 * 大功能条目:5个 * 采集传感器数据 * 控制执行器动作 * 自动通风 * 自动灌溉 * 完善团队表格 * 【腾讯文档】智能家居项目开发记录 https://docs.qq.com/sheet/DRVNFY1JYRWNXRGpm * 组名 * 组长 * 功能 * 组成 * 服务器 * 客户端 * 网关 * 设备 * 架构 * ![](sources\1.png) * App/Client * 环境数据查看 * 环境数据统计(历史数据) * 执行设备的控制 * 执行设备的控制记录 * 智能功能的设定 > 自动通风开关 * 智能功能执行记录 * 环境展示/数据大屏 > 位置示意图 * 监控 * 账号 * 登录 * Server * 用户 - 身份校验 - 获取指定传感器数据 - 获取指定设备的状态 - 获取指定传感器的历史数据 - 获取指定设备的历史记录 - 控制设备 - 控制功能开关 * 设备 - 接收数据 - 下发控制指令 * 设备/网关 * 上传数据 * 接收控制指令 * 指令队列(网关) * 虚拟设备 * 传感器 * 温湿度,所有小组采纳 * 通过网关接入 * 数值 * 温湿度传感器 * 二氧化碳-浓度 * 光照强度-光强 * 紫外线强度-光强 * PM2.5-浓度 * 阈值 * 火光传感器 * 甲烷传感器 * 烟雾传感器 * 红外传感器 * 对射传感器 * 反射传感器 * 执行器 * 风扇 * 空调 * 遮阳棚 * 电动窗户 * 电动窗帘 * 自动灌溉设备 * 闸机 * 灯 * Day1任务 * 立项报告 * 需求报告 * 虚拟设备 * 传感器 * 组长,每个设备的截图发给我 * 设计 * 服务器 * 网络服务:用户/设备 - 监听端口 - 维持连接 - 收发数据 * 配置 - 读取配置 - 保存配置 * 数据库 - 连接数据库 - 插入数据 - 查询数据 - 更新数据(改密码) * 日志 - 记录日志 - 查询日志 * 服务器设计 * 服务器控制类-ServerControl-单例类 > 服务器运行的顶层控制类 > > 提供服务器对外的基本函数 * 服务器初始化-ServerInit(); * 服务器启动-ServerStart(); * 网络模块 * 网络类-NetMain-单例类 > 网络模块的顶层类 > > 提供网络类对外基本函数 * TCP网络服务初始化 * 启动TCP网络服务 * Day2任务 * 风扇 * 开关 * 挡位 * 灯 * 开关 * 色温 * 黄色 * 白色 * 颜色 * 红色 * 绿色 * 蓝色 * 报警器 * QtTextSpeech * 将文件转语言输出 * ```c++ #include "Windows.h" Beep(455, 5000); //频率 //时长 ``` * 根据系统要求,实现对应的执行器 * 提供本地控制功能 * 符合实际设备需求 * 界面要同真实设备匹配 * 组长统一截图发给我 * 协议 * 要求 * 包分割明显与容易 * 类型明确 * JSON * 示例 * ```json { "name" : "zhangsan", "age" : 35, "money" : 6585.5, "is_work": false, "children": [ { "name": "zhangA", "age": 5 }, { "name": "zhangB", "age": 2 } ], "wife": { "name": "zhaolinlin" "age": 33 } } ``` * 规则 * 大括号包围 * 数据内容以键值对形式存在 * 同级键值对以逗号隔开 * 健只能是字符串 * 值可以是任意类型 * 数字 * 字符串 * 布尔类型 * 数组 * 可以是任意类型 * 对象(JSON) * 协议 * 规定每一条协议中应当具有协议类型字段 * 客户端----服务器 * 设备-----服务器 * 上行数据(设备-->服务器) * 心跳包 * ```json { "type": 1001 } ``` * * 传感数据 * ```json { "type": 1002 } ``` * 温度 * ```json { "type": 1002, "device_type_id": 101, "device_type_index": 1, "value": 35.6 } { "type": 1002, "sensor_type": 101, "sensor_id": 2 } ``` * double * 湿度 * ```json { "type": 1002, "sensor_type": 102, "sensor_id": 1 } { "type": 1002, "sensor_type": 102, "sensor_id": 2 } ``` * double * 光照 * int * 紫外线 * int * 对射传感器状态 * 反思传感器状态 * 火光传感器状态 * 下行数据(服务器-->设备) * 控制指令 * 电机 * 启动 * 速度 * 方向 * 停止 * 灯 * 打开 * 颜色 * 亮度 * 关闭 * 空调 * 打开 * 模式 * 温度 * 风力 * 风向 * 关闭