自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(190)
  • 资源 (2582)
  • 收藏
  • 关注

原创 JUC等待唤醒机制

AQS是一种思想,他设置了状态位state标志能不能获取得到同步资源,FIFO等待队列进行资源分配,带有头尾节点的双向链表也实现了公平性, AQS为同步组件提供了一个框架,使得创建新的同步组件变得容易。WaitSet 中的 Thread-0,是以前获得过锁,但条件不满足进入 WAITING 状态的线程(wait-notify 机制),在notify后,因为此时条件变量WaitSet中只有Thread-0,所以Thread-0被唤醒,如果有多个线程,则唤醒随机一个。

2024-08-15 10:36:59 852

原创 飞书工作台小组件开发流程(各种鉴权token介绍+公告栏小组件示例Java后端+飞书开发者工具前端)

如果你的业务逻辑不需要操作用户的数据资源,仅需操作应用自己拥有的资源(比如在应用自己的文档目录空间下创建云文档),则推荐使用 Tenant Access Token,无需额外申请授权。文件夹 folder_token: https://sample.feishu.cn/drive/folder/cSJe2JgtFFBwRuTKAJK6baNGUn0。User Access Token 代表使用应用的使用者的身份操作 OpenAPI,API 所能操作的数据资源范围受限于用户的身份所能操作的资源范围。

2024-08-13 23:16:50 773

原创 Leaf——美团点评分布式ID生成系统

Leaf 取号段的时机是在号段消耗完的时候进行的,也就意味着号段临界点的ID下发时间取决于下一次从DB取回号段的时间,并且在这期间进来的请求也会因为DB号段没有取回来,导致线程阻塞。如果请求DB的网络和DB的性能稳定,这种情况对系统的影响是不大的,但是假如取DB的时候网络发生抖动,或者DB发生慢查询就会导致整个系统的响应时间变慢。为此,我们希望DB取号段的过程能够做到无阻塞,不需要在DB取号段的时候阻塞请求线程,即当号段消费到某个点时就异步的把下一个号段加载到内存中。

2024-02-03 23:45:56 1700

原创 算法练习04——数组问题

【代码】算法练习04——数组问题。

2024-02-03 23:28:54 291

原创 JUC并发编程02——线程原理(运行机制,线程调度,未来优化)

Java Virtual Machine Stacks(Java 虚拟机栈):每个线程启动后,虚拟机就会为其分配一块栈内存线程上下文切换(Thread Context Switch):一些原因导致 CPU 不再执行当前线程,转而执行另一个线程程序计数器(Program Counter Register):记住下一条 JVM 指令的执行地址,是线程私有的。

2024-02-02 23:28:52 608

原创 算法练习03——滑动窗口

【代码】算法练习03——滑动窗口。

2024-02-02 19:38:25 219

原创 JUC并发编程01——进程,线程(详解),并发和并行

进程:程序是静止的,进程实体的运行过程就是进程,是系统进行资源分配的基本单位进程的特征:并发性、异步性、动态性、独立性、结构性线程:线程是属于进程的,是一个基本的 CPU 执行单元,是程序执行流的最小单元。线程是进程中的一个实体,是系统独立调度的基本单位,线程本身不拥有系统资源,只拥有一点在运行中必不可少的资源,与同属一个进程的其他线程共享进程所拥有的全部资源关系:一个进程可以包含多个线程,这就是多线程,比如看视频是进程,图画、声音、广告等就是多个线程。

2024-02-01 23:31:42 951

原创 算法练习02——双指针

交点不是数值相等,而是指针相等。

2024-02-01 21:28:47 212

原创 算法练习01——哈希&&部分双指针

由于字符串只包含小写字母,因此对于每个字符串,可以使用长度为 262626 的数组记录每个字母出现的次数。需要注意的是,在使用数组作为哈希表的键时,不同语言的支持程度不同,因此不同语言的实现方式也不同。由于互为字母异位词的两个字符串包含的字母相同,因此两个字符串中的相同字母出现的次数一定是相同的,故可以将每个字母出现的次数使用字符串表示,作为哈希表的键。由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。

2024-01-31 23:43:35 340

原创 SpringCloudAlibaba组件总结笔记(如Nacos、SpringCloudGateway、OpenFeign,Ribbon,RabbitMQ)

代码方式:在order-service中的OrderApplication类中,定义一个新的IRule:@Bean配置文件方式:在order-service的application.yml文件中,添加新的配置也可以修改规则:userservice: # 给某个微服务配置负载均衡规则,这里是userservice服务ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则注意。

2024-01-31 15:46:34 1604

原创 基于Hexo框架搭建个人博客(Node.js、npm、Hexo框架以及Gitee新手教程)

现在,你已经成功使用Node.js、npm、Hexo框架和Gitee生成了一个博客系统。你可以通过访问你的Gitee仓库地址来查看部署的博客系统。首先,你需要在Gitee上创建一个新的仓库,用于存储博客系统的静态HTML文件。目录下找到刚创建的Markdown文件,使用文本编辑器打开并进行编辑。目录下创建一个名为 “Hello World” 的Markdown文件,用于编写博客文章内容。这将自动将生成的静态HTML文件部署到你在Gitee上创建的仓库中。创建一个新的Hexo博客项目。安装博客所需的依赖包。

2023-12-03 22:15:56 259

原创 PageHelper——分页插件

PageHelper是一款优秀的分页插件,它能够方便地在Spring Boot应用中实现分页查询功能。在大多数应用中,数据量通常很大,如果一次性加载全部数据,不仅会占用大量的内存,还会导致查询速度变慢。而通过使用PageHelper,我们可以将数据分页加载,提高查询效率,同时也能够更好地满足用户需求。在Spring Boot应用中使用PageHelper非常简单,只需要进行几步配置即可。首先,我们需要在项目的pom.xml文件中添加PageHelper的依赖。

2023-12-03 22:07:38 406

原创 Spring——IOC,DI,AOP

IOC、DI和AOP是Spring框架的三大核心特性,它们在不同的场景下起到了不同的作用。IOC通过控制反转将对象的创建和管理交给了Spring容器,提高了代码的可维护性和可测试性;DI通过依赖注入解决对象之间的依赖关系,减少了对象之间的耦合度;以上是它们的适用场景、作用、实现原理以及相关的解释和示例代码。其中,IOC(控制反转)、DI(依赖注入)和AOP(面向切面编程)是Spring框架的三大核心特性。本文将详细介绍这三个特性的适用场景、作用、实现原理,并提供相关的解释和示例代码。二、DI(依赖注入)

2023-12-03 20:07:35 102

原创 AOP面向切面编程——实现公共字段填充

进入到sky-server模块,创建com.sky.annotation包。1). 自定义注解 AutoFill,用于标识需要进行公共字段自动填充的方法2). 自定义切面类 AutoFillAspect,统一拦截加入了 AutoFill 注解的方法,通过反射为公共字段赋值3). 在 Mapper 的方法上加入 AutoFill 注解若要实现上述步骤,需掌握以下知识(之前课程内容都学过)**技术点:**枚举、注解、AOP、反射

2023-12-03 15:15:13 207

原创 Spring——全局异常处理(介绍@RestControllerAdvice和@ExceptionHandler)

同时,我们也了解到了全局异常处理器的灵活性和自定义性,使得我们可以根据业务需要,对不同类型的异常进行细粒度的处理。@ExceptionHandler注解的实现原理是通过定义一个带有@ExceptionHandler注解的方法,在方法中编写异常处理的逻辑。多个@ExceptionHandler注解的方法可以处理不同类型的异常,但是它们的执行顺序是根据异常的继承关系来确定的。这使得我们可以根据具体的异常类型,编写相应的处理逻辑,实现异常的细粒度处理。这样,前端可以根据不同的响应信息进行相应的处理和展示。

2023-12-02 16:06:08 400

原创 Swagger——接口文档自动生成和测试

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(它的主要作用是:使得前后端分离开发更加方便,有利于团队协作接口的文档在线自动生成,降低后端开发人员编写接口文档的负担功能测试Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

2023-12-02 10:32:31 520

原创 登录校验——JWT(JSON Web Token)介绍

JWT(JSON Web Token)是一种在Java前后端分离项目中实现登录功能的常用方式。本文将对前后端的分析,JWT在前后端的联系以及其在登录功能中的作用和优缺点进行详细介绍。

2023-12-01 22:16:03 443

原创 nginx配置反向代理及负载均衡

当在访问http://localhost/api/employee/login,nginx接收到请求后转到http://localhost:8080/admin/,故最终的请求地址为http://localhost:8080/admin/employee/login,和后台服务的访问地址一致。location /api/ {} 这样的反向代理到 http://localhost:8080/admin/上来。所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器。

2023-12-01 22:02:07 930

原创 JVM——产生内存溢出原因

但是由于用户的并发请求量有可能很大,同时处理数据的时间很长,导致大量的数据存在于内存中,最终超过了内存的上限,导致内存溢出。这类问题的处理思路和内存泄漏类似,首先要定位到对象产生的根源。在使用HashMap的场景下,如果使用这个类对象作为key,HashMap在判断key是否已经存在时会使用这些方法,如果重写方式不正确,会导致相同的数据被保存多份。⚫ 1、非静态的内部类默认会持有外部类,尽管代码上不再使用外部类,所以如果有地方引用了这个非静态内部类,会导致外部类也被引用,垃圾回收时无法回收这个外部类。

2023-11-29 21:43:55 467

原创 JVM——内存溢出和内存泄漏

⚫ Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。⚫ 少量的内存泄漏可以容忍,但是如果发生持续的内存泄漏,就像滚雪球雪球越滚越大,不管有多大的内存迟早会被消耗完,最终导致的结果就是内存溢出。⚫ 内存泄漏导致溢出的常见场景是大型的Java后端应用中,在处理用户的请求之后,没有及时将用户的数据删。

2023-11-29 20:21:21 551

原创 JVM——垃圾回收器(Serial,SerialOld,ParNew,CMS,Parallel Scavenge,Parallel Old)

为什么分代GC算法要把堆分成年轻代和老年代?⚫ 系统中的大部分对象,都是创建出来之后很快就不再使用可以被回收,比如用户获取订单数据,订单数据返回给用户之后就可以释放了。⚫ 老年代中会存放长期存活的对象,比如Spring的大部分bean对象,在程序启动之后就不会被回收了。⚫ 在虚拟机的默认设置中,新生代大小要远小于老年代的大小分代GC算法将堆分成年轻代和老年代主要原因有:1、可以通过调整年轻代和老年代的比例来适应不同类型的应用程序,提高内存的利用率和性能。

2023-11-27 19:56:13 443

原创 JVM——垃圾回收器(G1,JDK9默认为G1垃圾回收器)

JDK9之后默认的垃圾回收器是G1(Garbage First)垃圾回收器。Parallel Scavenge关注吞吐量,允许用户设置最大暂停时间 ,但是会减少年轻代可用空间的大小。CMS关注暂停时间,但是吞吐量方面会下降。而G1设计目标就是将上述两种垃圾回收器的优点融合:1.支持巨大的堆空间回收,并有较高的吞吐量。2.支持多CPU并行垃圾回收。3.允许用户设置最大暂停时间。

2023-11-27 19:52:35 405

原创 JVM——垃圾回收算法(垃圾回收算法评价标准,四种垃圾回收算法)

⚫ Java是如何实现垃圾回收的呢?简单来说,垃圾回收要做的有两件事:1、找到内存中存活的对象2、释放不再存活对象的内存,使得程序能再次利用这部分空间⚫ 1960年John McCarthy发布了第一个GC算法:标记-清除算法。⚫ 1963年Marvin L. Minsky 发布了复制算法。本质上后续所有的垃圾回收算法,都是在上述两种算法的基础上优化而来。

2023-11-26 10:55:51 302

原创 JVM——几种常见的对象引用

可达性算法中描述的对象引用,一般指的是强引用,即是GCRoot对象对普通对象有引用关系,只要这层关系存在,普通对象就不会被回收。除了强引用之外,Java中还设计了几种其他引用方式:⚫ 软引用⚫ 弱引用⚫ 虚引用⚫ 终结器引用。

2023-11-25 23:23:03 571

原创 JVM——垃圾回收(方法区中的垃圾回收和(堆回收)自动垃圾回收)

⚫ 在C/C++这类没有自动垃圾回收机制的语言中,一个对象如果不再使用,需要手动释放,否则就会出现内存泄漏。我们称这种释放对象的过程为垃圾回收,而需要程序员编写代码进行回收的方式为手动回收。⚫ 内存泄漏指的是不再使用的对象在系统中未被回收,内存泄漏的积累可能会导致内存溢出。

2023-11-25 22:51:02 654

原创 JVM——运行时数据区(堆+方法区+直接内存)

⚫ JDK8将方法区存放在元空间中,元空间位于操作系统维护的直接内存中,默认情况下只要不超过操作系统承受的上限,可以一直分配。当常量池加载到内存中之后,可以通过内存地址快速的定位到常量池中的内容,这种常量池称为运行时常量池。⚫ JDK8及之后的版本将方法区存放在元空间中,元空间位于操作系统维护的直接内存中,默认情况下只要不超过操作系统承受的上限,可以一直分配。⚫ used指的是当前已使用的堆内存,total是java虚拟机已经分配的可用堆内存,max是java虚拟机可以分配的最大堆内存。

2023-11-16 21:19:29 669

原创 JVM——运行时数据区(程序计数器+栈)

⚫ Java虚拟机在运行Java程序过程中管理的内存区域,称之为运行时数据区。⚫ 《Java虚拟机规范》中规定了每一部分的作用。

2023-11-16 12:36:28 435

原创 JVM虚拟机——类加载器(JDK8及以前,打破双亲委派机制)(JDK9之后的类加载器)

⚫ 一个Tomcat程序中是可以运行多个Web应用的,如果这两个应用中出现了相同限定名的类,比如Servlet类,Tomcat要保证这两个类都能加载并且它们应该是不同的类。⚫ 如果不打破双亲委派机制,当应用类加载器加载Web应用1中的MyServlet之后,Web应用2中相同限定名的MyServlet类就无法被加载了。⚫ Tomcat使用了自定义类加载器来实现应用之间类的隔离。每一个应用会有一个独立的类加载器加载对应的类。

2023-11-15 21:49:20 230

原创 JVM——类加载器(JDK8及之前,双亲委派机制)

JDK中默认提供了多种处理不同渠道的类加载器,程序员也可以自己根据需求定制继承自抽象类ClassLoader所有Java中实现的类加载器都需要继承ClassLoader这个抽象类。

2023-11-15 20:50:16 663

原创 JVM——类的生命周期(加载阶段,连接阶段,初始化阶段)

几个要点:1.静态变量的定义使用final关键字,这类变量会在准备阶段直接进行初始化(除非要执行方法)。2.直接访问父类的静态变量,不会触发子类的初始化。子类的初始化cinit调用之前,会先调用父类的cinit初始化方法。

2023-11-02 13:46:04 711

原创 springmvc视图格式——模板引擎freemarker输出HTML文本

​ FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。​ freemarker作为springmvc一种视图格式,默认情况下SpringMVC支持freemarker视图格式。需要创建Spring Boot+Freemarker工程用于测试模板。

2023-10-19 21:03:46 992

原创 SpringCloud微服务文章列表加载(注册发现和配置中心Nacos、服务调用SSM、XML文件编写进行复杂的多表查询,网关gateway添加微服务路由)(项目概况,SSM细节总结)

加载首页加载更多加载最新接口路径请求方式POSTPOSTPOST参数响应结果// 最大时间 Date maxBehotTime;// 最小时间 Date minBehotTime;// 分页size Integer size;// 频道ID String tag;// 最大时间 Date maxBehotTime;// 最小时间 Date minBehotTime;// 分页size Integer size;// 频道ID String tag;Date;

2023-10-19 20:53:29 171

原创 SpringCloud微服务(注册发现Nacos、服务调用SSM、网关gateway)项目环境搭建(项目概况,SSM细节总结)

(2)在heima-leadnews-gateway下创建heima-leadnews-app-gateway微服务。引入依赖,在heima-leadnews-model和heima-leadnews-common模块中引入该依赖。启动user微服务,访问地址:http://localhost:51801/swagger-ui.html。md5是不可逆加密,md5相同的密码每次加密都一样,不太安全。在heima-leadnews-service下创建工程heima-leadnews-user。

2023-10-19 00:47:09 893

原创 SpringCould微服务保护和授权规则03——隔离和降级(FeignClient整合Sentinel,线程隔离,熔断降级,自定义异常结果,规则持久化,实现push模式)

线程隔离(仓壁模式)降级熔断在application.yml中配置:feign.sentienl.enable=true给FeignClient编写FallbackFactory并注册为Bean将FallbackFactory配置到FeignClient线程隔离的两种手段是?信号量隔离线程池隔离信号量隔离的特点是?基于计数器模式,简单,开销小线程池隔离的特点是?基于线程池模式,有额外开销,但隔离控制更强默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。

2023-10-14 10:54:04 571

原创 SpringCould微服务保护02——三种流控模式(直接,关联,链路)和四种流控效果(快速失败,Worm up,排队等待,热点参数限流)(Sentinel组件高级选项选择+Jmeter压测演示)

流控模式有哪些?•直接:对当前资源限流•关联:高优先级资源触发阈值,对低优先级资源限流。•链路:阈值统计时,只统计从指定资源进入当前资源的请求,是对请求来源的限流流控效果有哪些?快速失败:QPS超过阈值时,拒绝新的请求warm up: QPS超过阈值时,拒绝新的请求;QPS阈值是逐渐提升的,可以避免冷启动时高并发导致服务宕机。排队等待:请求会进入队列,按照阈值允许的时间间隔依次执行请求;如果请求预期等待时长大于超时时间,直接拒绝。

2023-10-13 19:57:08 331

原创 SpringCould微服务保护01——Sentinel组件下载并使用

什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。官网地址:https://sentinelguard.io/zh-cn/index.htmlSentinel 具有以下特征:•丰富的应用场景。

2023-10-13 18:53:15 1401

原创 elasticsearch(ES)分布式搜索引擎04——(数据聚合,自动补全,数据同步,ES集群)

默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。

2023-10-12 11:23:33 1750

原创 elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游案例实战)

elasticsearch(ES)分布式搜索引擎03——(RestClient查询文档,ES旅游实体类有两个,一个是前端的请求参数实体,一个是服务端应该返回的响应结果实体。1)请求参数"key": "搜索关键字","page": 1,"size": 3,因此,我们在Data;@Data2)返回值total:总条数:当前页的数据因此,我们在} }} }List;@Data请求方式:Post请求路径:/hotel/list请求参数:对象,类型为RequestParam返回值:PageResult,包含两个属性。

2023-10-11 18:48:16 1349

原创 elasticsearch(ES)分布式搜索引擎02——(DSL查询文档,搜索结果处理)

(DSL查询文档,搜索结果处理)match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段range查询:根据数值范围查询,可以是数值、日期的范围query:查询条件from和size:分页条件sort:排序条件highlight:高亮条件。

2023-10-11 13:15:35 379

原创 elasticsearch(ES)分布式搜索引擎01——(初识ES,索引库操作和文档操作,RestClient操作索引库和文档)

什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。

2023-10-11 00:05:46 1472

python机器学习期末项目:常用机器学习算法可视化系统(前后端源码 + 数据库 +文档PPT).zip

Python机器学习期末项目设计一个常用机器学习算法可视化系统的主要目的是为了帮助学生更好地理解和应用各种机器学习模型。这类系统通常包括以下几个部分: 1. **数据预处理**:展示数据清洗、特征选择和转换的过程,例如通过Matplotlib或Seaborn库展示数据分布和相关性。 2. **算法演示**:通过Scikit-learn等库实现常见的监督学习算法如线性回归、决策树、随机森林、支持向量机等,以及无监督学习算法如聚类(K-Means)、PCA等,并可视化它们的学习曲线、混淆矩阵或结果图表。 3. **模型对比**:用户可以比较不同模型在同一数据集上的性能,如准确率、召回率、F1分数等,通过图形化界面直观呈现。 4. **超参数调整**:提供网格搜索或随机搜索的结果展示,帮助理解如何优化模型参数对性能的影响。 5. **可视化工具**:利用TensorBoard或Bokeh等库,显示模型内部结构、梯度下降过程或神经网络权重分布。 6. **交互式体验**:用户可以通过输入新的数据点实时看到预测结果,或者调整模型设置查看变化。 Python机器学习期末项目设计一个常

2024-08-09

Java毕业设计-基于SpringBoot MySQL Vue的宠物领养系统源码+数据库.zip

Java毕业设计——基于SpringBoot MySQL Vue的宠物领养系统源码+数据库.zip 用户类型: 1、管理员:发布、修改宠物信息;发布公告;查看、处理所有的领养记录;修改其它账户状态、类型; 2、普通用户:查看宠物信息;申领宠物;查看、管理自己的领养记录;修改个人账户信息; 3、领养人:普通用户领养成功后账户类型变为领养人;在普通用户的基础上增加了发布领养日志功能。 系统架构 后端:jdk8、SpringMvc、Mybatis-Plus、SpringBoot、MySQL、阿里云短信服务 前端:Vue、Element-UI 中间件:Redis 环境准备 编译器:jdk 1.8 数据库:mysql 8 、redis 使用说明 使用idea把项目拉取到本地。 执行sql脚本,初始数据库数据。 配置文件application.yml,修改数据库连接信息 通过启动类PetsAdoptionApplication的main方法启动程序。 访问路径:http://localhost:8080/web/page/login/login.html(地址端口按照自己设置的) 系统

2024-08-07

基于SpringBoot + Vue + mysql的宠物领养系统源码+数据库(java高分课程设计).zip

基于SpringBoot + Vue + mysql的宠物领养系统源码+数据库(java高分课程设计).zip 基于Spring Boot、Vue.js 和 MySQL 的宠物领养系统是一个结合了后端框架Spring Boot和前端框架Vue.js的项目。它主要用于管理宠物信息、用户信息以及领养流程。以下是这个系统的简要概述: 1. **后端模块** (Spring Boot): - Spring Boot 提供了轻量级的启动流程,简化配置,使得应用程序更易于快速搭建。 - RESTful API:通过Spring MVC创建API服务,如创建宠物、查询宠物信息、处理领养申请等。 - 数据库操作:利用JPA或MyBatis Plus与MySQL交互,处理数据增删改查。 2. **前端模块** (Vue.js): - Vue.js 用于构建用户界面,提供丰富的组件化开发,使页面结构清晰易维护。 - 页面展示:显示宠物列表、详情页、用户登录注册、个人中心等界面。 - 表单验证:对于用户的输入进行实时验证,确保数据的有效性。 3. **数据库模型*

2024-08-07

Java课程设计-基于SpringBoot + Vue的学生选课系统源码+数据库.zip

Java课程设计-基于SpringBoot + Vue的学生选课系统源码+数据库.zip 基于Spring Boot和Vue.js的学生选课系统是一个常见的Web应用架构示例,它结合了Spring Boot作为后端服务框架的便利性和Vue.js作为前端JavaScript框架的易用性和交互性。这个系统通常包含以下几个组件: 1. **后端** (Spring Boot): - **RESTful API**: Spring Boot提供了一个快速构建RESTful API的基础,可以创建控制器(Controller),处理HTTP请求和响应,比如学生信息管理、课程信息查询和选课操作。 - **数据访问层** (Repository): Spring Data JPA用于数据库操作,简化了对数据库的操作,如CRUD(Create, Read, Update, Delete)操作。 - **业务逻辑** (Service): 使用Spring Service或者领域驱动设计(Domain-Driven Design)的实现,封装复杂的业务规则和事务处理。 2.

2024-08-05

Java课程设计-基于SpringBoot + Vue的学生信息管理系统源码+数据库.zip

Java课程设计——基于SpringBoot + Vue的学生信息管理系统源码+数据库.zip 基于Spring Boot和Vue.js的学生信息管理系统是一个现代企业级应用示例,结合了Spring Boot的强大功能和前端框架Vue的易用性和响应式设计。这样的系统大致可以分为以下几个部分: 1. **Spring Boot**:后端服务的基石,提供自动配置和依赖注入等功能。它简化了传统的Web项目搭建过程,如数据库连接、RESTful API的创建等。 2. **Spring Data JPA**:用于数据持久化,简化了对关系型数据库的操作,如CRUD操作。 3. **Vue.js**:前端开发框架,用于构建用户界面,通过组件化的方式方便地组织和复用代码。用户可以查看个人信息、添加编辑删除信息、以及搜索和筛选等功能。 4. **JWT(Json Web Token)**:通常用于用户认证,Spring Security与Vue配合,实现前后端分离的安全登录机制。 5. **API Gateway**:如果有多环境部署,Spring Cloud Gateway可以帮助统一

2024-08-05

Java课程设计-基于SSM框架+Mybatis框架+Layui框架的学生选课系统源码+sql数据库文件.zip

Java课程设计基于ssm的学生选课系统源码+sql数据库文件.zip SSM全称为Spring、Spring MVC和MyBatis的组合,这是一种常用的Java Web开发框架架构。基于SSM的学生选课系统通常会这样构建: 1. **Spring**:作为IoC容器,负责依赖注入和管理应用程序组件,比如DAO(数据访问对象)、Service(业务逻辑层)和Controller(控制器)之间的交互。 2. **Spring MVC**:是一种轻量级的模型-视图-控制器框架,它将请求分发到相应的Controller,然后Controller负责调用Service处理业务逻辑,并将结果转发给View(模板引擎),展示给用户。 3. **MyBatis**:用于数据持久化,它将SQL语句与Java代码分离,使得开发者可以直接编写易于理解的Java代码操作数据库,提高了开发效率。 在这个体系下,学生选课系统的具体模块可能会有: - 课程模块:存储和检索课程信息,包括课程创建、修改和删除; - 选课模块:学生提交选课请求,系统保存选课记录; - 成绩模块:处理成绩录入和查询; - 通

2024-08-05

Java课程设计-基于JavaWeb课程设计学生选课系统源码+数据库.zip

Java课程设计——基于JavaWeb课程设计学生选课系统源码+数据库.zip 基于JavaWeb的学生选课系统是一个用于管理教学过程的在线平台,其主要功能包括: 1. **用户注册与登录**:学生、教师等角色需要通过邮箱或学号注册并设置密码,登录后才能访问系统。 2. **课程信息展示**:系统提供课程列表,包含课程名称、教师、开课时间、地点以及课程简介,便于学生了解课程内容。 3. **选课操作**:学生可以根据需求选择感兴趣的课程,查看选课结果,确认无误后提交选课申请。 4. **课程表查询**:学生可以查询自己的课程安排,包括上课时间和地点,方便规划个人学习计划。 5. **成绩查询**:学生可以查看自己的学习成绩及平时成绩,教师则能录入和管理学生的考试成绩。 6. **退课管理**:规定时间内,学生可以申请退课,系统会处理相关的课程调整。 7. **课程评价**:学生可以在课程结束后对授课质量和教材等方面进行评价,帮助教学质量改进。 8. **通知公告**:发布学校和学院的最新消息,如考试安排、放假通知等。 基于JavaWeb的学生选课系统是一个用于管理教

2024-08-05

matlab实现的mpc模型预测控制从原理到代码实现.zip

用matlab实现的mpc模型预测控制,用matlab的quadprog函数实现了线性mpc函数,并基于此函数实现了四个mpc控制demo,分别是双积分控制,倒立摆控制,车辆云动学模型控制,车辆动力学模型控制 新增了cpp实现,依赖于eigen,qpoases库等。 用matlab实现的mpc模型预测控制,用matlab的quadprog函数实现了线性mpc函数,并基于此函数实现了四个mpc控制demo,分别是双积分控制,倒立摆控制,车辆云动学模型控制,车辆动力学模型控制。 用matlab实现的mpc模型预测控制,用matlab的quadprog函数实现了线性mpc函数,并基于此函数实现了四个mpc控制demo,分别是双积分控制,倒立摆控制,车辆云动学模型控制,车辆动力学模型控制 新增了cpp实现,依赖于eigen,qpoases库等。 用matlab实现的mpc模型预测控制,用matlab的quadprog函数实现了线性mpc函数,并基于此函数实现了四个mpc控制demo,分别是双积分控制,倒立摆控制,车辆云动学模型控制,车辆动力学模型控制。用matlab

2024-08-05

基于STM32设计超迷你机械臂机器人项目(源码+说明文档).zip

电路为了实现主要的机械臂运动控制功能其实核心就4块板子: REF核心板 REF底板(也就是机械臂底座里面的控制器电路板) 步进电机驱动 Peak示教器 其中前两者和Peak我都开源了,步进驱动设计的时候参考了: https://github.com/unlir/XDrive 这个项目,这是我一个朋友开源的闭环驱动,基于STM32。该驱动分为开源版和闭源版,闭源版基于分立MOSFET性能极其强劲且功能很完善,开源版用的ADC+斩波驱动芯片,具备基础功能,不带CAN协议。 我重新设计了驱动器的PCB电路(本项目分别用到20、42步进,57的文件只是供大家扩展使用),添加了CAN总线的硬件支持,也对原版核心代码进行了完全重构,提供编译好的二进制文件可以直接烧录: 主要改进如下: 使用C++11重构了代码,引入很多高级语言特性,同时底层部分用C混编,不影响代码性能 对硬件依赖完全解耦了,可以方便以后移植到其他平台的MCU,去除了冗余代码代码也结构化逻辑更加清晰 添加了CAN协议和UART协议的自定义模板 添加了模拟EEPROM的参数储存,可以断电保存数据 添加了任意位置设置为零点,

2024-08-04

Python基于django + mysql的后台管理系统源码+数据库脚本

Python基于django + mysql的后台管理系统源码+数据库脚本 介绍 基于django的后台管理系统 安装教程 数据库使用的是Mysql5.7 数据库脚本在dbsql文件夹下,导入数据库即可,用户名:admin 密码:admin 所有组件的版本请查看requirement.txt 使用说明 目前实现了用户、机构、角色、菜单、字典管理 增加新菜单,需要在Menu Manage功能上添加,然后在Role Manage中将新菜单的访问权限赋给角色 3.有数据权限功能,但需要改动代码 介绍 基于django的后台管理系统 安装教程 数据库使用的是Mysql5.7 数据库脚本在dbsql文件夹下,导入数据库即可,用户名:admin 密码:admin 所有组件的版本请查看requirement.txt 使用说明 目前实现了用户、机构、角色、菜单、字典管理 增加新菜单,需要在Menu Manage功能上添加,然后在Role Manage中将新菜单的访问权限赋给角色 3.有数据权限功能,但需要改动代码介绍 基于django的后台管理系统 安装教程 数据库使用的是Mysql5.7

2024-07-26

Python基于Django+Vue+Mysql的在线考试系统(源码+数据库)

基于Django的在线考试系统,系统主要有用户相关功能、考试相关功能、模拟练习功能、后台管理功能、用户管理相关功能、考试管理相关功能以及题库管理功能组成。从不同用户的角度组织本系统的功能模块img 系统介绍 用户登录模块 用户打开系统首页,默认会跳转到登录界面,输入账户、密码、滑动验证码后,点击“登录”。页面会跳转到首页考试中心,用户登录模块界面如下图所示: img 个人信息修改 系统首页界面如下图所示: img 点击“个人中心”,即可修改用户的姓名、性别和班级信息,个人信息修改界面如下图所示: img 在线考试功能 进入首页考试中心页面,分页显示该用户所在班级可以参加考试的试卷,如果试卷较多也可以通过关键词搜索试卷。考试中心页面如下图所示: img 点击“开始做题”,进入答题页面。页面左侧会显示倒计时和题目列表。倒计时的时长是后台考试管理中设置的,题目则是根据考试管理中设置的题目数量,从题库中随机抽取的。页面右侧上方会显示用户的学号、姓名、性别、专业、年级和班级信息,页面中央显示题目信息。答题界面如下图所示: img 答题完成后,点击“交卷”,系统会根据用户的作答

2024-07-26

采用python + MySql + Django所做成的前后端分离的用户管理系统

软件架构 软件架构说明采用python + MySql + Django所做成的前后端分离的系统。可以用于毕设,但是需要自己加以修改。 安装教程 python > 3.7.2 mysql > 5.7.37 django > 3.2.16 采用Python、MySQL和Django构建的前后端分离用户管理系统通常包含以下几个关键部分: 1. **前端**:使用HTML、CSS和JavaScript框架如React、Vue.js或者AngularJS,配合Django Rest Framework(DRF),通过API与后端交互。前端负责用户界面的设计和交互功能。 2. **后端**(服务器端):Python作为后端开发的主要语言,利用Django提供强大的Web框架。Django支持模型-视图-控制器(MVC)模式,可以快速创建数据库模型来管理用户数据,并使用DRF处理HTTP请求,生成API资源。 3. **数据库**:MySQL是一个流行的开源关系型数据库,用于存储用户信息、登录凭证、权限等数据。Django提供了对ORM(Object-Relational Mapping)

2024-07-26

基于STM32的智能小车下位机(底盘控制器),兼容ROS操作系统,和cartographer项目的上位机进行适配

基于STM32的智能小车下位机(底盘控制器),兼容ROS操作系统,和cartographer项目的上位机进行适配,上位机通过STM32虚拟串口与下位机透传,波特率自适应不丢包。 软件架构 本软件基于C编写,支持一路SBUS接收机、一路GPS、一路IMU、一路编码器,支持速度闭环控制、方向控制、路径规划自动驾驶(基于GPS、测试中)、颠簸路况补偿。 支持上传GPS/IMU等信息并加入时间戳供上位机使用和参考。 任务列表 完成SUBS解析。 完成编码器读取和滤波。 完成智能非线性PID设计与部署。 完成IMU的去重力和yaw磁力计融合。 完成GPS解析与自动授时。 完成颠簸路段补偿设计。 所有串口都走DMA以避免丢包。 加入对INA219功率模块的支持。 把所有接口换成紧接口,自带锁定。 重新制板,所有东西包括电源全部采用模块化设计。 加入对SK6812的支持。 加入12VLED车灯功能。 加入电压监测。 完善上下位机通讯协议。 加入在线调参功能。 完成GPS路径规划设计(通过IMU补偿GPS精度)。软件架构 本软件基于C编写,支持一路SBUS接收

2024-07-26

C++基于QT的支持多种硬件调试器和硬件芯片的在线调试软件(OpenOCD和GDB)

基于QT的支持多种硬件调试器和硬件芯片的在线调试软件(基于OpenOCD和GDB) 支持多种硬件调试器和硬件芯片的在线调试软件(基于OpenOCD和GDB),有变量示波、在线改值、数据导出和日志输出等功能支持多种硬件调试器和硬件芯片的在线调试软件(基于OpenOCD和GDB),有变量示波、在线改值、数据导出和日志输出等功能 本程序使用QT编写,用于硬件设备的调试,可直接驱动串口或各种调试器(基于OpenOCD支持) 主要功能 实时查看和修改变量值 实时绘制变量值波形 导出采样数据 格式化日志输出 连接方式 调试器模式:软件直接驱动调试器读取目标芯片数据 无需修改目标芯片程序 理论上支持OpenOCD所支持的各种调试器及硬件芯片,如STLink、JLink、CMSIS-DAP等以及STM32全系列等 附OpenOCD官方文档: 支持的调试器、支持的芯片 对于需要专用OpenOCD驱动的芯片(如ESP32C3等),允许在外部手动开启OpenOCD进程后进行连接 最高采样速度约100Hz 串口模式:软件和目标芯片间通过串口连接 需将一段程序移植至目标芯片中

2024-07-26

基于STM32的G-code解释器,写字机,LVGL屏幕交互,SD卡脱机打印

基于STM32的G-code解释器是一种嵌入式系统解决方案,它可以读取和解析G代码指令集,这是 CNC(Computer Numerical Control)打印机和切割机中广泛使用的标准语言。在这个项目中,STM32作为一个高性能微控制器,负责接收来自PC或其他设备的G代码文件,然后通过其控制功能驱动电机和其他硬件来执行相应动作。 写字机部分则利用了G代码的一些基本功能,比如直线移动和点阵操作,将G代码转化为文字或图案的绘制动作。STM32的精确定时和脉冲输出能力使得字迹清晰、定位准确。 LVGL (LittleVGL) 是一个轻量级的图形库,用于在STM32的LCD或触摸屏上提供用户界面。这个界面通常会显示当前的工作进度、打印状态等信息,并允许用户交互,例如选择要打印的文件或设置参数。 SD卡脱机打印功能意味着设备可以独立于电脑工作,从SD卡中加载G代码文件后,在没有连接电脑的情况下也能完成打印任务,这极大地提高了便携性和灵活性。 基于STM32的G-code解释器是一种嵌入式系统解决方案,它可以读取和解析G代码指令集,这是 CNC(Computer Numerical C

2024-07-26

基于STM32F103C8T6芯片的智能家居-智能温湿度监控助手

基于STM32F103C8T6芯片的智能家居——智能温湿度监控助手 智能温湿度监控助手是一款基于STM32F103C8T6芯片的智能家居解决方案。该项目结合了STM32CubeIDE开发环境和HAL库的强大功能,实现了多种智能控制和监测功能。它采用了一系列先进的硬件模块,包括AHT20温湿度传感器、电机驱动模块DRV8833和OLED显示屏等,以提供全面的家居监控和控制能力。 功能特性 温度和湿度监测:通过AHT20温湿度传感器实时监测室内温湿度数据。 温湿度报警:当温度或湿度超过设定阈值时,触发报警并发送通知。 自动控制:根据设定的温湿度范围,自动控制电机驱动模块,调整室内环境。 实时显示:通过OLED显示屏,实时显示温湿度数据和控制状态。 硬件配置 主控芯片:STM32F103C8T6 温湿度传感器:AHT20 电机驱动模块:DRV8833 显示屏:OLED 开发环境 开发工具:STM32CubeIDE 编程语言:C/C++ HAL库 快速开始 克隆或下载本项目的源代码到本地开发环境。 打开STM32CubeIDE,并导入该项目。 连接开发板和计算机,并编译、烧录程序到开发板。

2024-07-26

基于stm32f103rct6的一个多功能小车项目(包含小车电路工程,小车工程代码).zip

介绍 基于stm32f103rct6的一个多功能小车开源项目。 项目包含小车电路工程,小车工程代码。 能够实现小车寻迹、避障、跟随、魔术手、蓝牙遥控和调试等的功能。 PCB还有点问题,详情请到PCB文件夹下的Readme中查看 安装教程 根据PCB工程打板PCB,焊接 使用type-c线连接PCB,将hex烧入 组装根据PCB工程的原理图组装小车 使用手机蓝牙助手连接TX_CAR,PIN码1234,蓝牙指令集在smart_car文件夹下的BLE_CMD.txt中 使用说明 PCB上的type-c口用作供电和stm32烧录使用 蓝牙发送的指令需要以./结尾,不然不算作一次指令 小车启动时默认速度为零,如若遇到小车切换模式后不动的情况请在OLED上查看小车速度是否不为零,若为零请用蓝牙设置小车速度 已经模拟过了。 (模拟网站:http://scratch.trtos.com/circuitjs.html) PCB上的type-c口用作供电和stm32烧录使用 蓝牙发送的指令需要以./结尾,不然不算作一次指令 小车启动时默认速度为零,如若遇到小车切换模式后不动的情况请在OLED上查看小车速

2024-07-26

基于GRBL移植的在GRBL的基础上将代码移植到STM32的MCU上执行的项目

基于GRBL (Generic G-code Router Bitmap Listener) 的项目通常是用于 CNC(计算机数控)机床控制器的开源软件,它允许用户通过G代码控制各种机械装置。GRBL本身是一个嵌入式软件,通常运行在微控制器如Arduino或ATmega系列上,包括一些早期版本的STM32。 如果你想要将GRBL的代码移植到STM32 MCU(Microcontroller Unit),这是一个常见的过程,因为STM32有强大的计算能力和丰富的资源。首先,你需要做的是: 1. **理解源码**:熟悉GRBL的基本工作原理、数据结构和通信协议。 2. **硬件适配**:根据STM32的特性选择合适的GPIO引脚作为输入输出,以及可能需要的其他外部设备如步进电机驱动电路。 3. **移植库**:如果GRBL使用了非标准函数或依赖的特定库,可能需要找到相应的STM32版本或者自行编写替换代码。 4. **编译链接**:针对STM32的编译器(如Keil MDK或CubeMX等)调整Makefile或构建系统,生成STM32可以识别的二进制文件。 5. **调试测试

2024-07-26

基于 Linux和STM32F411RE通过与WiFi模块进行AT指令串口通信,实现与阿里云&sds 直连的IoT联网开发应用

本 sdk 提供一个基于 Linux和STM32F411RE,通过与 Wi-Fi 模块进行 AT 指令串口通信,实现与阿里云 ILOP 和 sds 以及中国移动杭研平台 直连的 IoT 物联网典型开发应用示例源代码,master分支是基于linux平台,NUCLEOF411RE分支是基于IAR和GCC平台。 Linux 平台开发 3.1 准备 串口接入PC,并查询设备,命令:ls -l /dev/ttyUSB* parallels@parallels-vm:~/iot-sdk$ ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Sep 3 16:15 /dev/ttyUSB0 3.2 编译 iot-sdk 提供四个demo,编译demo的命令格式 make <demo> 清除上次的make命令所产生的build文件,命令:make clean parallels@parallels-vm:~/iot-sdk$ make clean cleaning... done 编译测试demo,命令:make test parallel

2024-07-24

基于物联网的智能蔬菜滴灌系统(以Nodemcu为核心处理器实时测量环境温湿度、光照度、土壤湿度、剩余水量,随时控制滴灌和补光)

以Nodemcu为核心处理器,控制多个传感器模块,实时测量环境温湿度、光照度、土壤湿度、剩余水量,根据指标自动滴灌及补光,并利用WIFI模块,将各项数据指标传输至物联网平台,用户可通过微信小程序实时查看棚内状态,随时控制滴灌和补光。 STM32单机部分 光照度模块 GY-30 IIC OLED 0.96 IIC 土壤湿度传感器 ADC 温湿度传感器 DHT11 单总线 超声波模块 HC-SR04 自动滴灌(水泵)/ 补光(补光灯) 液肥方案 MQTT WIFI模块 ESP-01S UART 连接到物联网平台 自动配网 PCB 原理图 4层PCB 可选项 RTOS STM32单机部分 光照度模块 GY-30 IIC OLED 0.96 IIC 土壤湿度传感器 ADC 温湿度传感器 DHT11 单总线 超声波模块 HC-SR04 自动滴灌(水泵)/ 补光(补光灯) 液肥方案 MQTT WIFI模块 ESP-01S UART 连接到物联网平台 自动配网 PCB 原理图 4层PCB 可选项 RTOSSTM32单机部分 光照度模块 GY-

2024-07-24

基于AB32VG1开发板,结合rt-thread物联网的宠物智能家居监控系统,外接ESP8266模块,通过MQTT协议连接阿里云

本项目基于中科蓝讯(Bluetrum)AB32VG1开发板,结合rt-thread物联网操作系统,同时外接ESP8266模块,通过MQTT协议连接阿里云物联网平台。开发板上云后,就可以实时的上传开发板采集到的传感器数据,同时通过云平台提供的web界面设计,可以展示出数据的值,也可以通过控件来完成对设备的控制,从而实现远程监控的作用。 本项目用到的AB32VG1开发板的硬件接口有: 1.两路I2C,主要连接OLED和光照传感器 2.两路UART,一路用于外接下载和调试,另外一路用于连接8266模块 3.GPIO控制,由于风扇,加热片,加湿器都是5V供电,所以需要利用光耦隔离输出 本模块主要用到的外设: 1.ESP8266模块 2.B-LUX-V20光照检测模块 3.SSD_1306 OLED模块 4.风扇 5.加热片 6.加湿器 7.DHT11 软件设计 本项目利用了rt-thread的进行系统控制,利用一些rt-thread的软件包进行物联网上层驱动的开发工作。并且通过利用RT-ThreadStudio加快编译开发AB32的环境,使得整体开发效率较高。 r

2024-07-24

使用stm32的物联网家庭温湿度监控系统-(使用stm32连接阿里云物联网平台上传温湿度信息)

使用stm32的物联网家庭温湿度监控系统——(使用stm32连接阿里云物联网平台上传温湿度信息) STM32 微控制器 STM32 作为系统的控制中心,负责收集环境的温湿度数据并通过内置的 ADC (模拟数字转换器) 接口从 DHT11 或其他温湿度传感器读取数据。STM32 同时具备 UART (通用异步收发传输模式) 接口用于与 ESP8266 Wi-Fi 模块通信。 ESP8266 WI-FI 模块 ESP8266 通过 Wi-Fi 技术将 STM32 上的温湿度信息上传至阿里云 IoT 平台。它可以轻松接入各种无线网络,包括 WiFi 和 BLE (蓝牙低功耗),大大增强了设备的联网灵活性。 数据采集设备 除了 STM32 和 ESP8266,还需要 DHT11 或类似温湿度传感器用于实际的数据采集。此类传感器通过简单的电压信号表示温度和湿度值,方便 STM32 进行数据读取。 软件设计 STM32 程序: 初始化 ADC 和 I/O 引脚以准备温湿度传感器的连接。 实现数据读取逻辑,读取 DHT11 的数据并通过 UART 发送给 ESP8266。 包含了 ESP82

2024-07-24

STM32通过ESP8266连接阿里云物联网平台读取DHT11温湿度和18B20温度上传,在阿里云物联网平台控制LED灯亮度

通过ESP8266连接到阿里云物联网平台,STM32读取DHT11温湿度和18B20温度上报到阿里云,并且可以在阿里云物联网平台下发指令控制LED灯的亮度 STM32通过ESP8266连接到阿里云物联网平台并读取DHT11的温湿度以及18B20的温度值,然后上传到阿里云物联网平台,最后通过平台控制LED灯亮度是一个典型的物联网应用实例。以下是该流程的简述及步骤分解: 系统组件及角色: STM32 MCU: 负责实时采集环境数据(温度和湿度)、控制LED灯,并与ESP8266通信。 ESP8266 Wi-Fi模块: 提供无线网络连接功能,让STM32能通过Wi-Fi与互联网通信。 DHT11 温湿度传感器: 用于测量环境的温度和湿度。 18B20 温度传感器: 用于单独测量温度,常用于较精确的温度监控场合。 阿里云物联网平台: 接收数据并提供对设备的远程控制能力。 连接流程: 硬件连接: STM32与ESP8266通过UART接口通信。 DHT11和18B20分别连接到STM32对应的GPIO口上,用于读取温湿度数据和温度数据。 软件开发: 使用Arduino IDE或STM32C

2024-07-24

STM32F103通过上海庆科EMW3060连接阿里云生活物联网平台.zip

STM32F103:这是一款ARM Cortex-M3系列微控制器,广泛应用于工业自动化、消费电子、医疗健康等领域。其资源丰富,性能适中,适合小型项目。 EMW3060:由上海庆科信息科技有限公司推出的一款Wi-Fi模组,内置Wi-Fi芯片(通常为Espressif ESP8266或类似产品)。EMW3060简化了Wi-Fi硬件接入复杂度,使其易于与MCU集成。 2. 物联网平台对接 阿里云物联网平台:是阿里巴巴集团推出的物联网服务平台,支持设备注册、认证、通信、数据分析等一系列功能,适用于快速搭建设备管理、数据收集、远程控制等物联网应用。 3. 技术流程概述 步骤一:设备注册与认证 首先,在阿里云物联网平台创建新设备,并为其分配唯一标识符(Device Name & Device Key)。这些信息会保存在STM32F103中,以便后续通过EMW3060与云端交互时使用。 步骤二:软件开发 驱动与库准备:下载并配置适用于STM32F103的Wi-Fi驱动及阿里云物联网SDK(Aliyun IoT SDK)。这通常包括Wi-Fi模组驱动、Aliyun IoT SDK头文件、源码,

2024-07-24

基于STM32+ESP8266+MQTT协议连接阿里云物联网平台的智能家居系统.zip

STM32 微控制器: STM32 负责处理本地传感器数据,并作为主控节点与 ESP8266 进行通信。STM32 可以通过 I2C、SPI 或 UART 接口连接各种传感器,接收实时数据并转换成 MQTT 消息格式发送给 ESP8266。 ESP8266 WI-FI 模块: ESP8266 用于连接到无线网络,并与阿里云 IoT 平台进行 MQTT 通信。它支持多种工作模式,如 AP 模式、STA 模式等,可以灵活接入互联网。 MQTT 协议: MQTT 是一种轻量级消息传输协议,非常适合嵌入式设备和低带宽网络环境。在本系统中,STM32 和 ESP8266 使用 MQTT 协议向阿里云 IoT 平台发布和订阅消息。 阿里云 IOT 平台: 阿里云 IoT 平台提供了一系列的服务,包括设备管理、消息推送、数据分析等功能。开发者可以通过 API 向平台注册设备、设置设备属性、获取设备状态等操作。 2. 实现步骤: 设备端(STM32 + ESP8266): 设备注册:首先需要在阿里云 IoT 平台上注册设备,生成证书和密钥,然后将这些信息安全地存储在 STM32 内存中。 编

2024-07-24

stm32驱动esp01s实现自动上传数据到阿里云平台-智慧家居,温湿度,烟雾浓度监控系统(采用mqtt协议)

stm32驱动esp01s实现自动上传数据到阿里云平台——智慧家居,温湿度,烟雾浓度监控系统(采用mqtt协议) 智慧家居,温湿度,烟雾浓度监控系统 此系统的目标是在智能家居环境中实时监测并上传温度、湿度和烟雾浓度信息至阿里云平台,实现自动化监控与远程警报功能。 系统构成 STM32 MCU: 控制核心,处理传感器数据,执行与Wi-Fi模块的通信,以及与阿里云平台的交互。 ESP01S Wi-Fi模块: 负责无线数据传输,将STM32的数据发送至云端。 传感器 (例如DHT11/DHT22用于温度和湿度测量,HC-SR501用于烟雾检测): 监测物理环境指标,并将数据提供给STM32。 实现流程 数据收集: STM32读取传感器提供的温度、湿度和烟雾浓度数据。 数据预处理: 可能涉及数据清洗、转换单位或计算平均值等步骤。 MQTT协议配置: 配置STM32与ESP01S以MQTT协议与阿里云物联网平台进行通信。需确定客户端ID、服务器地址、端口号等关键参数。 发布消息: 将收集并预处理后的数据封装成MQTT消息形式,通过ESP01S的Wi-Fi模块发布至指定的主题(topic),供阿

2024-07-23

(STC)51单片机裸板开发的实战项目-AT89C51单片机硬件设计.zip

(STC)51单片机裸板开发的实战项目——AT89C51单片机硬件设计.zip 硬件设计:包括电路原理图、PCB布局与设计,确保所有组件之间的连接正确无误,电源管理、输入输出端口、通信接口(如UART、IIC、SPI)、定时器及中断系统等功能模块能够正常工作。 软件开发:使用汇编语言或C语言编写程序代码,实现特定功能,比如数据采集、控制电机、显示操作界面、网络通讯等任务。对于初学者来说,从简单的LED闪烁开始,逐步深入到更复杂的系统级应用是非常有帮助的。 调试与测试:利用仿真工具(如Keil uVision、Proteus等)模拟运行程序,或者直接在实际硬件上进行测试,通过观察LED状态、串口输出等反馈信息验证程序是否按预期运行。 文档撰写:记录项目的每个阶段,包括设计方案、遇到的问题及其解决办法、最终功能实现情况等,以便于后续维护或分享经验。 关联问题: 如何选择合适的开发环境进行STC单片机开发? 在设计电路板时,如何有效地进行电源管理以避免EMI干扰? 初学者在学习使用单片机进行嵌入式开发时,有哪些常见的陷阱需要避免? 请注意,在进行实际的硬件设计和软件开发过程中,需要结

2024-07-23

(STC)51单片机裸板开发的测试项目-图书馆选座系统.zip

(STC)51单片机裸板开发的测试项目-图书馆选座系统.zip STC 51单片机简介 STC(South China University of Technology)系列单片机是基于经典的8051架构,但是引入了增强的特性,例如支持双波特率、内部EEPROM等,并且在程序存储空间上提供了一定程度的增加。这种单片机广泛应用于需要低成本、低功耗、高集成度的应用场景,如智能家居设备、工业自动化、教学实验平台等。 图书馆选座系统的功能概述 在图书馆选座系统中,可能会包括以下核心功能: 座位状态显示:实时更新每个座位是否有人占用的状态,可以采用LED灯或液晶屏显示给用户查看。 座位预订与取消:允许用户通过某种输入方式(比如按钮、触摸屏或手机APP)预订空闲的座位,并能方便地取消预定。 数据存储与检索:记录座位的使用情况,包括已预订和当前使用的座位信息。 电源管理:为了节能,系统可能包含自动关机机制,在长时间无操作后关闭不必要的组件。 故障检测:监测系统运行状况,及时发现并处理可能出现的问题,比如通信中断、硬件故障等。 开发过程概览 开发这样的系统一般会涉及以下几个步骤: 需求分析:明确

2024-07-23

(STC)51单片机裸板开发的实战项目-LCD显示多点位温度光照采集系统.zip

此系统是一个基于STC单片机(如STC89C52RC等型号)的多功能监测系统,主要用于实时显示各测量节点的温度和光照数据,并将这些信息通过液晶显示器(LCD)展示出来。该系统不仅能够实时监测环境条件,还能存储历史数据,提供数据分析功能。 二、硬件构成: 主控芯片:STC单片机,用于处理输入信号并控制整个系统的运行。 温度传感器:采用数字式温度传感器(如DS18B20),可以精确读取温度值。 光敏电阻:用于检测光照强度。 LCD显示屏:选用适合的LCD模块,如1602 LCD,用于显示温度和光照数据。 电源管理电路:提供稳定的电压给各组件供电。 外部连接件:包括接线端口,方便接入各种传感器和其他设备。 三、软件设计: 系统软件通常包含以下几个部分: 初始化代码:配置单片机工作模式,设置串行通信参数,初始化LCD屏幕等。 传感器驱动程序:编写针对温度传感器和光敏电阻的读取函数,获取它们的数据。 数据处理:对从传感器收集到的数据进行初步处理,如温度转换等。 LCD驱动:将处理后的数据显示在LCD屏幕上。 数据存储:选择适当的方式保存历史数据,例如使用单片机内部的Flash存储器或外接的E

2024-07-23

(STC)51单片机裸板开发的实战项目-OLED显示多点位温度光照采集系统.zip

(STC)51单片机裸板开发的实战项目-OLED显示多点位温度光照采集系统 ### STC 51单片机裸板开发的实战项目 - OLED显示多点位温度光照采集系统 #### 系统概述: 本项目旨在利用STC系列单片机(如STC89C52RC)结合OLED显示屏,构建一个能够实时监测并显示多个位置的环境温度和光照强度的系统。此系统特别适用于需要远程监控温光条件的场合,比如智能温室、实验室等。 #### 设计原理: 1. **硬件配置**: - **单片机**:选择STC89C52RC作为核心控制器,因其资源丰富、功耗低、价格适中等特点。 - **传感器**:集成温度和光照传感器模块,例如DS18B20用于温度检测,TSL2561用于光照强度检测。 - **OLED屏幕**:采用小型OLED显示屏用于显示实时数据和界面图形化操作,提升用户体验。 - **电源管理**:设计合理的电源电路,保证在不同负载下稳定供电,并考虑节能需求。 2. **软件框架**: - 利用STC单片机自带的汇编语言或C语言开发环境编写程序,负责传感器的数据读取、处理以及与OLE

2024-07-23

(STC)51单片机裸板开发的实战项目-ST7920LCD12864温室大棚监控系统.zip

(STC)51单片机裸板开发的实战项目-ST7920LCD12864温室大棚监控系统 (STC)51单片机裸板开发的实战项目-ST7920LCD12864温室大棚监控系统STC (SinoTron) 51单片机是一个广泛应用在嵌入式系统的微控制器系列,其中包含了许多型号如STC89、SC12等。为了介绍一个基于STC 51单片机的实战项目——ST7920 LCD 128x64温室大棚监控系统,我们可以从以下几个方面着手: ST7920 LCD 128x64监控系统设计概述 该系统的主要目标是监测并控制温室大棚内的环境条件,包括但不限于温度、湿度、光照强度以及二氧化碳浓度等关键指标。通过实时采集数据并与预设阈值比较,系统可以自动调节加热、通风、喷水等设备,以维持最佳生长环境。 硬件组成及工作原理 主控单元:STC51单片机 选择STC51单片机作为核心处理器,因为它具有低功耗、成本效益高、易于开发的特点,适合于资源有限的应用场景,例如温室大棚监控系统。 显示界面:ST7920液晶显示屏 使用ST7920 LCD 128x64作为显示模块,用于直观展示温室大棚内各种传感器采集的数据。

2024-07-23

(STC)51单片机裸板开发的实战项目-图书馆选座系统

(STC)51单片机裸板开发的实战项目——图书馆选座系统 图书馆选座系统项目介绍 一、项目背景 随着科技的发展及图书馆管理需求的变化,传统的图书借阅模式已经无法满足高效便捷的服务需求。为了提高图书馆资源利用效率,提升用户借阅体验,本项目旨在设计并实现一套基于STC51单片机的图书馆选座系统。 二、系统功能 该系统主要包括以下几个核心功能模块: 座位显示:通过LED矩阵或其他显示设备直观地展示图书馆各个区域的座位占用情况。 座位选择:使用者可以通过触摸屏或遥控器等输入设备选择空闲座位,并通过显示屏确认所选位置。 状态更新:当座位被选择后,系统自动更新座位信息,显示已占用状态。 预约功能:允许用户提前预定座位,系统支持设定预约时间和取消预约操作。 计费系统:对长时段使用的座位进行费用计算,如超时提醒和计费功能。 三、技术实现 硬件组成:使用STC51系列单片机作为中央处理器,配合各类传感器、显示器、输入设备以及通信模块构建系统框架。 软件设计:采用C语言编写控制程序,集成界面友好、操作简便的人机交互设计,确保系统的稳定性和可靠性。 数据处理:通过内部算法实时处理座位状态变化,包括座位预

2024-07-23

(STC)51单片机裸板开发的实战项目-热电偶温度控制警报器

(STC)51单片机裸板开发的实战项目——热电偶温度控制警报器 (STC)51单片机裸板开发的实战项目——热电偶温度控制警报器 主要包括源码+项目介绍,+文档说明+全部项目数据实物图,完整设计文档(就是项目的设计过程,教你设计本项目),接线说明,原理图,用到的软件工具 热电偶温度控制警报器简介: 热电偶温度控制警报器是一个利用热电偶作为传感器测量环境温度,并通过STC 51单片机进行数据处理、控制和报警功能实现的小型电子设备。热电偶因其高精度、可靠性以及对恶劣条件的适应能力,在工业自动化、家庭安全监控等领域有着广泛的应用。 设计原理及关键部件: 热电偶:用于感应环境温度的变化,将温度变化转换成电信号。 STC 51单片机:作为核心处理器,负责接收热电偶信号,进行数据处理和逻辑判断。 ADC(模数转换器):集成于单片机内,将模拟信号转换为数字信号供单片机读取。 比较器:用于设定温度阈值,当检测到的温度超过预设阈值时触发报警电路。 蜂鸣器:作为报警输出设备,发出声音提醒用户注意异常情况。 实现步骤: 硬件设计:组装热电偶、STC 51单片机、ADC模块、比较器、蜂鸣器等元件并连接至电路板

2024-07-23

Stable Diffusion、Midjourney、DALL2等AI绘画软件介绍文档

Stable Diffusion、Midjourney、DALL·E 2等AI绘画软件都是基于深度学习的图像生成技术,它们使用了复杂的机器学习模型来根据文本描述或现有图像创建全新的视觉艺术作品。下面是对每款软件的简要介绍: ### 1. Stable Diffusion - **简介**:Stable Diffusion 是一个开源的AI模型,用于生成基于文本描述的图像。它的设计目的是在保持高质量生成的同时,降低计算资源的需求,使得更多的用户和开发者能够在自己的设备上运行模型。 - **工作原理**:它使用扩散模型(diffusion model),这是一种迭代过程,模型会逐渐去除噪声,直至生成最终的图像。 - **特点**:开源性使得Stable Diffusion具有高度可定制性,社区可以自由地修改和扩展模型。此外,它在个人电脑上的运行效率相对较高。 ### 2. Midjourney - **简介**:Midjourney 是一款AI绘画工具,由David Holz领导的团队开发。起初仅能在Discord平台上使用,后来发展到支持更多平台。 - **工作原理**:Midj

2024-07-19

mspm0串口通信详细介绍文档mspm0串口通信详细介绍文档

mspm0串口通信MSPM0系列微控制器是敏矽微电子设计的一款基于ARM Cortex-M0内核的MCU,具有多种外设,包括串行通信接口(如UART)。串口通信(UART:Universal Asynchronous Receiver/Transmitter)是一种常见的数据传输方式,用于在两个设备之间进行全双工(即同时发送和接收数据)串行数据通信。 对于MSPM0系列MCU的串口通信,以下是其主要特性及配置步骤的简要介绍: 主要特性 全双工操作:允许同时发送和接收数据。 波特率发生器:可以配置不同的波特率,以适应不同的通信速度。 FIFO缓冲区:具有接收和发送FIFO,用于提高通信效率,减少数据丢失。 中断支持:支持中断驱动的通信,可以减少CPU的负载。 过采样:可以选择过采样率,提高接收的精度。 硬件流控制:部分型号支持硬件流控制信号(如RTS/CTS)。 配置步骤 1. 选择通信方向 配置TX(发送)和RX(接收)引脚。 2. 设置波特率 配置波特率发生器,设置所需的通信速度。 3. 选择过采样 选择合适的过采样率,通常为16,以提高接收时钟的稳定性。 4. 配置FIFO 如

2024-07-13

android studio项目demo介绍文档

android studio项目实例Android Studio 是 Google 推出的一款强大的 Android 开发环境,它包含了构建、调试和部署 Android 应用所需的所有工具。下面我将为你概述几个常见的 Android Studio 项目实例,这些实例涵盖了从简单到复杂的不同场景: Hello World 应用 这是最基础的实例,通常用于教学目的,演示如何创建一个新的 Android 项目,并显示一个简单的 “Hello World” 文本。 天气应用 这种应用可以从网络 API 获取天气数据,并在界面上显示给用户。它涉及到网络请求、异步处理和 JSON 数据解析。 图书管理系统 这类应用使用 SQLite 数据库来存储和管理书籍的信息,通常包含添加、编辑、删除和搜索书籍的功能。 Instagram 克隆 一个社交应用实例,可以上传图片、添加描述、点赞和评论。这需要后端服务器的支持,如 Firebase 或者自己搭建的 RESTful API。 机票管理应用 这种应用可以搜索航班信息、预订机票并管理行程。它可能需要集成外部的航班数据服务。 节目列表应用 类似于超级课程表

2024-07-13

html css js网页设计案例介绍文档

html css js网页设计 HTML (HyperText Markup Language), CSS (Cascading Style Sheets), 和 JavaScript 是 Web 开发中最常用的三种技术。它们分别负责网页的内容结构、样式呈现和动态交互。以下是一些使用 HTML, CSS, 和 JavaScript 设计的网页案例介绍: 1. **阴阳师主题网页** - 这个案例可能围绕着热门的手机游戏《阴阳师》设计,利用精致的图形和动画效果,模仿游戏的风格和氛围。 2. **京东商城网页** - 仿造京东这样的大型电商平台,使用 HTML 构建商品列表、购物车等功能,CSS 进行布局美化,JavaScript 实现动态效果如加载更多商品、用户交互等。 3. **哆啦A梦、宫崎骏、蜡笔小新、海绵宝宝主题网页** - 这些案例可能是以动漫角色为主题的设计,通过使用 CSS3 的动画和过渡效果,以及 JavaScript 的动态元素,创建有趣的互动体验。 4. **个人网页设计** - 包括个人简历、博客或作品集页面,利用 HTML 结构化个

2024-07-13

人工智能相关实验案例介绍文档人工智能相关实验案例介绍文档

人工智能(AI)实验案例涵盖了广泛的领域和技术,从机器学习的基础到复杂的人工智能系统。下面我将介绍几个不同类型的人工智能实验案例,这些案例可以为学习者提供对AI不同方面的理解: 1. **基于Python的机械臂积木搬运实验**: 这个实验使用了TL3568-PlusTEBAI人工智能实验箱,让学生通过编程控制机械臂,完成对不同颜色积木的识别和按特定顺序堆叠的任务。实验不仅涉及机械臂控制,还包含颜色识别和排序逻辑,适合于学习物体识别和机器人控制。 2. **前馈神经网络实验**: 在这个实验中,学生会接触到神经网络的基础,特别是全连接神经网络。实验通常包括手写体图像识别,这需要学生理解神经网络的结构,训练过程以及如何应用神经网络解决分类任务。 3. **奥赛罗游戏AI实验**: 奥赛罗(Othello)是一种棋盘游戏,AI实验通常要求开发一个程序来模拟游戏并做出最佳移动决策。这种类型的实验可以帮助学生理解搜索算法、博弈树和启发式函数在游戏AI中的应用。 4. **高职人工智能综合实训案例之AI分类模型实战**: 针对高职学生的实训项目,这个案例可能涉及构

2024-07-13

Matlab仿真实验详细介绍文档Matlab仿真实验详细介绍文档

MATLAB 是一种高级编程语言和交互式环境,主要用于数值计算、算法开发、数据可视化、数据分析以及工程和科学计算。MATLAB 的强大之处在于它的数值计算能力和丰富的工具箱,其中包括用于控制理论、信号处理、通信、图像处理、模糊逻辑、神经网络、小波分析、系统识别、优化、统计和许多其他领域的专用工具箱。 在进行 MATLAB 仿真实验时,通常涉及以下几个步骤: 1. **数学建模**: - 根据问题的性质,使用微分方程、差分方程、状态空间模型、传递函数或其他数学模型来描述系统的行为。 2. **编写代码**: - 使用 MATLAB 编写程序来实现数学模型。这可能包括定义函数、使用循环、条件语句、数组操作等。 3. **使用工具箱**: - 利用 MATLAB 的工具箱,例如 Control System Toolbox、Signal Processing Toolbox、Simulink 等,来进行更复杂的系统分析和设计。 4. **参数设置和输入规划**: - 设置模型的参数,如系统增益、时间常数、噪声水平等,并规划输入信号,如阶跃、脉冲、正弦波或随机

2024-07-13

hadoop&spark使用教程详细介绍文档

Hadoop 和 Spark 是两种广泛使用的大数据处理框架。Hadoop 主要用于存储大量数据并通过 MapReduce 进行并行处理,而 Spark 则提供了一个更快速的数据处理引擎,支持多种计算模型,如批处理、流处理、机器学习和图形处理。 下面是使用 Hadoop 和 Spark 的基本步骤: ### 1. 安装 Hadoop - **环境准备**:确保你的系统满足 Hadoop 的硬件和软件要求。一般需要 Java 环境,推荐使用 Linux 操作系统。 - **下载 Hadoop**:从官方网站下载适合你操作系统的 Hadoop 版本。 - **解压缩并配置**:解压缩 Hadoop 的安装包,编辑配置文件(如 `core-site.xml`, `hdfs-site.xml`, `yarn-site.xml`, `mapred-site.xml`)以适应你的环境。 - **格式化 HDFS**:使用 `hdfs namenode -format` 命令初始化 HDFS 文件系统。 - **启动 Hadoop**:运行脚本启动 Hadoop 的守护进程,包括 NameNo

2024-07-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除