ESP32开发

目录

1、简介

1.1 种类

1.2 特点

1.3 管脚功能

1.4 接线方式

1.5 工作模式

2、基础AT指令介绍

2.1 AT指令类型

2.2 基础指令及其描述

2.3 使用AT指令需要注意的事

3、AT指令分类和提示信息

3.1 选择是否保存到Flash的区别

3.2 提示信息

3.3 其他会保存到Flash的AT指令

4、基础WI-FI功能指令

5、TCP&IP功能AT指令概述

6、AT指令应用示例_单连接 TCP Client

6.1 配置 WiFi 模式

6.2 连接路由器 

6.3 查询 ESP8266 设备的 IP 地址

6.4 建立TCP服务器

6.5 ESP8266设备作为TCP client连接到上述服务器

6.6 ESP8266 设备向服务器发送数据

6.7 ESP8266设备接收数据提示信息

7、AT指令应用示例_UDP传输

7.1 固定远端的 UDP 通信

7.1.1 配置 WiFi 模式

7.1.2 连接路由器

7.1.3 查询 ESP8266 设备的 IP 地址

7.1.4 建立UDP服务器

7.1.5 使能多连接

7.1.6 创建UDP传输

7.1.7 发送数据

7.1.8 断开UDP传输

7.2 远端可变的 UDP 通信

7.2.1 配置 WiFi 模式

7.2.2 连接路由器

7.2.3 查询 ESP8266 设备的 IP 地址

 7.2.4 建立UDP服务器

7.2.5 使能单连接

7.2.5 创建UDP传输

7.2.6 发送数据

7.2.7 发送数据到其他指定远端

7.2.8 断开UDP传输

8、AT指令应用示例_透传

8.1 TCP Client单连接透传

8.1.1 配置WIFI模式

8.1.2 连接路由器

8.1.3 查询 ESP8266 设备的 IP 地址

8.1.4 建立TCP服务器

8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器

8.1.6 使能透传模式

8.1.7 ESP8266设备向服务器发送数据

8.1.8 退出发送数据

8.1.9 退出透传模式

8.1.10 断开TCP连接

8.2 UDP透传

8.2.1 配置 WiFi 模式

8.2.2 连接路由器

8.2.3 查询 ESP8266 设备的 IP 地址

8.2.4 建立UDP服务器

8.2.5 ESP8266与PC对应端⼝建⽴固定对端的UDP传输

 8.2.6 使能透传模式

8.1.7 ESP8266设备向服务器发送数据

8.1.8 退出发送数据

8.1.9 退出透传模式

8.1.10 断开UDP连接

9、多连接TCP Server

9.1 配置WiFi模式

9.2 使能多连接

9.3 建⽴ TCP server

9.4 连接路由器

9.5 在PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266的TCP server(上面设置9090)

9.6 发送数据

9.7 断开TCP连接


1、简介

1.1 种类

WIFI模块在PC上做为客户端、服务器,在STM32上做服务器的通讯。在物联网应用开发有重要作用,种类居多,如下图

红色方框的esp8266-01s型号的无限wifi模块就是本章学习的主要对象。

1.2 特点

  • 小巧的尺寸:ESP-01S模块具有紧凑的设计,适用于空间有限的应用。
  • WiFi功能:它支持802.11b/g/n标准,允许设备连接到无线网络。
  • 高度集成:ESP-01S集成了WiFi功能和处理器,减少了外部组件的需求。
  • AT指令支持:通过串口通信,可以使用AT指令进行配置和控制。
  • 低功耗:ESP-01S模块具有低功耗特性,适用于长时间运行的应用。
  • 容易使用:ESP-01S模块易于配置和应用,有许多开发资源和示例代码可用。

1.3 管脚功能

Pin脚编号Pin脚名称备注
1GND接地
2IO2GPIO2/UART1 TXD
3IO0GPI00:下载模式:外部拉低:运行模式:悬空或者外部拉高
4RXDUARTO RXD/GPIO3
5TXDUARTO TXD/GPI01
6EN芯片使能端,高电平有效
7RST复位
8VCC3.3V供电(VDD);外部供电电源输出电流建议在500mA 以上

1.4 接线方式

1.5 工作模式

ESP8266-01s模块共支持3种工作模式:STA、AP、STA+AP

1、STA模式

         在此模式下,模块可连接其他设备提供的无线网络,例如通过 WIFI 连接至路由器,从而可以访问互联网,进而实现手机或电脑通过互联网实现对设备的远程控制。   

        简单来说,此模式下,该模块相当于一个用户,需要链接外部的WIFI(或自己的热点),通过链接的WIFI进行与其他设备的通信;

2、AP 

        AP 模式为默认的模式,在此模式下,模块将作为热点供其他设备连接, 从而让手机或电脑直接与模块进行通讯,实现局域网的无线控制。

        简单来说,此模式下,该模块相当于提供一个热点,创建一个小范围的局域网,凡是连接上的设备就能与其进行通信;

3、STA+AP

        该模式为 STA 模式与 AP 模式共存的一种模式,模块既能连接至其他 设备提供的无线网络,又能作为热点,供其他设备连接,以实现广域网与局域网的无缝切换, 方便操作使用。

2、基础AT指令介绍

2.1 AT指令类型

注意:
不是每条 AT 指令都具备上述 4 种类型的命令。
[ ] 括号内为缺省值,不必填写或者可能不显示。
使⽤双引号表示字符串数据 ”string” ,例如: AT+CWSAP="ESP756290","21030826",1,4
默认波特率为 115200
AT 指令必须⼤写,并且以回⻋换⾏符结尾( CR LF )。

2.2 基础指令及其描述

使用示例:

AT指令启动调试

AT+RST重启调试

AT+RESTORE恢复出厂设置调试

2.3 使用AT指令需要注意的事

输入AT指令时,所有字母需要为大写形式,否则会报错(返回error),但有个例外:加号前面的可以是小写,但加号后面的必须为大写,这可能是esp8266模块中程序自己做了处理,即AT无论是大小写都能识别出来。

在等待发送AT指令时,需要回车加换行,即\r\n,否则在串口部分他会以不换行的格式不断发送你输入的AT指令,但这在esp8266模块看来,它未识别到\r\n,所以不会对输入的AT指令进行处理,只有当识别到\r\n时,才会进行处理,所以需要勾选上串口助手的发送新行选项。

3、AT指令分类和提示信息

3.1 选择是否保存到Flash的区别

AT指令主要分类在简介中有写到,但有些指令有无Flash区别很大,在这里做一下解析。

如上图所示,设置当前wifi模式可以选择是否存到Flash,则有不同的AT指令,针对上图做出调试:

1.先进行测试

2.再进行查询

3.最后进行修改并查询

 

可见此时wifi模式成功修改成Station模式,但此时调用复位AT指令,再次进行查询,其模式还会是修改过后的模式么,如下:

可见修改后的模式并没有存储到Flash中,复位后会发生改变,若想要保存到Flash中,调用上面第二个图片中的AT指令即可,这里就不作演示。

3.2 提示信息

3.3 其他会保存到Flash的AT指令

4、基础WI-FI功能指令

5、TCP&IP功能AT指令概述

红框的是经常需要用到的,详细概述如下:

6、AT指令应用示例_单连接 TCP Client

6.1 配置 WiFi 模式

AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK

6.2 连接路由器 

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

6.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK

 可见成功查询到esp8266模块连接wifi的IP

6.4 建立TCP服务器

PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个TCP服务器。
打开网络调试助手,修改端口号为TCPServer,当本地IP出现时,修改端口号为8080,点击侦听即可。

 

此时显示侦听中,可见等待设备连接到该TCP服务器。同时创建的服务器IP为192.168.1.103,端口为8080.

6.5 ESP8266设备作为TCP client连接到上述服务器

AT+CIPSTART="TCP","192.168.1.103 ",8080 //protocol, server IP and port
响应 :
OK

实现本地发送数据至远端。

6.6 ESP8266 设备向服务器发送数据

AT+CIPSEND=4 // set date length which will be sent, such as 4 bytes
>test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK

可见实现了远端像本地发送数据。

注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

 可见超过AT指令设置的字节时,本地只能接收到在设置字节范围内的数据,其余数据发送失败。

6.7 ESP8266设备接收数据提示信息

提示信息如下:

+IPD,n:xxxxxxxxxx // received n bytes, data=xxxxxxxxxxx

上图IPD比输入数据长度多2是因为网络调试助手中勾选了换行,所以每次发送时串口助手会换行,同时\r\n算两个字符长度,下图不添加换行后,IPD与输入字符长度一样。

7、AT指令应用示例_UDP传输

UDP传输分为固定远端和远端可变,同时他们的前三步与上部分单连接TCP Client相同,所以这里将步骤列出来,不做详细操作演示。

7.1 固定远端的 UDP 通信

7.1.1 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK
7.1.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK
7.1.3 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
7.1.4 建立UDP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。
7.1.5 使能多连接
AT+CIPMUX=1
响应 :
OK

 

7.1.6 创建UDP传输
例如,分配连接号为 4 ,指令如下:
AT+CIPSTART=4,"UDP","192.168.1.103",8080,9090,0
响应 :
4,CONNNECT
OK
说明:
示例指令中的参数说明如下:
• "192.168.1.103", 8080 UDP 传输的远端 IP 和端⼝,即前⽂步骤 4 PC 建⽴的 UDP 端⼝;(这里的远端IP是相对于esp8266的远端,即网络调试助手中的本地IP
•9090   ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
0 表示当前 UDP 传输建⽴后, UDP 远端不会被其他设备更改;即使有其他设备通过 UDP 协议发数据到
ESP8266 UDP 端⼝ 1112 ESP8266 的第 4 UDP 传输的远端也不会被替换,使⽤指令
“AT+CIPSEND=4, X” 发送数据,仍然是当前固定的 PC 端收到。

可见创建完UDP传输后,网络调试助手成功连接上远端esp8266模块。

7.1.7 发送数据
AT+CIPSEND=4,7 // Send 7 bytes to transmission NO.4
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK

注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

7.1.8 断开UDP传输
AT+CIPCLOSE=4(4为一开始分配的连接号)
响应 :
4,CLOSED
OK

可见断开连接后,远端发送数据到esp8266时,并不能接收数据。 

7.2 远端可变的 UDP 通信

7.2.1 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK
7.2.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK
7.2.3 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
 7.2.4 建立UDP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。
7.2.5 使能单连接
AT+CIPMUX=0
响应 :
OK

7.2.5 创建UDP传输
当使⽤ AT+CIPSTART 指令创建 UDP 通信,将最后⼀个参数设置为 2 时, UDP 通信的远端可改变。
AT+CIPSTART="UDP","192.168.1.103",8080,9090,2
响应 :
4,CONNNECT
OK
示例指令中的参数说明如下:
• "192.168.1.103"", 8080 UDP 传输的远端 IP 和端⼝,即前⽂ PC 建⽴的 UDP 端⼝;
• 9090   ESP8266 本地的 UDP 端⼝,⽤户可⾃⾏设置,如不设置则为随机值;
2 表示当前 UDP 传输建⽴后, UDP 传输远端仍然会更改; UDP 传输远端会⾃动更改为最近⼀个与 ESP8266 UDP 通信的远端。

 

 注意:这里设置的是单连接模式,所以在使用此通信方式时,需调用AT+CIPMUX?指令查询是否为0(单连接模式),同时单连接不需要加网络连接ID,与前面的固定远端UDP传输有所不同。

7.2.6 发送数据
AT+CIPSEND=7 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。

这里为单连接模式,所以AT指令后面直接加上数据长度即可。

7.2.7 发送数据到其他指定远端
例如,发数据到192.168.1.103, 端⼝ 8081
AT+CIPSEND=7,"192.168.1.103",8081 // Send 7 bytes
>UDPtest
// enter the data, no CR
响应 :
Recv 7 bytes
SEND OK

 最左边的新开的其他远端UDP,通过修改端口号为8081,实现串口助手中发送指定长度的数据到端口号8081的远端。

7.2.8 断开UDP传输
AT+CIPCLOSE
响应 :
CLOSED
OK

 上面设置的是单连接模式,所以这里直接执行下图红框内AT指令即可。

8、AT指令应用示例_透传

8.1 TCP Client单连接透传

8.1.1 配置WIFI模式
AT+CWMODE=3 // softAP+station mode
响应 :
OK
8.1.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router
响应 :
OK
8.1.3 查询 ESP8266 设备的 IP 地址

AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
8.1.4 建立TCP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个TCP服务器。 打开网络调试助手,修改端口号为TCPServer,当本地IP出现时,修改端口号为8080,点击侦听即可。
8.1.5 ESP8266 设备作为 TCP client 连接到上述服务器
AT+CIPSTART="TCP","192.168.3.116",8080 //protocol, server IP and port
响应 :
OK

8.1.6 使能透传模式
AT+CIPMODE=1
响应 :
OK

8.1.7 ESP8266设备向服务器发送数据
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。
进⼊透传模式发送数据,每包最⼤ 2048 节,或者每包数据以 20 ms 间隔区分。

8.1.8 退出发送数据

在透传发送数据过程中,若识别到单独的⼀包数据 “+++” ,则退出透传发送
- 如果使⽤键盘打字输⼊ “+++” ,可能耗时太⻓,不被认为是连续的三个 “+” ,建议使
⽤串⼝⼯具⼀次性发送 “+++” ,并请注意不要携带空格或换⾏符等不可⻅字符。
- 之后,请⾄少间隔 1 秒,再发下⼀条 AT 指令。
注意:
“+++“ 退出透传发送数据,回到正常 AT 指令模式。此时, TCP 连接仍然是保持的,可以再发 AT+CIPSEND
指令,重新开始透传。

注意:在输入"+++"数据时,需要取消换行,否则串口助手识别到多出来的\r\n,无论输入什么都会继续发送数据,如下:

解决方法是取消换行,单独发送"+++",过后要发送新指令,重新勾选上换行即可,如下:

8.1.9 退出透传模式
AT+CIPMODE=0
响应 :
OK

可见退出透传模式后,无法再向服务器发送数据,AT指令发送失败,可见该AT指令只在透传模式下生效。

8.1.10 断开TCP连接

AT+CIPCLOSE
响应 :
CLOSED
OK

8.2 UDP透传

8.2.1 配置 WiFi 模式
AT+CWMODE=3 // softAP+station mode
注:此AT指令通过试验会保存到Flash
响应 :
OK
8.2.2 连接路由器
AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK
8.2.3 查询 ESP8266 设备的 IP 地址
AT+CIFSR
响应 :
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"ee:fa:bc:96:20:8c"
+CIFSR:STAIP,"192.168.1.120"
+CIFSR:STAMAC,"ec:fa:bc:96:20:8c"
OK
8.2.4 建立UDP服务器
PC ESP8266 设备连接同⼀路由器,在 PC 端使⽤⽹络调试⼯具,建⽴⼀个UDP服务器。
打开网络调试助手,修改端口号为UDP,当本地IP出现时,修改端口号为8080,同时远程IP写入ESP8266模块的IP,修改端口号9090,点击侦听即可。
8.2.5 ESP8266PC对应端⼝建⽴固定对端的UDP传输

AT+CIPSTART="UDP","192.168.1.103",8080,9090,2

响应 :
OK

 8.2.6 使能透传模式
AT+CIPMODE=1
响应 :
OK

8.1.7 ESP8266设备向服务器发送数据
AT+CIPSEND
> //From now on, data received from UART will be transmitted to server automatically.
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。
进⼊透传模式发送数据,每包最⼤ 2048 节,或者每包数据以 20 ms 间隔区分。

8.1.8 退出发送数据

在透传发送数据过程中,若识别到单独的⼀包数据 “+++” ,则退出透传发送
- 如果使⽤键盘打字输⼊ “+++” ,可能耗时太⻓,不被认为是连续的三个 “+” ,建议使
⽤串⼝⼯具⼀次性发送 “+++” ,并请注意不要携带空格或换⾏符等不可⻅字符。
- 之后,请⾄少间隔 1 秒,再发下⼀条 AT 指令。
注意:
“+++“ 退出透传发送数据,回到正常 AT 指令模式。此时, UDP 连接仍然是保持的,可以再发 AT+CIPSEND
指令,重新开始透传。

注意:在输入"+++"数据时,需要取消换行,否则串口助手识别到多出来的\r\n,无论输入什么都会继续发送数据,如下:

解决方法是取消换行,单独发送"+++",过后要发送新指令,重新勾选上换行即可,如下:

8.1.9 退出透传模式
AT+CIPMODE=0
响应 :
OK

可见退出透传模式后,无法再向服务器发送数据,AT指令发送失败,可见该AT指令只在透传模式下生效。

8.1.10 断开UDP连接
AT+CIPCLOSE
响应 :
CLOSED
OK

9、多连接TCP Server

ESP8266 AT 仅⽀持建⽴⼀个 TCP 服务器,且必须使能多连接,即允许连接多个TCP client,虽然这里是TCP Server,但是是多个TCP client,所以网络调试助手端口号选择T CP client。

9.1 配置WiFi模式

AT+CWMODE=3 // softAP+station mode
响应 :
OK

9.2 使能多连接

AT+CIPMUX=1
响应 :
OK

9.3 建⽴ TCP server

AT+CIPSERVER=1 // default port = 333
响应 :
OK

9090端口号是esp8266模块通过我们设定的端口号。

9.4 连接路由器

AT+CWJAP="SSID","password" // SSID and password of router SSID是路由器名称 password是路由器密码
响应 :
OK

9.5 PC端使⽤⽹络调试⼯具,建⽴⼀个TCP client,连接ESP8266TCP server(上面设置9090)

注意:
ESP8266 作为 TCP server 有超时机制,如果连接建⽴后,⼀段时间内⽆数据来往, ESP8266 TCP server 会 将 TCP client 踢掉。因此,请在 PC TCP client 连上 ESP8266 TCP server 后建⽴⼀个 2s 的循环数据发送, ⽤于保持连接

若超过2s为发送数据,则会自动断开。 

9.6 发送数据

// ID number of connection is defaulted to be 0.
AT+CIPSEND=0, 4 // send 4 bytes to connection NO.0
>test // enter the data, no CR
响应 :
Recv 4 bytes
SEND OK
注意:
发送数据时,如果输⼊的字节数超过了设置⻓度( n ):
- 系统将提示 busy ,并发送数据的前 n 个字节,发送完成后响应 SEND OK
- 超出⻓度的部分数据被认为是⽆效数据,不被接受。
进⼊透传模式发送数据,每包最⼤ 2048 节,或者每包数据以 20 ms 间隔区分。

这里AT指令中网络连接号为0是默认为0,若有多个TCP Client连接则会增加序号,例如多增加一个TCP Clinet第二个序号为1,如下:

序号0为8080端口号,序号1为8081端口号。

9.7 断开TCP连接

AT+CIPCLOSE=5(关闭所有序号的TCP连接)
响应 :
CLOSED
OK

可以输入对应序号关闭TCP连接,如下:

也可以输入5关闭所有TCP连接,如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2980846.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们,大家好!我们的ODC(OceanBase Developer Center )再次迎来了重要的升级V 4.2.4,这次我们诚意满满,从五个方面为大家精心打造了一个更加易用、贴心,且功能更强的新版本,相…

宁盾LDAP统一用户认证与单点登录:构建高效安全的企业身份认证

在信息化时代,企业面临着众多的应用系统和数据资源,如何有效地管理和保护这些资源,确保信息安全和高效利用,成为了企业信息化建设的核心问题。LDAP统一用户认证和单点登录(SSO)作为一种高效、安全的身份验证…

每天五分钟计算机视觉:基于YOLO算法精确分类定位图片中的对象

滑动窗口的卷积的问题 滑动窗口的卷积实现效率很高,但是它依然不能够输出最精准的边界框,比如下面所示: 我们可以看到蓝色框不论在什么位置都不能很好的确定车的位置,有一个算法是YOLO 算法它能够帮助我们解决这个问题。 YOLO 算法 比如我们的输入图像是100*100,我们会…

StarRocks最佳实践经验

目录 一、部署 1.1 容量规划 1.2 基础环境配置 1.3 机器配置 1.3.1 FE节点 1.3.2 BE节点 1.4 部署方案 二、建模 2.1 建表规范 2.2 模型选择 2.3 排序列和前缀索引选择 2.4 分区选择 2.5 分桶选择 2.6 字段类型 2.7 索引选择 2.7.1 Bitmap索引 2.7.2 Bloom fi…

李沐60_机器翻译数据集——自学笔记

!pip install d2limport os import torch from d2l import torch as d2l下载和预处理数据集 在这个将英语翻译成法语的机器翻译问题中, 英语是源语言(source language), 法语是目标语言(target language)。…

图像处理之模板匹配(C++)

图像处理之模板匹配(C) 文章目录 图像处理之模板匹配(C)前言一、基于灰度的模板匹配1.原理2.代码实现3.结果展示 总结 前言 模板匹配的算法包括基于灰度的匹配、基于特征的匹配、基于组件的匹配、基于相关性的匹配以及局部变形匹…

如何在TestNG中忽略测试用例

在这篇文章中,我们将讨论如何在TestNG中忽略测试用例。TestNG帮助我们忽略使用Test注释的情况,我们可以在不同的级别上忽略这些情况。 首先,只忽略一个测试方法或测试用例。第二,忽略一个类及其子类中的所有情况。第三个是&#…

【个人博客搭建】(11)swagger添加jwt信息

这个主要是为了方便使用swagger时,能更好的带入我们的token。 ps:如果使用其他第三方api工具(apipost、postman等)则不需要。 (当然,不用不能没有,是吧) 1、在AddSwaggerGen内添加…

小扎宣布开放 Meta Horizo​​n OS

日前,Meta以“混合现实的新时代”为题的博文宣布向第三方制造商开放Meta Horizon OS,包括华硕、联想和微软Xbox等等: Meta正在朝着为元宇宙建立一个更开放的计算平台的愿景迈出下一步。Meta正在向第三方硬件制造商开放赋能Meta Quest设备的操…

元宇宙红色教育3d沉浸式体验是党与公众沟通的桥梁

政务大厅是服务群众的第一窗口,是展现城市文明形象的重要载体,为了营造更科技便民、文明高效的窗口形象,政府单位引进VR虚拟现实和元宇宙技术,进行元宇宙政务大厅平台搭建,让公民与政府的互动方式得到革新,…

大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程。谷歌Gemma AI大模型是由Google AI团队开发并开源。Gemma模型采用Transformer编码器-解码器架构,并加入了一些改进,例如使用稀疏注意力机制来提高推…

Redis篇:缓存击穿及解决方案

1.何为缓存击穿 缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了(有可能是正好过期了),无数的请求访问会在瞬间给数据库带来巨大的冲击。 常见的解决方案有两种: 互斥锁 逻…

实现Node.js安装与配置。

一 、Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高性能、可扩展的网络应用程序。它发布于2009年5月,由Ryan Dahl开发,允许使用JavaScript进行服务器端编程,使开发者能够在前后端都使用同一种编程…

燃料电池工作原理详解

文章目录 前言 组成结构 工作过程 极化 催化剂中毒 参考资料 前言 见《氢燃料电池技术综述》 组成结构 燃料电池系统通常由多个单体电池串联起来,示例如下: 膜电极组件(membrane electrode assembly; MEA):是一张…

GPT与GAN结合生成图像——VQGAN原理解析

1、前言 这篇文章,我们讲VQ_GAN,这是一个将特征向量离散化的模型,其效果相当不错,搭配Transformer(GPT)或者CLIP使用,达到的效果在当时可谓是令人拍案叫绝! 原论文:Tam…

绝地求生:16款战术手套,你最钟爱哪一款?

大家好,我是闲游盒! 喜迎PUBG七周年生日同时游戏里又迎来了一款新的战术手套,那么就让我们来回顾一下目前出游戏中的16款战术手套吧,看看你最中意的是哪一款? 1、MAZARIN1K 战术手套 2、SPAJKK 战术手套 3、SWAGGER 战…

爬虫中怎么判断一个网页是否包含ajax请求

1、前言 在用爬虫抓取数据的时候,如果一个网页包含ajax请求,由于数据时动态加载的,直接根据网址是不能获取到想要的数据。因此,在爬虫需要首先判断一个网页是否包含ajax请求数据。 2、ajax请求 2.1 什么是ajax请求 AJAX Asynch…

消消乐算法总结

前言 最近在工作中遇到一个问题,做一个消消乐的demo项目,连续相同数目超过四个后就要消除。我在网上看了很多解决方案,有十字形,横向,纵向,梯形搜索。越看越迷糊。这不是用一个BFS就能解决的问题吗&#x…

使用2023版BurpSuite半自动化Autorize进行垂直越权测试【图文教程】

本人在使用时BurpSuite v2023.12时,查阅网上资料,发现网上大多是旧版,而旧版跟新版在界面上有些许调整。故记录BurpSuite v2023.12使用教程,用于后续本人回顾。 Autorize工具安装 Extensions→BApp Store→Autorize→Download J…

【Node.js】03 —— HTTP 模块探索

🌟Node.js之HTTP模块探索✨ 🌟引言 在网络编程中,HTTP协议无处不在。在Node.js的世界里,我们可以通过内置的http模块来轻松创建HTTP服务器和客户端,实现数据的接收和发送。今天就让我们一起打开这扇门,探索…