精华内容
下载资源
问答
  • 2021-01-28 02:57:23

    说明:

    作者:王琦

    来源:美团技术团队

    最新互联网大厂面试真题、Java程序员面试策略(面试前的准备、面试中的技巧)请访问GitHub

    我们生活中随处可见各种巡检系统,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他 IT 系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。

    一、背景

    为了保障数据库的稳定运行,以下核心功能组件必不可少:

    25f22fc7dba35809a7bad0d3e3806c12.png

    其中,数据库巡检作为运维保障体系最重要的环节之一,能够帮助我们发现数据库存在的隐患,提前治理,做到防患于未然。对于大规模集群而言,灵活健壮的自动化巡检能力,至关重要。

    任何系统都会经历一个原始的阶段,最早的巡检是由中控机 + 定时巡检脚本 + 前端展示构成的。但是,随着时间的推移,老巡检方案逐渐暴露出了一些问题:

    巡检定时任务执行依赖中控机,存在单点问题;

    巡检结果分散在不同的库表,无法进行统计;

    巡检脚本没有统一开发标准,不能保证执行的成功率;

    每个巡检项都需要单独写接口取数据,并修改前端用于巡检结果展示,比较繁琐;

    巡检发现的隐患需要 DBA 主动打开前端查看,再进行处理,影响整体隐患的治理速度;

    ……

    所以我们需要一个灵活、稳定的巡检系统来帮助我们解决这些痛点,保障数据库的稳定。

    二、设计原则

    巡检系统的设计原则,我们从以下三个方面进行考虑:

    稳定 :巡检作为保证数据库稳定的工具,它自身的稳定性也必须有所保证;

    高效 :以用户为中心,尽量化繁为简,降低用户的使用成本,让新同学也能迅速上手治理和管理隐患;提高新巡检部署效率,随着架构、版本、基础模块等运维环境不断变化,新的巡检需求层出不穷,更快的部署等于更早的保障;

    可运营 :用数据做基础,对巡检隐患进行运营,包括推进隐患治理,查看治理效率、趋势、薄弱点等。

    三、系统架构

    美团 MySQL 数据库巡检系统架构图设计如下所示。接下来,我们按照架构图从下到上的顺序来对巡检系统主要模块进行简单的介绍。

    74455abb52edf29e134f4dcbc16b5b75.png

    1. 执行层

    巡检执行环境 :由多台巡检执行机组成,巡检任务脚本会同时部署在所有执行机上。执行机会定时从巡检 Git 仓库拉取最新的脚本,脚本使用 Python Virtualenv + Git 进行管理,方便扩充新的执行机。

    任务调度 :巡检任务使用了美团基础架构部研发的分布式定时任务系统 Crane 进行调度,解决传统定时任务单点问题。Crane 会随机指派某一台执行机执行任务,假如这台执行机出现故障,会指派其他执行机重新执行任务。一般一个巡检任务对应着一个巡检项,巡检任务会针对特定的巡检目标根据一定的规则来判断是否存在隐患。

    巡检目标 :除了对生产数据库进行巡检以外,还会对高可用组件、中间件等数据库周边产品进行巡检,尽可能覆盖所有会引发数据库故障的风险点。

    2. 存储层

    巡检数据库 :主要用来保存巡检相关数据。为了规范和简化流程,我们将巡检发现的隐患保存到数据库中,提供了通用的入库函数,能够实现以下功能:

    自动补齐隐患负责人、隐患发现时间等信息;

    入库操作幂等;

    支持半结构化的巡检结果入库,不同巡检的隐患结果包括不同的属性,比如巡检 A 的隐患有“中间件类型”,巡检 B 有“主库 CPU 核数”,以上不同结构的数据均可解析入库;

    针对表粒度的隐患项,如果分库分表的表出现隐患,会自动合并成一个逻辑表隐患入库。

    巡检脚本 Git 仓库 :用来管理巡检脚本。为了方便 DBA 添加巡检,在系统建设过程中,我们增加了多个公共函数,用来降低开发新巡检的成本,也方便将老的巡检脚本迁移到新的体系中。

    3. 应用层

    集成到数据库运维平台:作为隐患明细展示、配置巡检展示、管理白名单等功能的入口。为了提高隐患治理效率。我们做了以下设计。

    隐患明细展示页面会标注每个隐患出现的天数,便于追踪隐患出现原因。

    配置新的巡检展示时必须要同时制定隐患解决方案,确保隐患治理有章可循,避免错误的治理方式导致“错上加错”。

    隐患运营后台 :这个模块主要目的是推进隐患的治理。

    运营报表,帮助管理者从全局角度掌握隐患治理进展,报表包括隐患趋势、存量分布、增量分布、平均治理周期等核心内容,进而由上到下推动隐患治理;报表数据同样是通过 Crane 定时任务计算获得。

    = 隐患治理催办功能,用来督促 DBA 处理隐患。催办内容中会带有隐患具体内容、出现时长、处理方案等。催办形式包括大象消息、告警,具体选用哪种形式可根据巡检关键程度做相应配置。

    外部数据服务 :主要是将巡检隐患数据提供给美团内部其他平台或项目使用,让巡检数据发挥更大的价值。

    对接先知平台,美团 SRE 团队开发的主要面向研发人员(下称 RD)用户的风险发现和运营平台,平台接收各服务方上报的隐患数据,以 RD 视角从组织架构维度展示各服务的风险点,并跟进 RD 处理进度。巡检系统会把需要 RD 参与治理的隐患,比如大表、无唯一键表等,借助先知平台统一推送给 RD 进行治理。

    运维周报,主要面向业务线 RD 负责人和业务线 DBA,以静态报告形式展示业务线数据库运行情况以及存在的问题,巡检隐患是报告内容之一。

    四、巡检项目

    巡检项目根据负责方分为 DBA 和 RD,DBA 主要负责处理数据库基础功能组件以及影响服务稳定性的隐患。RD 主要负责库表设计缺陷、数据库使用不规范等引起的业务故障或性能问题的隐患。也存在需要他们同时参与治理的巡检项,比如“磁盘可用空间预测”等。目前巡检项目共 64 个,类目分布情况如下图所示:

    4ccd23cb3a209412676c94f07706fcc4.png

    集群 :主要检查集群拓扑、核心参数等集群层面的隐患;

    机器 :主要检查服务器硬件层面的隐患;

    Schema/SQL :检查表结构设计、数据库使用、SQL 质量等方面的隐患;

    高可用 / 备份 / 中间件 / 报警 :主要检查相关核心功能组件是否存在隐患。

    下面,我们通过列举几个巡检任务来对巡检项做简单的说明:

    43ddd9b2fa146b952cdf16486b5a5553.png

    五、成果

    美团 MySQL 巡检系统已稳定运行近一年时间,基于新巡检体系上线的巡检项 49 个。通过巡检体系持续运行,在团队的共同努力下,我们共治理了 8000+ 核心隐患,近 3 个月隐患治理周期平均不超过 4 天,将隐患总数持续保持在极小的量级,有效地保障了数据库的稳定。

    c7c6765714ab769332d30c447442df66.png

    下面的隐患趋势图,展示了近一年中隐患的个数,数量突然增长是由于新的巡检项上线。从整体趋势上看,隐患存量有非常明显的下降。

    980915747b83dfc65d11a6bf8266af23.png

    除了推动内部隐患治理之外,我们还通过对接先知平台,积极推动 RD 治理隐患数量超过 5000 个。

    1ddec92463a9f7f24dbf474a938a5f22.png

    为了提升用户体验,我们在提升准确率方面也做了重点的投入,让每一个巡检在上线前都会经过严格的测试和校验。

    对比其他先知接入方,DBA 上报隐患在总量、转化率、反馈率几个指标上都处于较高水平,可见我们上报的隐患风险也得到了 RD 的认可。

    9b47b6651ed88c47d09de23929ebb96e.png

    指标说明:

    反馈率 = 截止到当前时刻反馈过的风险事件数量 / 截止到当前时刻产生的风险事件总量 * 100%;

    反馈准确率 = 截止到当前时刻反馈准确的风险事件数量 / 截止到当前时刻反馈过的风险事件总量 * 100%;

    转化率 = 截止到当前时刻用户反馈准确且需要处理的风险事件数量 / 截止到当前时刻产生的风险事件总量 * 100%。

    六、未来规划

    除了继续完善补充巡检项以外,未来巡检系统还会在以下几个方向继续探索迭代:

    提高自动化能力,完善 CI 和审计;

    加强运营能力,进一步细化每个隐患的重要程度,辅助决策治理优先级;

    隐患自动修复。

    更多相关内容
  • 仓库巡检办法与工作制度,仓库巡查卡,仓库巡查记录表.doc
  • #资源达人分享计划#
  • #资源达人分享计划#
  • 基于单片机仓库智能巡检车的设计

    千次阅读 2021-12-19 21:36:09
    本文对仓库智能巡检车进行了设计与研究,根据设计功能要求,制定了详细的设计方案,完成了电路原理图设计和软件程序设计。智能巡检车系统以STM32微处理器为核心,通过模块电路(避障电路、驱动电路、报警指示电路等...

      word完整版可点击如下下载>>>>>>>>     

     基于单片机的仓库智能巡检车的设计-硬件开发文档类资源-CSDN下载内容包括详细设计文档word版,附带开题报告和相关PPT等文档,供大家参考学习。也可在本博客主页找到更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/u013253075/45706262

    目  录

    摘要- I

    ABSTRACT II

    1  绪论- 1

    1.1  研究的背景及意义- 1

    1.2  国内外研究现状- 2

    1.3  论文的主要内容- 3

    2  系统总体方案设计- 4

    2.1  研究任务- 4

    2.2  总体方案设计- 4

    3  仓库智能巡检车硬件系统设计- 6

    3.1  中央处理器模块- 6

    3.2  STM32最小系统电路设计- 7

    3.3  超声波避障电路设计- 10

    3.4  电机驱动电路设计- 11

    3.5  温湿度电路设计- 12

    3.6  液晶显示屏电路设计- 14

    3.7  盗窃预警电路设计- 14

    3.8  火情预警电路设计- 15

    4  仓库智能巡检车软件系统设计- 17

    4.1  STM32中断介绍- 17

    4.2  超声波避障程序设计- 18

    4.3  电机驱动程序设计- 22

    4.4  温湿度程序设计- 25

    4.5  液晶显示屏程序设计- 28

    4.6  盗窃预警程序设计- 29

    4.7  火情预警程序设计- 29

    5  软件调试- 30

    5.1  开发环镜介绍- 30

    5.2  串口调试工具- 32

    5.3  系统测试- 32

    6  总结及展望- 36

    6.1  总结- 36

    6.2  展望- 36

    参考文献- 37

    致谢- 39

    附录- 40

    摘  要

    仓库作为存放物资和产品的地点,历来都受到人们的高度重视,智能自动化技术逐步取代传统人工巡检,成为巡检工作的新趋势。传统巡检采用人机结合方式,存在成本高、监控死角等问题,巡检效果并不理想。而对于某些恶劣的工作环境,例如高温室、冷藏库、化学反应室等,还可能危害巡检人员的人身健康。随着人工智能、微电子技术的发展,无人智能小车在仓库巡检中得到迅速发展。

    针对传统巡检方式所存在的隐患,本文对仓库智能巡检车进行了设计与研究,根据设计功能要求,制定了详细的设计方案,完成了电路原理图设计和软件程序设计。智能巡检车系统以STM32微处理器为核心,通过模块电路(避障电路、驱动电路、报警指示电路等)实时采集仓库内环境温湿度的变化,具备火情报警和盗窃报警功能,从而提高巡检车的智能化水平。通过实验环境验证,本文设计的巡检车操作简单、巡检效率高、工作时间长等特点。随着设计功能逐步完善,相信在不久的将来会被广泛的使用。

    关键词:STM32  仓库巡检车  PWM电机控制  超声波避障

    ABSTRACT

    Warehouse as a place to store materials and products, has always been highly valued by people, intelligent automation technology gradually replace the traditional manual inspection, become a new trend of inspection work.  The traditional patrolling inspection adopts man-machine combination method, which has the problems of high cost, dead corner monitoring and so on, and the patrolling effect is not ideal.  And for some harsh working environment, such as high greenhouse, cold storage, chemical reaction room, etc., may also endanger the health of inspectors.  With the development of artificial intelligence and microelectronic technology, unmanned intelligent car has been rapidly developed in warehouse inspection.  

    In view of the hidden trouble of the traditional inspection mode, this paper designed and researched the intelligent inspection vehicle of the warehouse. According to the design function requirements, a detailed design scheme was developed, and the circuit schematic diagram design and software program design were completed.  The intelligent inspection vehicle system takes the STM32 microprocessor as the core, collects the changes of ambient temperature and humidity in the warehouse in real time through the module circuit (obstacle avoidance circuit, driving circuit, alarm indicating circuit, etc.), and has the function of fire alarm and theft alarm, so as to improve the intelligent level of the inspection vehicle.  Through the verification of the experimental environment, the design of the inspection vehicle is simple operation, high inspection efficiency, long working time and other characteristics.  With the gradual improvement of the design function, it is believed that it will be widely used in the near future.  

    Keywords:STM32  warehouse inspection vehicle  PWM motor control ultrasonic obstacle avoidance

    1  绪论

    1.1  研究的背景及意义

    随着经济的高速发展,劳动力成本的不断上升。在当今社会,小到小区安保、工厂设备,大到粮库、快递仓储等大型仓库都面临着物资安全等问题......工作效率低等问题,难以满足企业对仓库巡检工作的高质量要求[1]。

    随着我国的科研水平的提升,微电子、传感器技术、......呈现只增不减的状况。如图1-1所示。

     1-1  2017-2020年事故发生趋势图

    通过以上数据得出,2017年到2020年仓库事故主要原因主要有盗窃、火灾、爆炸三大事故,且事故发生率逐年上升,发生的原因也更加多变,.......

    目前国内经济实用、可大规模应用的仓库监测预警的产品和技术可谓是少之又少。因此研究设计一款针对仓库环境监测预警的巡检车是很有必要的,用巡检车代替巡检人员,对仓库进行巡检,监测仓库安全状况,针对不同情况准备不同的预警设置,......

    1.2  国内外研究现状

    受到经济和技术的限制,与发达国家相比我国智能巡检车的研究起步较晚。但随着经济的高速发展,智能化技术的日益深入人心,我国已成为世界最大的机器人市场之一,......

    目前,市面上智能巡检车采用可携带多种传感器,通过硬件设备读取到信息,世界上第一台智能车研究开始于上世纪60年代末,国外研究时间和研究深度领先我国很多年,1968年美国斯坦福研究所推出世界第一台智能车Shakey,Shakey采用目前市面上最常见轮式移动,其结构主要靠两个主动轮带动从动轮移动。为了达到智能控制的效果,它添加了超声波传感器、.......。

    1.3  论文的主要内容

    本文以轮式移动智能巡检车为研究对象,对超声波避障技术、温湿度检测及报警指示电路进行了深入的研究。论文内容安排如下:

    第一章介绍了研究仓库智能巡检车的意义,进行了可行性和实用性的分析。.......

    第二章针对研究任务提出了仓库智能巡检车的总体方案设计。

    第三章根据系统整体框架,研究与分析了各模块的硬件设计。

    第四章介绍了各模块的软件程序设计。

    第五章介绍了开发环境的使用,进行了系统调试。

    第六章对系统电路进行了总结与展望。

    2  系统总体方案设计

    2.1  研究任务

    我国仓库具有场地面积大、仓库物料多且高、物资复杂等特点,使得传统人工巡检常常疏忽遗漏、难以达到预期的巡检效果。......本文主要有以下几个研究任务:

    (1)设计必须具备一定带负载能力,保证巡检车在工作中可以顺利通过多变的路面......

    (2)通过温湿度模块使巡检车能够实时检测仓库内温湿度变化,......

    (3)设计必须具有重量轻巧、结构紧凑、续航能力强等特点,......

    (4)设计在巡检工作中,具备自动移动、及时避让障碍物等功能,......

    (5)通过人体感应模块、火焰传感器模块能够及时监测仓库内是否有人闯入、......

    2.2  总体方案设计

    本系统采用模块化设计,方便了维护和后续的更新换代。系统将传感器采集的信号送入STM32微控制器中,信号经过控制器处理后,控制电机驱动、将环境数据显示到OLED屏上、安全报警等。通过超声波传感器采集方向、距离等信息,作为STM32微控制器信号输入量,......系统设计总体框图如图2-1所示。

    图2-1  系统设计总体框图

    3  仓库智能巡检车硬件系统设计

    3.1  中央处理器模块

    STM32F103系列单片机,它是基于ARM Cortex-M3内核微控制器,具有执行代码效率高、控制灵活、成本低等特点。设计所使用STM32F103C8T6单片机具有20K字节SRAM、......部结构框图如图3-1所示。

     

    图3-1  STM32F103内部结构图

    STM32F103C8T6单片机具有丰富的内部资源,比如,具有1个高级定时器和3个基本定时器,2个I2C接口:一种接口协议,多向控制总线,最快速度可达400Kpbs。2个SPI接口......

    3.2  STM32最小系统电路设计

    单片机最小系统,是指用最少的元器件构成单片机可以正常工作的系统,供电后单片机能够正常运行且只具备复位、下载程序功能且没有其他任何功能。......STM32最小系统电路如图3-2所示。

     

    图3-2  STM32最小系统电路

    (1)晶振电路

    晶振电路主要由晶振和陶瓷电容组成,为单片机提供系统时钟信号。时钟电路分为外部时钟电路、内部时钟电路,外部时钟电路是在OSC_IN管脚和OSC_OUT管脚接一个8MHz晶振,......。晶振电路如图3-3所示。

     

    图3-3  时钟电路

    (2)复位电路

    设计中为避免程序出现跑飞、死机但不能重新上电等情况,添加了手动按键复位电路。单片机复位电路如图3-4所示。

     

    图3-4  STM32复位电路

    (3)下载接口电路

    该系统板支持多种下载方式,包括SWD下载、USB接口下载、......调试下载接口电路如图3-5所示。

     

    图3-5  调试下载接口电路

    (4)启动模式选择电路

    如下表3-1所示,通过设置BOOT0、.......

    启动模式选择引脚

    启动模式

    说明

    BOOT0

    BOOT1

    X

    0

    FLASH存储器

    主内存存储器被选为启动区域

    0

    1

    系统存储器

    系统存储器被选为启动区域

    1

    1

    内存SRAM

    内置SRAM被选为启动区

    启动模式电路如图3-6所示。

     

    图3-6  STM32启动模式选择电路

    3.3  超声波避障电路设计

    随着科技的发展,我国电子超声波传感器种类很多,其中HC-SR04超声波模块备受电子爱好者的喜爱,采用5V供电时,测量距离在2cm-5m范围内,......超声波模块的实物结构如图3-7所示。

     图3-7  超声波模块实物图

    超声波是一种频率高于20KHz的声波,超声测距方法是根据蝙蝠仿生由此而来,超声波在空气中几乎沿直线传播、灵敏度高穿透力强。超声波模块具有体积小方便携带、HC-SR04模块电路如图3-8所示。

     

    图3-8  HC-SR04模块电路图

    3.4  电机驱动电路设计

    L298N电机驱动模块是单片机设计中最常用的电机驱动模块之一,其不但价格低廉、操作方便,芯片采用H桥设计,H桥优点可以实现单路直流电机的控制、.....L298N电机驱动模块实物如图3-9所示。

     

    图3-9  L298N驱动模块实物图

    设计采用STM32微控制器对巡检车进行控制,巡检车运动控制就是对电机控制,......电机驱动模块电路如图3-10所示。

     

    图3-10  L298N电机驱动电路

    电机动力驱动部分采用一块L298N电机驱动模块控制,......具体控制状态如表3-2所示。

    表3-2  端口与电机运动方向关系表

    ENA

    IN1

    IN2

    直流电机工作状态

    0

    X

    X

    停止

    1

    0

    0

     制动(刹车)

    1

    0

    1

    正转

    1

    1

    0

    反转

    1

    1

    1

    制动(刹车)

    3.5  温湿度电路设计

    DHT11数字温湿度传感器是电子设计开发中最常见的温湿度传感器之一,其外形封装采用集成式封装,内部集成了电阻式感湿元件与测温元件......

    DHT11是一款数字数字信号输出的温湿度传感器,......实物如图3-11所示。

     

    图3-11  DHT11温湿度模块实物图

    DHT11温湿度模块采用单线制串行接口,采用板接3.3V电压。......DHT11模块接口电路如图3-12所示。

     

    图3-12  DHT11温湿度模块接口电路

    3.6  液晶显示屏电路设计

    OLED液晶屏通常作为嵌入式设备的显示终端,主要用于显示用户编写的关键信息,......OLED显示屏实物图如图3-13所示。

    图3-13  OLED显示屏模块实物图

    该显示屏模块所用的驱动IC为SSD1306,其具有内部升压功能,......OLED显示屏接口电路如图3-14所示。

     

    图3-14  OLED显示屏接口电路

    3.7  盗窃预警电路设计

    人体体温一般都恒定在37℃,人体会发出特定的红外线,......HC-SR501人体感应模块实物如图3-15所示。

    图3-15  HC-SR501人体感应模块实物图

    模块预留光敏电阻位置,在光敏电阻位置加上光敏电阻,HC-SR501人体感应模块接口电路如图3-16所示。

     

    图3-16  HC-SR501人体感应模块接口电路

    3.8  火情预警电路设计

    火焰传感器模块可以用来探测火源位置,火焰探头起着非常重要的作用,它相当于人的眼睛来探测火源。利用它可以制作灭火机器人、足球机器人等。火焰传感器的探测角度达60℃,对火焰光谱特别灵敏。......火焰传感器实物如图3-17所示。

     

    图3-17  火焰传感器模块实物图

    该模块支持供电电压范围3.3V-5V,传感器输出数字信号,.......火焰传感器接口电路如图3-18所示。

     

    图3-18  火焰传感器接口电路

    4  仓库智能巡检车软件系统设计

    4.1  STM32中断介绍

    中断顾名思义就是正在执行某一事件,被另一事件打断。......中断示意图如图4-1所示。

     

    图4-1  中断示意图

    STM32具有极其强大的中断功能,中断是程序设计中必不可少的。下面详细介绍STM32中断配置过流程。

    (1)首先使能外设中断,使能中断由外设相关中断使能位控制,......

    (2)其次初始化NVIC_InitTypeDef函数,配置中断抢占优先级和子优先级,.......

    (3)最后编写中断服务函数,用户根据自身需求自行编写并配置中断触发条件,......

    4.2  超声波避障程序设计

    超声波测距模块工作原理,超声波测距的时序如图4-2所示。

    图4-2  HC-SR04测距时序图

    由时序图可看出,使用模块只需在Trig引脚输入10us以上的高电平,系统便可发出8个40KHz的脉冲,然后等待检测回波信号。......

    根据Echo管脚输出高电平的持续时间可以计算距离值。即距离值为:(高电平时间*340m/s)/2。当测量距离超过HC-SRO4的测量范时,......程序系统设计流程图如图4-3所示。

    图4-3  程序设计流程图

    利用STM32驱动HC-SR04需要做好几个关键点:引脚的配置、时序的控制、时间差的测量。

    (1)引脚的配置

    首先进行引脚配置,模块共有4个引脚,......

    相关的配置代码如下:

    void SR04_Init(void)

    {

    GPIO_InitTypeDef GPIO_InitStructer;

    TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructer;

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB,ENABLE);

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);

    GPIO_InitStructer.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_InitStructer.GPIO_Mode=GPIO_Mode_Out_PP;

    GPIO_InitStructer.GPIO_Pin=GPIO_Pin_8;

    GPIO_Init(GPIOB,&GPIO_InitStructer);

    GPIO_InitStructer.GPIO_Mode=GPIO_Mode_IN_FLOATING;

    GPIO_InitStructer.GPIO_Pin=GPIO_Pin_9;

    GPIO_Init(GPIOB,&GPIO_InitStructer);

    TIM_DeInit(TIM4);

    TIM_TimeBaseInitStructer.TIM_Period=999;

    TIM_TimeBaseInitStructer.TIM_Prescaler=71;

    TIM_TimeBaseInitStructer.TIM_ClockDivision=TIM_CKD_DIV1;

    TIM_TimeBaseInitStructer.TIM_CounterMode=TIM_CounterMode_Up;

    TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructer);

    TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);

    NVIC_Config();

    TIM_Cmd(TIM4,DISABLE);

    }

    (2)时序控制

    其次设定HC-SR04模块的时序:首先给Trig管脚10US以上的高电平,然后等待Echo管脚接受高电平。

    (3)时间差测量

    最后,时间差测量也是最重要的一步,它关系到最终测量的距离,检测Echo管脚高电平的持续时间可以得出距离信息,......

    float Senor_Using(void)

    {

    float length=0,sum=0;

    u16 tim;uint i=0;

    while(i!=5)

    {

    PBout(8)=1;

    delay_us(20);

    PBout(8)=0;

    while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==RESET);

    TIM_Cmd(TIM4,ENABLE);

    i+=1;

    while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9)==SET);

    TIM_Cmd(TIM4,DISABLE);

    tim=TIM_GetCounter(TIM4);

    length=(tim+overcount*1000)/58.0;

    sum=length+sum;

    TIM4->CNT=0;

    overcount=0;

    delay_ms(10);

    }

    length=sum/5;

    return length;

    }

    4.3  电机驱动程序设计

    程序设计首先对各个模块进行初始化,其次通过超声波传感器检测周围环境信息,......电机驱动程序流程图如图4-4所示。

    图4-4  电机驱动程序流程图

    电机的工作状态由单片机GPIO口控制,首先GPIO初始化,利用GPIOA的1/2/3/4,1/2/3/4输出高低电平,GPIOA配置成推挽输出,需要配置为复用推挽。具体代码如下:

    void TIM3_PWM_Init(void)

    {

    GPIO_InitTypeDef GPIO_InitStructure;

    TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

    TIM_OCInitTypeDef TIM_OCInitStructure;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);

    TIM_TimeBaseStructure.TIM_Period=899;

    TIM_TimeBaseStructure.TIM_Prescaler=0;

    TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;

    TIM_TimeBaseStructure.TIM_ClockDivision=0;

    TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);

    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;

    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; 

    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_1;

    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;       

    GPIO_Init(GPIOB,&GPIO_InitStructure);

    TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;

    TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;

    TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;

    TIM_OCInitStructure.TIM_Pulse=900;

    TIM_OC1Init(TIM3,&TIM_OCInitStructure);

    TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);

    TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;

    TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;

    TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;

    TIM_OCInitStructure.TIM_Pulse=900;

    TIM_OC2Init(TIM3,&TIM_OCInitStructure);

    TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);

    TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;

    TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;

    TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;

    TIM_OCInitStructure.TIM_Pulse=900;

    }

    其次电机运动状态的控制,具体代码如下:

    void CarGo(void)

    {

    TIM_SetCompare1(TIM3,400);

    TIM_SetCompare2(TIM3,900);

    TIM_SetCompare3(TIM ,400);

    TIM_SetCompare4(TIM3,900);

    }

    void CarStop(void)

    {

    TIM_SetCompare1(TIM3,900);

    TIM_SetCompare2(TIM3,900);

    TIM_SetCompare3(TIM3,900);

    TIM_SetCompare4(TIM3,900);

    }

    void CarLeft(void)

    {

    TIM_SetCompare1(TIM3,900);

    TIM_SetCompare2(TIM3,300);

    TIM_SetCompare3(TIM3,300);

    TIM_SetCompare4(TIM3,900);

    }

    void CarRight(void)

    {

    TIM_SetCompare1(TIM3,300);

    TIM_SetCompare2(TIM3,900);

    TIM_SetCompare3(TIM3,900);

    TIM_SetCompare4(TIM3,300);

    }


    最后是主函数,一直等待中断到来即可。

    4.4  温湿度程序设计

    要实现对DHT11传感器的控制和数据的读取,需先学会分析DHT11的控制时序。时序主要分为三部分:

    (1)触发DHT11采集数据

    总线空闲状态为高电平,单片机把总线拉低等待DHT11响应,......

    (2)数字0信号时序

    当DHT11输出数字0时,......

    (3)数字1信号时序

    当DHT11输出数字0时,......

    DHT11总时序图如图4-5所示。

    图4-5  DHT11总时序图

    相关的配置代码如下:

    void DHT11_IO_IN(void)

    {

    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(DHT11_GPIO_CLK,ENABLE);

    GPIO_InitStructure.GPIO_Pin=DHT11_GPIO_PIN;

    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

    GPIO_Init(DHT11_GPIO_PORT, &GPIO_InitStructure);

    }

    u8 DHT11_Read_Byte(void)

    {

    u8 i,dat;dat=0;

    for (i=0;i<8;i++)

    {

    dat<<=1;

    dat|=DHT11_Read_Bit();

    }return dat;

    }

    u8 DHT11_Read_Data(u8 *temp,u8 *humi)

    {

    u8 buf[5];u8 i;

    DHT11_Rst();

    if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])

    {

    *humi=buf[0];*temp=buf[2];

    }

    }else return 1;

    return 0;

    }

    u8 DHT11_Init(void)

    {

    DHT11_Rst();

    return DHT11_Check();

    }

    4.5  液晶显示屏程序设计

    设计所使用的4针I²C通信协议蓝色OLED屏,屏幕大小为0.96寸,像素点为128*64。OLED显示屏驱动程序如下:

    void OLED_Init(void)

    {

    GPIO_InitTypeDef  GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8|GPIO_Pin_9;

    GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;

    GPIO_InitStructure.GPIO_Speed =GPIO_Speed_50MHz;

    GPIO_Init(GPIOA,&GPIO_InitStructure);

    GPIO_SetBits(GPIOA,GPIO_Pin_8|GPIO_Pin_9);

    OLED_RST_Set();

    delay_ms(100);

    OLED_RST_Clr();

    delay_ms(200);

    OLED_RST_Set();

    OLED_DC_Clr();

    OLED_WR_Byte(0xAE,OLED_CMD);

    OLED_WR_Byte(0x00,OLED_CMD);

    OLED_WR_Byte(0x80,OLED_CMD);

    OLED_WR_Byte(0xD9,OLED_CMD);

    OLED_WR_Byte(0xF1,OLED_CMD);

    OLED_WR_Byte(0xDA,OLED_CMD);

    OLED_WR_Byte(0x12,OLED_CMD);

    OLED_WR_Byte(0xDB,OLED_CMD);

    OLED_WR_Byte(0x40,OLED_CMD);

    OLED_WR_Byte(0x20,OLED_CMD);

    OLED_WR_Byte(0x02,OLED_CMD);

    OLED_WR_Byte(0xA4,OLED_CMD);

    OLED_WR_Byte(0xA6,OLED_CMD);

    OLED_WR_Byte(0xAF,OLED_CMD);

    OLED_Clear();

    }

    4.6  盗窃预警程序设计

    首先将模块信号线连接在PB12上,在HC-SR501.h文件中进行宏定义,方便程序的移植。

    定义完了之后,再对HC-SR501.c文件中的对PB12引脚进行初始化。

    #define GPIO_HCSR501_PORT          GPIOB

    #define GPIO_HCSR501_CLK_B         RCC_APB2Periph_GPIOB

    #define GPIO_HCSR501_PIN            GPIO_Pin_12

    void GPIO_HCSR501_config(void)

    {

    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(GPIO_HCSR501_CLK_B,ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_HCSR501_PIN;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIO_HCSR501_PORT,&GPIO_InitStructure);

    }

    4.7  火情预警程序设计

    我们可以根据火焰传感器工作原理加上蜂鸣器的配合,当检测到火焰时,D0引脚输出的低电平,然后让蜂鸣器响。这样就能大致模仿火灾报警。D0口与PA15管脚相连,以下对火焰传感器引脚配置。

    void Fire_Init(void)

    {

    GPIO_InitTypeDef GPIO_InitStructure;

    RCC_APB2PeriphClockCmd(GPIOA,ENABLE);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIOA,&GPIO_InitStructure);

    }

    5  软件调试

    本章根据设计中所使用的模块进行相应的程序设计。硬件电路通过Altium Designer16进行电路绘制,程序设计部分通过Keil uVision5开发环境进行设计,......

    5.1  开发环镜介绍

    程序设计使用Keil uVision5 MDK集成开发环境,Keil uVision5软件是美国Keil软件公司推出的支持ARM内核、Cortex内核微控制器的一款集成开发环境(IDE)。......Keil uVision5集成开发界面如图5-1所示。

    图5-1  Keil MDK集成开发界面

    Keil uVision5集成开发环境主要分为:主菜单区、工具栏、工作窗口和编辑窗口五大部分,......开发环镜工具栏如图5-2所示。

     

    图5-2  开发环镜工具栏

    Keil uVision5集成开发环镜支持多文档窗口操作,用户可以根据个人需求,在编辑界面同时打开多个文件窗口,程序开发界面如图5-3所示。

    图5-3  程序开发界面

    5.2  串口调试工具

    STC-ISP是一款集单片机下载编程烧录、串口调试一体的软件,......该软件启动界面如图5-4所示。

    图5-4  STC-ISP启动界面

    5.3  系统测试

    在软、硬件系统设计完毕后,对智能巡检车整体结构进行搭建,智能巡检车整体设计实物图如下5-5所示。

    图5-5  智能巡检车实物图

    当巡检车超声波传感器检测到前方20cm内有障碍时,通过STM32控制舵机左右转动,检测左前方、右前方是否有障碍物,......巡检车检测左右障碍物距离图如图5-6所示。

    图5-6  巡检车检测障碍图

    本设计可以检测仓库内温湿度环境变化、火情警报、夜间人体检测等,通过串口发送到上位机报警,若出现火情,警示灯亮、蜂鸣器警报响起,“0”代表无火情、无人闯入。仓库环境检测如图5-7所示。

    图5-7  仓库环境检测图

    当有人闯入仓库时,单片机通过串口发送有人闯入,并进行报警指示。串口调试如图5-8所示,火情警报图如图5-9所示。

     

    图5-8  串口调试图

     

    图5-9  火情报警图

    6  总结及展望

    6.1  总结

    近年来,仓库智能巡检车在科学研究领域日益火热,体现了如今社会人工智能技术与信息科学的最新成果,其具有极其广阔的应用发展前景。

    本文以一个简单的轮式移动智能巡检车为研究对象,......

    6.2  展望

    仓库智能巡检车设计虽然已经达到一般仓库巡检功能的标准......,在未来的工作中将进行以下几点改进:

    (1)设计虽然达到了所需要的功能要求,......

    (2)仓库巡检车在机械结构方面......

    (3)巡检车对复杂结构环境......

    在设计中出现很多问题都得到逐步解决,还有很多的问题和工作在今后的学习中有待继续进行。

     

    为方便参考,一起打包的资料如下,可在下面链接下载!

     

    基于单片机的仓库智能巡检车的设计-硬件开发文档类资源-CSDN下载内容包括详细设计文档word版,附带开题报告和相关PPT等文档,供大家参考学习。也可在本博客主页找到更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/u013253075/45706262 

    展开全文
  • 内容包括详细设计文档word版,附带开题报告和相关PPT等文档,供大家参考学习。也可在本博客主页找到单片机设计专栏直接查看哦
  • 针对多个易燃品仓库的群巡检的智能滑块路径寻优问题,提出贪心遗传混合式路径优化算法,该算法将贪心策略融入到遗传算法操作过程,用作指导遗传选择操作进行搜索。首先建立仓库巡检目标分配数学模型,其次设计一种基于...
  • 1、资源内容:毕业设计lun-wen word版10000字+;开题报告,任务书 2、学习目标:快速完成相关题目设计; 3、应用场景:课程设计、diy、毕业、参赛; 4、特点:直接可以编辑使用; 5、使用人群:设计参赛人员,学生,...
  • 1、资源内容:毕业设计lun-wen word版10000字+;开题报告,任务书 2、学习目标:快速完成相关题目设计; 3、应用场景:课程设计、diy、毕业、参赛; 4、特点:直接可以编辑使用; 5、使用人群:设计参赛人员,学生,...
  • 因此,利用智能巡检系统部分或全面替换人工巡检,针对各个领域的需求不同设计一套适合于本领域的智能巡检图像识别系统就变得尤为重要。本文以变电站巡检系统为基础,设计实现一套智能巡检图像识别系统。并且为了提高...
  • #资源达人分享计划#
  • #资源达人分享计划#
  • hive监控巡检优化文档

    2022-05-25 10:03:09
    hive监控巡检优化文档
  • 1、资源内容:毕业设计lun-wen word版10000字+;开题报告,任务书 2、学习目标:快速完成相关题目设计; 3、应用场景:课程设计、diy、毕业、参赛; 4、特点:直接可以编辑使用; 5、使用人群:设计参赛人员,学生,...
  • 基于SQL Server 2005构建设备巡检管理系统数据仓库.pdf
  • 巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检...

    巡检工作是保障系统平稳有效运行必不可少的一个环节,目的是能及时发现系统中存在的隐患。我们生活中也随处可见各种巡检,比如电力巡检、消防检查等,正是这些巡检工作,我们才能在稳定的环境下进行工作、生活。巡检对于数据库或者其他IT系统来说也同样至关重要,特别是在降低风险、提高服务稳定性方面起到了非常关键作用。

    本文介绍了美团MySQL数据库巡检系统的框架和巡检内容,希望能够帮助大家了解什么是数据库巡检,美团的巡检系统架构是如何设计的,以及巡检系统是如何保障MySQL服务稳定运行的。

    一、背景

    为了保障数据库的稳定运行,以下核心功能组件必不可少:

    4ae77f8cfad14d3db4057da0b9cf6b75.png

    其中,数据库巡检作为运维保障体系最重要的环节之一,能够帮助我们发现数据库存在的隐患,提前治理,做到防患于未然。对于大规模集群而言,灵活健壮的自动化巡检能力,至关重要。

    任何系统都会经历一个原始的阶段,最早的巡检是由中控机+定时巡检脚本+前端展示构成的。但是,随着时间的推移,老巡检方案逐渐暴露出了一些问题:

    巡检定时任务执行依赖中控机,存在单点问题;

    巡检结果分散在不同的库表,无法进行统计;

    巡检脚本没有统一开发标准,不能保证执行的成功率;

    每个巡检项都需要单独写接口取数据,并修改前端用于巡检结果展示,比较繁琐;

    巡检发现的隐患需要DBA主动打开前端查看,再进行处理,影响整体隐患的治理速度;

    ......

    所以我们需要一个灵活、稳定的巡检系统来帮助我们解决这些痛点,保障数据库的稳定。

    二、设计原则

    巡检系统的设计原则,我们从以下三个方面进行考虑:

    稳定:巡检作为保证数据库稳定的工具,它自身的稳定性也必须有所保证;

    高效:以用户为中心,尽量化繁为简,降低用户的使用成本,让新同学也能迅速上手治理和管理隐患;提高新巡检部署效率,随着架构、版本、基础模块等运维环境不断变化,新的巡检需求层出不穷,更快的部署等于更早的保障;

    可运营:用数据做基础,对巡检隐患进行运营,包括推进隐患治理,查看治理效率、趋势、薄弱点等。

    三、系统架构

    美团MySQL数据库巡检系统架构图设计如下。接下来,我们按照架构图从下到上的顺序来对巡检系统主要模块进行简单的介绍:

    5b34532523fcaab5af2408432e3a1a27.png

    1. 执行层

    巡检执行环境:由多台巡检执行机组成,巡检任务脚本会同时部署在所有执行机上。执行机会定时从巡检Git仓库拉取最新的脚本,脚本使用Python Virtualenv + Git进行管理,方便扩充新的执行机。

    任务调度:巡检任务使用了美团基础架构部研发的分布式定时任务系统Crane进行调度,解决传统定时任务单点问题。Crane会随机指派某一台执行机执行任务,假如这台执行机出现故障,会指派其他执行机重新执行任务。一般一个巡检任务对应着一个巡检项,巡检任务会针对特定的巡检目标根据一定的规则来判断是否存在隐患。

    巡检目标:除了对生产数据库进行巡检以外,还会对高可用组件、中间件等数据库周边产品进行巡检,尽可能覆盖所有会引发数据库故障的风险点。

    2. 存储层

    巡检数据库:主要用来保存巡检相关数据。为了规范和简化流程,我们将巡检发现的隐患保存到数据库中,提供了通用的入库函数,能够实现以下功能:

    自动补齐隐患负责人、隐患发现时间等信息;

    入库操作幂等;

    支持半结构化的巡检结果入库,不同巡检的隐患结果包括不同的属性,比如巡检A的隐患有“中间件类型”,巡检B有“主库CPU核数”,以上不同结构的数据均可解析入库;

    针对表粒度的隐患项,如果分库分表的表出现隐患,会自动合并成一个逻辑表隐患入库。

    巡检脚本Git仓库:用来管理巡检脚本。为了方便DBA添加巡检,在系统建设过程中,我们增加了多个公共函数,用来降低开发新巡检的成本,也方便将老的巡检脚本迁移到新的体系中。

    3. 应用层

    集成到数据库运维平台:作为隐患明细展示、配置巡检展示、管理白名单等功能的入口。为了提高隐患治理效率。我们做了以下设计。

    隐患明细展示页面会标注每个隐患出现的天数,便于追踪隐患出现原因。

    配置新的巡检展示时必须要同时制定隐患解决方案,确保隐患治理有章可循,避免错误的治理方式导致“错上加错”。

    隐患运营后台:这个模块主要目的是推进隐患的治理。

    运营报表,帮助管理者从全局角度掌握隐患治理进展,报表包括隐患趋势、存量分布、增量分布、平均治理周期等核心内容,进而由上到下推动隐患治理;报表数据同样是通过crane定时任务计算获得。

    隐患治理催办功能,用来督促DBA处理隐患。催办内容中会带有隐患具体内容、出现时长、处理方案等。催办形式包括大象消息、告警,具体选用哪种形式可根据巡检关键程度做相应配置。

    外部数据服务:主要是将巡检隐患数据提供给美团内部其他平台或项目使用,让巡检数据发挥更大的价值。

    对接先知平台(美团SRE团队开发的主要面向RD用户的风险发现和运营平台),平台接收各服务方上报的隐患数据,以RD视角从组织架构维度展示各服务的风险点,并跟进RD处理进度。巡检系统会把需要RD参与治理的隐患,比如大表、无唯一键表等,借助先知平台统一推送给RD进行治理。

    运维周报,主要面向业务线RD负责人和业务线DBA,以静态报告形式展示业务线数据库运行情况以及存在的问题,巡检隐患是报告内容之一。

    四、巡检项目

    巡检项目根据负责方分为DBA和RD,DBA主要负责处理数据库基础功能组件以及影响服务稳定性的隐患。RD主要负责库表设计缺陷、数据库使用不规范等引起的业务故障或性能问题的隐患。也存在需要他们同时参与治理的巡检项,比如“磁盘可用空间预测”等。目前巡检项目共64个,类目分布情况如下图所示:

    e187d389a562442a1a2dbc37fc60dc19.png

    集群:主要检查集群拓扑、核心参数等集群层面的隐患;

    机器:主要检查服务器硬件层面的隐患;

    Schema/SQL:检查表结构设计、数据库使用、SQL质量等方面的隐患;

    高可用/备份/中间件/报警:主要检查相关核心功能组件是否存在隐患。

    下面,我们通过列举几个巡检任务来对巡检项做简单的说明:

    a0364e2bb0b97b8c5ae19810bb776895.png

    五、成果

    美团MySQL巡检系统已稳定运行近一年时间,基于新巡检体系上线的巡检项49个。通过巡检体系持续运行,在团队的共同努力下,我们共治理了8000+核心隐患,近3个月隐患治理周期平均不超过4天,将隐患总数持续保持在极小的量级,有效地保障了数据库的稳定。

    bb783bb5faa100bb4225bd51e533d17a.png

    下面的隐患趋势图,展示了近一年中隐患的个数,数量突然增长是由于新的巡检项上线。从整体趋势上看,隐患存量有非常明显的下降。

    727cc4cf436507a3237877216b9d9967.png

    除了推动内部隐患治理之外,我们还通过对接先知平台,积极推动RD治理隐患数量超过5000个。

    527c3e6e1dfd7a9107a0fcb7c0c8b81b.png

    为了提升用户体验,我们在提升准确率方面也做了重点的投入,让每一个巡检在上线前都会经过严格的测试和校验。

    对比其他先知接入方,DBA上报隐患在总量、转化率、反馈率几个指标上都处于较高水平,可见我们上报的隐患风险也得到了RD的认可。

    0f055fa17aaa600d0cecdf2f46953613.png

    指标说明:

    反馈率 = 截止到当前时刻反馈过的风险事件数量/截止到当前时刻产生的风险事件总量 * 100%;

    反馈准确率 = 截止到当前时刻反馈准确的风险事件数量/截止到当前时刻反馈过的风险事件总量 * 100%;

    转化率 = 截止到当前时刻用户反馈准确且需要处理的风险事件数量 / 截止到当前时刻产生的风险事件总量 * 100%。

    六、未来规划

    除了继续完善补充巡检项以外,未来巡检系统还会在以下几个方向继续探索迭代:

    提高自动化能力,完善CI和审计;

    加强运营能力,进一步细化每个隐患的重要程度,辅助决策治理优先级;

    隐患自动修复。

    作者简介

    王琦,基础架构部DBA组成员,2018年加入美团,负责MySQL数据库运维/数据库巡检系统/监控/自动化运维周报/运维数据集市建设等工作。

    阅读更多技术文章,请扫码关注微信公众号-美团技术团队!

    589a9b440b4ee446d91d24646cac4789.png

    展开全文
  • MDM数据巡检设计方案

    2022-01-10 09:00:22
    科技飞速发展,越来越多的企业进入到了数据治理阶段。MDM基础数据平台是进行清洗和治理企业的主数据,通过本次功能升级帮助了解数据巡检的作用。

    科技飞速发展的时代,企业信息化建设日趋完善化、体系化,使用的应用系统越来越多,业务发展中沉淀了大量的数据,但是这些数据没有为企业带来直观的价值,没有形成企业的数据资产。因此越来越多的企业进入到了数据治理阶段,对于主数据治理的需求日益强烈

    MDM基础数据平台进行清洗和治理企业的主数据,使企业的主数据具有唯一性、准确性、一致性、及时性,其中唯一性就要通过MDM数据巡检功能进行查重处理,提升主数据质量,保证下发给业务系统的数据是唯一准确的。 

    1整体介绍 

    主数据治理方案可以统一管理企业的组织、人员、客户、供应商等高度共享数据,对需要的业务系统进行同步分发,使数据易采集、易理解、易分析,提高部门与部门之间的沟通效率。 

    1.1产品体系 

    首先介绍数通畅联的产品体系: 

    数通畅联的所有产品都是通过K8S云平台进行部署搭建产品环境,通过不同的产品组合方案来解决企业面临的不同信息化困境,帮助企业完善信息化发展。MDM主数据管理平台是公司产品体系中的配置功能明星产品,主数管理平台可以与不同产品组合来满足不同的项目的需求。 

    1.2产品介绍 

    MDM主数据管理平台中,主数据管理的关键就是“管理。主数据管理不会创建新的数据或新的数据纵向结构。相反,它提供了一种方法,使企业能够有效地管理存储在分布系统中的数据。 

    主数据管理使用现有的系统,它从这些系统中获取最新信息,并提供了先进的技术和流程,用于自动、准确、及时地分发和分析整个企业中的数据,并对数据进行验证。 

    MDM产品的核心在中间的紫色区域,分别是数据建模,功能建模,流程建模,应用管理,使用这些功能能够自动生成出不同的主数据管理流程,从而进行数据治理。数据统计是绿色区域中的数据管理、流程监控、统计分析功能。此外,管理看板也能够进行统计分析。 

    MDM在系统管理中进行添加组织,人员,岗位,并可以配置相应的权限。 

    1.3功能介绍 

    目前MDM中相似度巡检运算方式是根据多个字段的组合通过相似算法算出他们的相似百分比,然后查看是否超过配置的百分比数字,如果超过就判定为相似数据,然后记录到数据表中,还需添加新的质量校验算法,通过结果值*不同字段的阀值再除以阀值的相加和得出的数字进行数据巡检,巡检支持结果Excel输出,帮助客户提升主数据质量。 

    2实现思路 

    数据巡检主要是对某个主数据进行查重,通过主数据数据巡检配置功能,配置数据巡检任务,通过任务执行或者在业务操作过程中进行数据查重操作,帮助业务人员和审计人员快速处理重复的数据。 

    2.1整体思路 

    数据巡检分为三部分: 

    1.第一部分是任务配置功能:通过监控预警功能的数据巡检任务配置出要巡检的主数据、定时时间、巡检类型。 

    2.第二部分是任务执行:执行任务功能可以在单独的数据巡检任务功能中点击执行巡检,也可以点击扩展按钮在业务表单中执行。 

    3.第三部分是结果报告:结果报告就是把重复的数据以日志的形式展现出来,也可以导出报表数据。 

    2.2配置功能 

    数据巡检一共两种算法可以进行数据巡检: 

    1.第一种是完善现有的相似度功能: 

    (1)现有是通过几个字段进行对比将得出的百分比记录到数据库中。 

    (2)在相似数据中能够查看到对比数据的结果。 

    2.第二种是支持单字段相似度后全中校验: 

    (1)在配置功能中配置每个字段的数值。 

    (2)根据每个字段对出来的值和配置数进行运算。 

    (3)运算方式为:

    2.3数据巡检 

    通过上述的配置运算方式进行数据查重,查重后把超过阀值的数据写到对应主数据的数据巡检表中,数据巡检结果功能要符合以下要求: 

    1.支持按钮扩展配置进行数据校验(编辑页面、审批页面、日志等均可添加)。 

    2.支持日志查询,可以查询到对应重复的数据。 

    3.支持导出巡检报表Excel。 

    3扩展设计 

    通过上述的思路设计出巡检配置页面功能、巡检任务页面功能、巡检结果页面功能。 

    3.1巡检配置 

    下面是几个字段的相似度巡检运算规则的配置方式,选中是否启用单字段全中模型,效果如下:

    选中是否启用单字段全中模型。 

    1.点击添加一个字段,并且配置这个字段的相似度数值。 

    2.配置定时巡检时间和时间间隔。 

    页面效果如下: 

    3.2巡检任务 

    数据巡检任务功能:选择一个主数据,点击巡检就会执行针对这个主数据巡检任务。 

    可以通过扩展字段方式在数据管理页面中添加数据查重按钮:点击执行这个主数据巡检任务,查询到对应的重复数据。 

    3.3巡检结果 

    执行后点击一条数据进入详情页面会查看到这条数据对应的相似数据数量,点击后会跳转打开数据巡检具体页面,如图所示: 

    数据巡检日志页面如图所示: 

    点击导出按钮会导出对应数据Excel报表,如图所示: 

    源数据: 

    超过阀值的数据: 

    4心得总结 

    平台是主数据治理方案落地的重要工具,平台在功能上满足主数据治理需求的同时,具备快速扩展能力,以适应不同业务场景的变化。并根据技术的发展及业务的演变,不断迭代升级。通常选择的主数据管理平台要预置典型的模型功能和样例数据,在项目中复用这些数据可以节省时间。 

    4.1开发心得 

    通过本次开发大家应该了解数据巡检的作用,通过数据巡检功能提升主数据质量,统一主数据标准,也是对主数据数据清洗功能的一次完善,因为数据巡检功能是业务类主数据清洗的一部分,开发时候要考虑产品功能的闭环,只有这样才能让产品的功能更加完整。 

    4.2设计作用 

    通过功能设计可以消除客户对于需求的模糊性,同时核对需求是否有需要完善的地方,设计过程中还可以发现哪些要求是由于用户的片面性或短期行为所导致的不合理要求,再进行功能开发工作,就能避免在开发过程中重复交互,导致做无用功,所以设计是非常重要的一个阶段,重视设计才能更加有效地进行功能开发,才能交付好的产品。 

    4.3产品发展 

    产品要从功能性、易用性、开发性、扩展性、高性能、稳定性、美观性不同角度进行扩展迭代,做到到项目中去,再从项目中来,通过客户的需求筛选出产品需要的功能,进而进行产品升级,增强产品的功能性。通过不同项目深度了解行业,通过预制样例实现不同产品组合快速搭建,让项目推进更加敏捷。 

    产品不管怎么发展都是一个目的,即是否能解决企业每个阶段面临的困境,促进企业的信息化发展,只有这样才能体现出产品的价值。一款好且稳定的产品可以帮助工作人员快速而便捷地工作,大大提高工作效率,也会让客户满意,增加客户对公司的信任度。 

    展开全文
  • Linux 编写安全巡检脚本检测/etc/passwd,/etc/shadow文件是否锁定检测/etc/login.defs配置文件中密码有效期设置是否得当检查所有用户账户(非系统账户)中是否存在密码永久有效问题(检查/etc/shadow文件每一行中的密码...
  • 掌上电脑 RFID 红外抄表 巡检记录 智能平台——适用于设备运行值班记录、变电站/所运行管理、仓库/资产管理、设备巡检保养、安全巡更、机房值守、基站维护、光缆/电缆巡线等一切重复性现场记录和技术支持。...
  • 关于巡检,之前发过一篇《浅谈质量保障手段之巡检技术》,介绍了使用Python的eyeD3库进行MP3属性信息获取并做音频损坏的判断,可以理解为从服务端层面出发提出的解决方案。 ​ 本文是从前端的角度出发,介绍通过...
  • 此处的过滤器插件要放在ansible指定的filter_plugins的位置,我这里习惯将ansible的配置文件放在ansible的统一配置仓库下,便于迁移以及适应环境: 4oss-check Roles的执行流程 使用脚本roles/oss_check/files/check_...
  • 十二、备件仓库管理(备件入库、备件库存、备件出库、期间入库查询、期间出库查询、期间库存查询等...) 十三、工具使用管理 (工具入库、工具库存、工具借用、工具归还等...) 十四、设备更新改造 (更新改造申请...
  • Pod 意味着 Pod 可以访问主机的资源和内核功能 √ PodSetImagePullBackOff Pod 无法正确拉出镜像,因此可以在相应节点上手动拉出镜像 √ PodSetImageRegistry 检查镜像形式是否在相应仓库 √ PodSetCpuLimitsMissing...
  • 井下无人巡检

    2021-09-01 11:28:00
    针对重要单位、场馆、仓库、小区等区域,移动综合巡检机器人可携带多种安防监控设备,在工作区域内进行智能巡视,并将画面和数据传输至远端监控系统,根据现场情况自主做出决策,并在发现问题后及时发出警报信息。...
  • 本发明属于机器人拍照技术领域,尤其涉及一种巡检机器人抓拍方法、装置、系统及巡检机器人。背景技术:伴随着我国社会经济稳步增长,越来越多的巨型企业厂区、高新园区、巨型商场不断的出现在国民生活中,这些场所对...
  • 在“中国制造”向“中国智造”迈进的今天,传统制造业纷纷掀起“换机潮”来压缩成本,在严重依赖人力巡逻和监控的安防行业,这一需求尤为迫切。...国辰的智能巡检机器人巡检的场景主要分为两种,室内:
  • 前言 做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。 本系列旨在解决一些常见的困扰:不知道巡检哪些东西不知道怎么样便捷体检机器太多体检麻烦...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,646
精华内容 658
关键字:

仓库巡检