Arduino ESP8266/ESP32常见开发技巧,解决小白疑惑点

1.前言

本篇主要针对初学者容易遇到的常见开发疑惑点进行思路讲解。主要分为:

  • 纯原生开发,不涉及网络
  • 网络开发
  • 综合性开发,结合纯原生开发和网络开发

2. 纯原生开发

纯原生开发就是不需要用到任何网络知识,就当做一块普通的Arduino板子来开发,开发步骤类似于UNO或者Mega之类的。

这一块的开发内容会涉及到的知识点:

  • 各类传感器(经典如温湿度DHTxx、人体红外传感器、重力传感器等)
  • 常用电子元器件(经典如按键、LED灯等)
  • 复杂电子模块(经典如继电器模块OLED液晶屏、LED点阵屏、w2812 RGB模组等)

此类知识点,基本上网上都可以找到大量的学习资源。

3.网络开发

从网络访问范围来看,网络开发又可以分为:

  • 局域网开发(某个特定范围内的万物互连,外界无法访问,当然我们可以搭建局域网内的服务)
  • 广域网开发(可以访问外界资源,基本上理解为云通信,云包括阿里云、OneNet、百度天工、腾讯华为云等)

从ESP的工作模式来看,又可以分为;

从CS(Client、Server)模型来看,又可以分为:

不管是从网络访问范围还是ESP工作模式来区分,它们都离不开网络编程,也就离不开TCP/IP协议(记住,TCP/IP协议并不是指TCP和IP两个协议,而是统称网络编程中的各种协议)。
TCP IP学习笔记① 互联网通信过程

网络开发主要会涉及到TCP/IP协议,我们至少要有概念图:
在这里插入图片描述
在这里插入图片描述

从上到下,主要理解 TCP/IP四层协议。在Arduino ESP8266/ESP32开发过程中,经常涉及到:

  • 应用层协议, MQTT、HTTP、WebSocket、CoAP、DNS
  • 传输层协议, TCP、UDP
  • 网际层协议, IP
  • 网络访问层,主要理解 以太网(有线)802.11(无线)

整体访问图如下:

image

那么请初学者先记住重点,基本上思路都是:

  • 发送方(简单理解为Client
    数据包装:应用层->传输层->网络层->链路层

  • 处理方(简单理解为Server
    数据解包:链路层->网络层->传输层->应用层

记住,每一层都不可缺少

但是后面为了数据安全,在应用层和传输层之间出了0.5层,叫做SSL层
ESP8266开发之旅 进阶篇⑪ 深入了解 Esp8266 Https访问
如果看到了MQTTS或者HTTPS等,就意味着它们经过了SSL。

我们可以得出常用的协议流转:

看到这里,以后就不要再说MQTT和TCP是同一层了。

4.图解常用开发模型

4.1 局域网开发

4.1.1 AP模式 + WebSocket

在这里插入图片描述

4.1.2 STA模式 + WebSocket

在这里插入图片描述

4.1.3 STA模式 + WebServer

在这里插入图片描述

4.2 云开发

4.2.1 MQTT

在这里插入图片描述

4.2.2 HTTP

在这里插入图片描述

当然,开发模型不局限于上面这几种,我们可以综合特点来互相结合使用。

比如,Websocket + Mqtt:
ESP8266开发之旅 阿里云物联网平台篇⑥ LED智能灯控制系统 全面讲解,上手一个小项目(MQTT客户端直连 + Web配网 + WebSocket局域网通信)

4.3 配网

在开发中我们遇到最多的需求就是配网,根据各自的情况去选择配网模式。
比如,如果需要有配套app的项目开发,可以考虑 SmartConfig
ESP8266开发之旅 网络篇⑧ SmartConfig——一键配网

如果不需要配套app,可以考虑Web Ap配网
ESP8266开发之旅 网络篇⑭ web配网

5.总结

基本上以上就是我的开发经验,希望对初学者有帮助。

发布了138 篇原创文章 · 获赞 851 · 访问量 34万+

猜你喜欢

转载自blog.csdn.net/dpjcn1990/article/details/105063858