【通信模块】简单玩转WiFi模块(ESP32、ESP8266)

news2025/4/20 12:12:45

笔者学习太极创客的学习笔记,链接如下:www.taichimaker.com

前期准备
电脑端口

在这里插入图片描述

固件烧录

在这里插入图片描述

WIFI到网页
对应七层网络协议

在这里插入图片描述

WIFI工作模式(链路层)

接入点模式、无线中断模式、混合模式

在这里插入图片描述

IP协议(网络层)

在这里插入图片描述

子网掩码:限制IP属于子网地址和设置设备本身地址

在这里插入图片描述

TCP/UDP协议(传输层)
TCP协议
  • TCP协议可以保证数据传输的准确性,但是传输速度比UDP协议而言要慢
  • 电子邮件及文件上传

在这里插入图片描述

UDP协议
  • UDP协议并不能保证所有数据都被接收端所接受(实际也有99%👆),但速度快;

  • 通常用于网络游戏以及语音聊天或视频聊天应用,游戏;

在这里插入图片描述

HTTP协议(应用层)
  • HTTP协议由请求响应构成; HTTP的工作模式像一问一答
  • HTTP请求 = 请求头(Request Header) + 请求体(Request Body)
  • HTTP响应 = 响应头(Response Header)+ 响应体(Response Body)
HTTP请求

GET获取 POST发送 Head

在这里插入图片描述

浏览器输入www.taichi-maker.com这一网址并按下回车,这时候浏览器会把这一操作转换成一个HTTP请求;

在这里插入图片描述
在这里插入图片描述

HTTP响应

HTTP响应 = 响应头(Response Header)+ 响应体(Response Body)

响应头
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

以下是常见的服务器状态码:
100~199:成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200~299:成功接收请求并已完成整个处理过程。常用200
300~399:完成请求,客户需进一步细化请求。
400~499:客户端的请求有错误,常用404和403(403的含义是权限不够,服务器拒绝访问。)
500~599:服务器端出现错误,常用500

响应体:

在这里插入图片描述

DNS ( Domain Name System域名系统)
  • 所有设备、网站服务器都具有独立的IP地址;

  • 网站服务器的IP地址很难记忆;

  • 把DNS看作是一个巨型电话本;

在之前的教程中,我曾经给大家讲过网络中的所有设备都具有独立的IP地址。
这一点对于网站服务器来说也不例外.当我们使用浏览器访问某一个网站时,实际上是通过浏览器向网站服务器发送Http请求。
然而网站服务器的IP地址很难记忆,比如太极创客网站的域名由两个单词组成、太极是太极、Maker是创客。
这很好记,但是要想记住太极创客服务器的IP就没那么容易了。因为那是4个毫无规律的数字.

为了解决IP地址问题,DNS被派上了用场:

  • 我们可以把dns看作是一个巨型电话本。

  • 电话本中的联系人一栏就是网站的域名,而电话本中的电话号码一栏则是这些网站的IP地址。

  • 有了dns我们就可以使用简单易记的域名来访问网站了。

还是用太极创客网站来举例吧,每当我们在浏览器中输入域名www.taichimaker.com并按下回车后,
这时浏览器首先会向DNS服务器发送请求,请求的内容大致如下:
“亲爱的DNS服务器,我那个明明可以靠脸吃饭却偏偏要学物联网的主人想访问一个域名是www.taichi-maker.com的网站。
麻烦您把这个域名的网站服务器IP地址告诉我好吗?”

DNS服务器在接收到这—请求后,会做出以下应答
:“亲爱的浏览器,您要的网站服务器ip地址是12.34.56.78。
”浏览器在接收到这一—IP地址后,就开始向这个IP地址所对应的网站服务器正式发出HTTPGET请求了。

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

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

相关文章

【python】Python考研分数 线性回归模型预测(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

前端缓存问题(浏览器缓存和http缓存)- 解决办法

问题描述:前端代码更新,但因浏览器缓存问题,导致页面源代码并未更新 查看页面源代码的方法:鼠标右键,点击查看页面源代码 如图: 解决方法: 注:每执行一步,就检查一下浏览…

c生万物系列(加减乘除模篇)

为了提高c语言的运行效率,我们需要采用更高效的运算,那么切入点就是随处可见的基本运算符合,从底层架构考虑,加减乘除的效率比位运算低很多,为了能够更好迎合CPU的二进制,有必要取代基本的加减乘除以及求余…

Java----队列(Queue)

目录 1.队列(Queue) 1.1概念 1.2队列的使用 1.3队列的模拟实现 1.4循环队列 1.4.1循环队列下标偏移 1.4.2如何区分队列是空还是满 1.5双端队列 (Deque) 1.队列(Queue) 1.1概念 队列:只允许在一端进行插入数据…

GraphRAG:全局搜索方法在RAG系统中的应用

GraphRAG:全局搜索方法在RAG系统中的应用 传统RAG系统的局限性全局搜索方法的优势全局搜索的工作流程关键配置参数实现考虑结论 在检索增强生成(Retrieval-Augmented Generation,RAG)系统中,传统的基线方法在处理需要跨…

怀旧必玩!重返童年,扫雷游戏再度登场!

Python提供了一个标准的GUI(图形用户界面)工具包:Tkinter。它可以用来创建各种窗口、按钮、标签、文本框等图形界面组件。 而且Tkinter 是 Python 自带的库,无需额外安装。 Now,让我们一起来回味一下扫雷小游戏吧 扫…

数据结构与算法-13高级数据结构_树论(BtreeB+Tree)

Btree&BTree 1 btree-定义 B-树是一种自平衡的树形数据结构,它能够保持数据的有序性,并允许搜索、顺序访问、插入和删除操作都在对数时间内完成。与二叉树不同,B-树的每个节点可以拥有多于两个的子节点,这取决于树的阶&#…

* 快速排序的深入优化探讨

在算法设计领域,快速排序因其卓越的平均性能与广泛的应用场景而备受推崇。自1960年Tony Hoare提出以来,它已成为许多编程语言标准库中的核心排序方法。然而,随着数据规模的不断扩大和计算需求的日益复杂化,对快速排序进行更深入的…

docker环境下的verdaccio设置权限并配置域名.md

权限配置 一个管理员叫admin,可以读也可以发布一个普通用户叫qiuye,只可以读,不可以发布添加账号就自行创建添加即可,只需要更改config文件的配置项即可 packages:*/*: access: admin qiuyepublish: admin unpublish: admin **:access: admin qiuyepublish: admin unpublish…

数据结构系列-插入排序和希尔排序

🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 排序的概念 常见的排序算法: 插入排序 直接插入排序是一种简单的插入排序法,其基本思想是: 把待排序的记录按其关键码值的大小逐个插入到…

如何合规与安全地利用专业爬虫工具,构建企业数据竞争优势

摘要: 本文深入探讨了在当今大数据时代,企业如何通过合规且安全的方式运用专业爬虫工具,有效收集并分析海量信息,进而转化为企业独有的数据优势。我们不仅会介绍最佳实践,还会讨论关键技术和策略,帮助企业…

virtuoso tran仿真中如何画出temperature的瞬态曲线

virtuoso tran仿真中如何画出温度的瞬态曲线? 在tran仿真中如果加入了瞬态热效应,设置Dynamic parameter,即时间随温度变化,如何plot temp vs. time曲线? 1.电路中加一根线和变量名相同 2.ADE L/XL Test Editor->Ou…

如何在安卓设备上运行Linux(使用termux+图形界面)加上换源等优化

我学生嘛,喜欢讲故事,你看看我大部分文章开头,都会有"事情的起因"一类话 当然这次也不例外哦 我最新获得了一个新平板,华为的matepad air,很喜欢。想捣鼓,不太懂,但好像鸿蒙不能直接…

MyBatis中的赋值语句:#{}和${}的区别差异(常见面试题)

我们开始先总结他们的差异,后面再使用代码展示差异 1.0.#{}和${}的差异 (1)${}可能存在sql注入的安全问题 (2)${}是即时sql(参数直接拼接),不能进行缓存;#{}是预编译sq…

基于单文档的MFC图像增强

目录 function.h ColorEnhanceDib.h ColorEnhanceDib.cpp Dib.h Dib.cpp FrequencyFilterDib.h FrequencyFilterDib.cpp GrayTransformDib.h GrayTransformDib.cpp HistogramDib.h HistogramDib.cpp SharpenProcessDib.h SharpenProcessDib.cpp SmoothProcessDib.h Sm…

【Spring Boot】自动配置源码解析

目录 Spring-Boot-Starter一、准备配置类和 Bean 对象二、自动配置条件依赖三、Bean 的参数获取3.1 EnableConfigurationProperties 注解3.2 ConfigurationProperties 注解 四. Bean 的发现4.1 自己项目的 Bean 扫描4.2 jar 包的 Bean 扫描 五. Bean 的加载 自动配置总结 Sprin…

Linux系统编程——生产者消费者模型

目录 一,模型介绍 1.1 预备知识(超市买东西的例子) 1.2 模型介绍 1.3 CP模型特点 二,基于阻塞队列的CP模型 2.1 介绍 2.2 阻塞队列的实现 2.3 主函数实现 2.4 效果展示 三,POSIX信号量 3.1 信号量原理 3…

Date已不再推荐?为什么我们需要新的 Java 日期时间 API?(LocalDate、LocalDateTime、LocalTime 、Instant)

日期时间 API 是 Java 8 版本的最大功能之一。Java 从一开始就缺少一致的日期和时间方法,而 Java 8 日期时间 API 是对核心 Java API 的一个受欢迎的补充。 为什么我们需要新的 Java 日期时间 API? 在开始研究 Java 8 日期时间 API 之前,让我…

蛋仔派对S18赛季攻略

本人蛋仔名:Z周明昊帅哥(稍微自恋了一点)😎 没夺冠的心情,请看下图: 呜呜呜…… 蛋仔五小只人形: 观看视频 完结撒花^_^ BUY!!!

31-库文件的制作与使用——静态库文件与动态库文件

31-库文件的制作与使用——静态库文件与动态库文件 一、库文件介绍 库文件是在计算机编程中用来存放变量、函数和类的文件,提供给开发者开箱即用的资源。库文件分为静态库和动态库两种,二者在程序链接阶段的行为不同: 静态库:在…