自定义博客皮肤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)
  • 资源 (4)
  • 收藏
  • 关注

原创 【Java】微服务——RabbitMQ消息队列(SpringAMQP实现五种消息模型)

基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定多个消费者绑定到一个队列,同一条消息只会被一个消费者处理通过设置prefetch来控制消费者预取的消息数量交换机的作用是什么?接收publisher发送的消息。

2023-10-09 23:09:04 2221

原创 【Java】微服务——Docker容器部署(docker安装,docker配置镜像加速,DockerHub,docker基本操作,Dockerfile自定义镜像.Docker-Compose)

微服务虽然具备各种各样的优势,但服务的拆分通用给部署带来了很大的麻烦。分布式系统中,依赖的组件非常多,不同组件之间部署时往往会产生一些冲突。在数百上千台服务中重复部署,环境不一定一致,会遇到各种问题**数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了。

2023-10-09 15:49:02 4008

原创 【Java】微服务——Gateway网关

过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截实现:import org。

2023-10-07 19:13:00 3297

原创 【Java】微服务——Feign远程调用

使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。

2023-10-07 15:34:56 2996

原创 【Java】微服务——Nacos配置管理(统一配置管理&热更新&配置共享&Nacos集群搭建)

我们最终的目的,是修改nacos中的配置后,微服务中无需重启即可让配置生效,也就是配置热更新。,例如:userservice-dev.yaml,例如:userservice.yaml而不包含环境,因此可以被多个环境共享。下面我们通过案例来测试配置共享。

2023-10-04 17:39:59 2713

原创 【Java】微服务——Nacos注册中心

是阿里巴巴的产品,现在是中的一个组件。相比功能更加丰富,

2023-10-04 16:06:21 806

原创 【Java】微服务——Ribbon负载均衡(跟进源码分析原理)

SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。用一幅图来总结一下:拦截我们的RestTemplate请求http://userservice/user/1RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-serviceDynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。

2023-10-04 12:27:06 259

原创 【Java】微服务——微服务介绍和Eureka注册中心

注册一个RestTemplate的实例到Spring容器修改order-service服务中的OrderService类中的queryOrderById方法,根据Order对象中的userId查询User将查询的User填充到Order对象,一起返回。

2023-10-03 16:00:38 906

原创 HTML+CSS+JavaScript 大学生网页设计制作作业实例代码 200套静态响应式前端网页模板(全网最全,建议收藏)

资源链接📚web前端期末大作业 (200套) 集合Web前端期末大作业通常是一个综合性的项目,旨在检验学生在HTML、CSS和JavaScript等前端技术方面的能力和理解。以下是一些可能的Web前端期末大作业的示例和介绍:网页类型举例📘响应式网站开发:学生需要设计和开发一个具有响应式布局的网站,确保在不同设备上都能良好显示和交互。📘电子商务网站:学生需要构建一个完整的电子商务网站,包括商品展示、购物车、订单管理等功能,并实现与后端服务器的数据交互。

2023-09-22 10:38:57 1487 1

原创 贪心算法(无规则)

【代码】贪心算法(无规则)

2023-05-13 21:13:12 1846

原创 回溯算法例题(剪枝策略)

【代码】回溯算法例题(剪枝策略)

2023-05-10 18:56:11 503 3

原创 动态规划算法——40道leetcode实例入门到熟练

链接:1049. 最后一块石头的重量 IIi ++) {//将stones数组一分为二,找到重量最接近target的dp数组 int dp [ ] = new int [ target + 1 ];//默认初始化为0 for(int i = 0;i ++) {//先遍历石头 for(int j = target;j --) {

2023-05-06 19:38:27 1002 3

原创 Java实现画板GUI课程设计源码

该画板中可以绘制的图形包括圆形 (含椭圆) 、矩形 (含正方 形) 、直线和点,每个图形都需要保存位置、大小几何属性及是否填 充 、填充颜色 、是否绘制边框和边框颜色等必要属性,用户通过选择 按钮或者菜单项选中要绘制的图形,并且设置边框 、填充属性,然后 在绘制区域中通过鼠标拖放的方式创建图形;2.在用户界面 GUI 类中, 继承了JFrame 类, 添加各种按钮 、 两个面板, 分别用 来画图和存放按钮组件,界面采用流式布局,为组件添加编写好的事件监听机制。

2023-02-28 19:43:40 631 4

原创 Java——Maven项目管理

是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。官网 :http://maven.apache.org/通过上面的描述大家只需要知道Maven是一个工具即可。Apache 是一个开源组织,将来我们会学习很多Apache提供的项目。

2023-01-30 14:43:22 1010 1

原创 Java数据库连接池(druid连接池)

2.定义配置文件druid.properties。Properties文件。

2023-01-29 23:29:17 309 1

原创 Java线程池

任务拒绝策略自定义线程池(核心线程数量,最大线程数量,空闲线程最大存活时间,时间单位,任务队列,创建线程工厂,任务的拒绝策略);参数1:核心线程数量 不能小于0参数2:最大线程数量 不能小于0参数3:空闲线程最大存活时间 不能小于0参数4:时间单位 用TimeUnit指定参数5:任务队列 不能为null。

2023-01-24 12:07:44 801 2

原创 Java多线程03——等待唤醒机制(and阻塞队列实现)

桌子上有食物,消费者吃,桌子上没有食物,消费者等待,唤醒生产者,生产者准备食物。生产者准备好食物,唤醒消费者,消费者开吃。没有运行状态,运行状态是Java运行start()就绪状态后交给操作系统的。是否有面条 foodFlag=0:没有。foodFlag=1:有。作用:控制生产者和消费者的执行。

2023-01-23 21:25:56 736 2

原创 Java多线程02(生命周期,线程安全synchronized(),锁Lock )

/static获得唯一的锁对象。//Lock是接口不能直接实例化,这里采用他的实现类ReentrantLock来实例化。//对象共享成员变量数据。//创建锁对象,static保证唯一。

2023-01-20 20:51:53 910

原创 Java——多线程01(创建和启动,优先级调度,守护线程,出让/礼让线程,插队/插入线程)

setName设置线程的name(如果没有给线程设置名字,默认为Thread-X(从0开始))* 1.setPriority(int newPriority) 设置线程的优先级。* final void setDaemon(boolean on) 设置为守护线程。* 细节:当其他的非守护线程执行完毕后,守护线程会陆续结束(不是立即)。* 1.哪条线程执行到这个方法,那么哪条线程就会在这里停留对应时间。t1.join();* 2.getPriority() 获取线程的优先级。

2023-01-20 09:15:52 1634

原创 Java——properties(map)配置文件

【代码】Java——properties(map)配置文件。

2023-01-18 20:20:48 1687 1

原创 数据结构——排序汇总

@TOC2.希尔排序

2022-11-27 16:34:36 155

原创 Java文件——File对象

@TOC4.获取并遍历方法listFiles()获取文件夹中的所有内容当调用对象路径不存在或者是文件时,返回null当文件夹为空时,返回一个长度为零的数组。

2022-11-22 00:11:37 459 1

原创 Java——Stringjoiner字符串操作

@TOCystem.out.println(sj);// //2.有间隔符号,开始符号,结束符号的构造// System.out.println("有间隔符号,开始符号,结束符号的构造");// StringJoiner sj02=new StringJoiner("***","[","]");// for (int i = 0; i < a.length; i++) {// sj02.add(a[i]);//

2022-11-20 12:29:29 328 2

原创 哈夫曼树(C语言)

【代码】哈夫曼树(C语言)

2022-10-16 19:03:41 1249 2

原创 MySQL——6万字基础知识总结

客户端连接Mysql服务(Mysql数据库)启动Mysql数据库的常用方式【Dos命令】使用SQLyog演示数据库创建操作演示结果演示结果演示结果user表1. 数据类型说明2. 文本、二进制类型3. 时间日期第一步第二步第三步9.MySQL——bit类型数值型(bit)的使用演示bit类型演示结果2.字符串使用细节日期类型的基本使用CREATE TABLE birthday6(t1 DATE,t2 DATETIME,t3 TIMES

2022-08-29 11:01:46 465 5

原创 MySQL——管理

/表示赋予该用户在该对象上的所有权限。revoke 权限列表 on 库.对象名 from ‘用户名"@"登录位置’;库.*:表示某个数据库中的所有数据对象(表,视图,存储过程等)grant 权限列表 on 库.对象名 to '用户名’@:代表本系统中的所有数据库的所有对象(表,视图,存储过程)(2).特别说明 //表示赋予该用户在该对象上的所有权限。(1)如果用户存在,就是修改该用户的密码。(2)如果该用户不存在,就是创建该用户!(1). 权限列表,多个权限用逗号分开。...

2022-08-28 14:39:40 133

原创 MySQL——视图

试图是一个虚拟表,其内容由查询定义,同真实的表一样,试图包含列,其数据来自对应的真实表。> 1. 创建视图后,到数据库去看,对应视图只有一个视图结构文件(形式:视图名.frm)> 2. 视图的数据变化会影响到基表,基表的数据变化也会影响到视图[insert update delete ]----针对前面的雇员管理系统----- > mysql> create view myview as select empno ,ename, job, comm from emp; > mysql> select

2022-08-28 10:06:22 277

原创 MySQL表类型和存储引擎

1. 数据存储在内存中[关闭了Mysql服务,数据丢失, 但是表结构还在]– 2. 执行速度很快(没有IO读写) 3. 默认支持索引(hash表)– 1. 添加速度快 2. 不支持外键和事务 3. 支持表级锁。– 1. 支持事务 2. 支持外键 3. 支持行级锁。1. MyISAM不支持事务、也不支持外键,但其访问速度快,对事务完整性没有要求> 2. InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保.

2022-08-27 16:12:56 182 5

原创 MySQL——事务隔离级别

概念:隔离级别定义了事务与事务之间的隔离程度多个连接开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个连接在获取数据时的准确性。如果不考虑隔离性,可能会引发如下问题:脏读。不可重复读。幻读。脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读不可重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生不可重复读。...

2022-08-27 14:32:13 420 4

原创 MySQL——事务(说明及其细节)

使用commit语句可以提交事务.当执行了commit语句子后,会确认事务的变化、结束事务、删除保存点、释放锁,数据生效。当使用commit语句结束事务子后,其它会话将可以查看到事务变化后的新数据[所有数据就正式生效.]在介绍回退事务前,先介绍一下保存点(savepoint).保存点是事务中的点.用于取消部分事务,当结束事务时(commit),会自动的删除该事务所定义的所有保存点.当执行回退事务时,通过指定保存点可以回退到指定的点。...

2022-08-26 20:13:19 418

原创 MySQL——索引优化,索引机制,索引类型及其使用

id int unique,-- id是唯一的,同时也是索引,称为unique索引。id int primary key,-- 主键,同时也是索引,称为主键索引。WHERE empno =123569 – 0.008s,原来是2.5s。WHERE empno =123569 – 用时2.5s。主键自动的为主索引(类型peimary key)– 索引创建成功后emp.ibd占用635M。– 在没有创建索引时,查询一条记录。– empno_index索引名称。索引创建后,只对创建了索引的列有效。...

2022-08-26 15:06:15 1660 10

原创 MySQL——自增长

3. 添加自增长的字段方式 > insert into xxx (字段1,字段2....)> 1. 一般来说自增长是和primary key 配合使用的> 2. 自增长也可以单独使用[但是需要配合一个unique]> 3. 自增长修饰的字段为整数型的(虽然小数也可以但是非常非常 少这样使用)> 4. 自增长默认从 1开始,你也可以通过如下命令修改> alter table 表名 auto_increment = xxx;> 5. 如果添加数据时,给自增长字段(列)指定具体值,则以指定的值为准

2022-08-25 14:26:38 2240

原创 mysql约束——foreign key(外键)和check

> 1. foreign key(外键) 用于定义主表和从表之间的关系:外键约束要定义在从表上,主表则必须具有主键约束或是unique约束.,当定义外键约束后,要求外键列数据必须在主表的主键列存在或是为null(学生/班级> 图示)> 2. FOREIGN KEY (本表字段名) REFERENCES 主表名(主键名或unique字段名)> 3. 学生表(从表) id name class_id> 班级表(主表) id class_name> > 指定外键关系 FOREIGN

2022-08-25 11:53:56 671

原创 【MySQL】外连接(左外连和右外连)和主键,mysql约束

在mysql中,约束包括: not null、unique, primary key,foreign key,和check 五种.– 如果一个列(字段), 是 unique not null 使用效果类似 primary key。如果在列上定义了not null,那么当插入数据时,必须为列提供数据。– 演示复合主键 (id 和 name 做成复合主键)字段名 字段类型 not null。当id和name都相同是才违反复合主键规则。当定义了唯一约束后,该列值是不能重复的。) – 这里就是复合主键。

2022-08-24 17:50:43 849 5

原创 【MySQL】表复制,去重,合并查询

> 1. 为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此法为表创建海量数据> > 2. INSERT INTO my_tab01 SELECT * FROM my_tab01;语句可以每次成倍复制> 1. 思路 (1) 先创建一张临时表 my_tmp , 该表的结构和 my_tab02一样 (2) 把my_tab02的记录 通过 distinct 关键字 处理后 把记录复制到 my_tmp insert into my_tmp select distinct * fro

2022-08-24 13:03:51 443

原创 MySQL多表查询——子查询(临时表,all、any操作符)

子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询。单行子查询:只返回一行数据的子查询语句。多行子查询:指返回多行数据的子查询语句。使用关键字in。-- 查询ecshop中各个类别中,价格最高的商品-- 查询 商品表-- 先得到 各个类别中,价格最高的商品 max + group by cat_id, 当做临时表-- 把子查询当做一张临时表可以解决很多很多复杂的查询SELECT ename, job, sal, deptno FROM emp WHERE job IN ( SE

2022-08-23 18:11:14 970

原创 MySQL表查询--多表笛卡尔积和子连接

> 说明> 多表查询是指基于两个和两个以上的表查询,在实际应用中,查询单个表可能不能满足你的需求,(如下面的课堂练习),需要使用到(dept表和emp表)> 1. 多表查询 显示雇员名,雇员工资及所在部门的名字【笛卡尔集】> 2. 小技巧:多表查询的条件不能少于表的个数-1,否则会出现笛卡尔集> 3. 如何显示部门号为10的部门名、员工名和工资。> 4. 显示各个员工的姓名,工资,及其工资的级别## 1.规则> 在默认情况下:当两个表查询时,规则> 1. 从第一张表中,取出一行和第二张表

2022-08-23 16:11:59 395 6

原创 MySQL——日期函数,加密函数和流程控制函数

【代码】MySQL——日期函数和加密函数。> 1. CURRENT_DATE() 当前日期> 2. CURRENT_TIME() 当前时间> 3. CURRENT_TIMESTAMP() 当前时间戳> 4. DATE (datetime) 返回datetime的日期部分> 5. DATE_ADD (date2 , INTERVAL d_value d_type) 在date2中加上日期或时间> 6. DATE_SUB (date2 , INTERVAL d_value d_type) 在dat

2022-08-22 20:47:00 431

原创 【MySQL】select语句中字符串函数和数学函数介绍

> 1. CHARSET(str) 返回字串字符集> 2. CoNCAT (string2 [,...]) 连接字串> 3. INSTR (string ,substring ) 返回substring在:string中出现的位置,没有返回0> 4. UCASE (string2) 转换成大写> 5. LCASE(string2) 转换成小写> 6. LEFT (string2 ,length) 从string2中的左边起取length个字符> 7. LENGTH (string) string

2022-08-21 17:44:52 703

原创 【MySQL】select语句——group by子句和having子句的使用

> 使用group by 子句对列进行分组[先创建测试表] > SELECT columnl, column2. column3...> FROM table > group by column> 使用having 子句对分组后的结果进行过滤 > SELECT ' column1, column2. column3... > FROM table > group by column having ...having子句用于限制分组显示结果。-- 分析 [写sql语句的思路是化繁为简,各

2022-08-21 15:10:57 746

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关注的人

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