• ESP8266 系列模组是深圳市安信可科技有限公司开发的一系列基于乐鑫 ESP8266 的超低功耗的 UART-WiFi模块的模组,可以方便地进行二次开发,接入云端服务,实现手机 3/4G 全球随时随地的控制,加速产品原型设计
  • ESP-01S有三种接入网络的方式,Station模式、SoftAP模式、Station+SoftAP模式。

其中:

Station模式的行为类似于手机连接WIFI,连接其它的AP热点(路由器)。 SoftAP模式的行为类似于手机创建无线热点或者路由器的无线功能,提供给其它无线设备进行连接

[

](https://blog.csdn.net/qimi923511491/article/details/106103420/)

  • ESP-01S有两种的通信方式,客户端形式,服务器端形式。
    其中:

    客户端形式,在确认对方IP地址的情况下,可以使用AT命令直接向对方发起TCP/UDP连接,并进行通信。 服务器端模式,不主动与其它无线设备进行连接,只监听设置好的端口,等待其它无线设备的连接,然后进行回复通信。

芯片介绍:8266片上集成wifi+MCU,使用的是一个M0的内核,而且成本很低,因为片上有wifi和MCU,所以作为网络终端非常的方便,当然,因为是wifi,所以低功耗方面就别想了,低功耗+联网,NB-IOT更加合适。

esp8266的固件有两种:
AT固件,芯片出厂的时候里边刷的就是AT固件,AT固件,用户主要通过串口使用AT指令跟8266交互,要控制8266。所以使用这种固件的时候还需要一个主机通过串口跟8266连接,这种使用方法,就单纯将8266当做一个网络传输芯片,串口转wifi,本文不讨论AT固件。
Node-mcu固件,重点来了,因为这个固件才能完全发挥8266的魅力,先说一下这个固件的魅力,官方介绍是,这套固件,可以让8266像Arduino一样操作硬件IO,而且让你能完全使用API接口进行开发,更要命的是,固件里边可操作的模块还很多,像gpio操作、json处理、file文件创建管理、网络连接等等。举个例子说明一个这个固件:这个固件就像是安卓手机的刷机包,刷机之后我们就可以通过图形界面进行各种操作,在安卓手机上运行各种应用程序,esp8266刷入nodemcu固件之后,也能在上边运行我们编写的应用程序。
https://nodemcu.readthedocs.io/en/release/en/modules/wifi/

固件的编译
可以看到nodemcu里边包含的模块很多,但是8266的资源是有限制的,如果固件里边全部包含了这些模块,就很占用空间,这样我们可以写代码的地方就少了,而且有些模块并不是我们需要的,所以我们要能选择自己需要的模块,然后编译成自己定制的固件,然后再烧到芯片里边。
这个nodemcu是开源的,下载源码,设置好交叉编译链,选择需要的模块,在linux下可以编译出自己的固件,但是这样太麻烦,需要linux环境。
https://nodemcu-build.com/

ESP8266在物联网有很广泛的应用,但是很多情况是MCU+ESP8266的逻辑,一是工程师把8266当成单纯的WIFI。二是工程师没有精力或能力在8266上开发,毕竟是要花费时间学习的。三是8266的I/O口不够用。
模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80MHz和 160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。
ESP8266 是高性能无线 SOC,以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能。


NodeMCU自带LUA的解释器,所以可以用LUA语言给其编写控制程序,LUA是一个轻量级的脚本语言,用C语言编写,编译后解释器大小仅仅100多K。LUA旨在针对内存有很大限制的嵌入式系统。NodeMCU还提供交互命令行环境,比Arduino的编程调试环境友好

NodeMCU

像 Arduino 一样操作硬件 IO 提供硬件的高级接口,可以将应用开发者从繁复的硬件配置、寄存器操作中解放出来。
用交互式 Lua 脚本,像 Arduino 一样编写硬件代码!
用 Nodejs 类似语法写网络应用 事件驱动型 API 极大的方便了用户进行网络应用开发,使用类似 Nodejs 的方式编写网络代码,并运行于 5mm*5mm 大小的 MCU 之上,加快物联网开发进度。

NodeMCU —> 节点微控制单元 ESP8266也只是一款芯片而已,ESP 12E是用ESP8266做的WiFi模块

什么叫固件?
就是ESP8266芯片内部预先写入的程序,可以简单记忆为:固定在芯片里的软件叫固件。
固件是基础程序,本事再大的芯片也需要固件的支持才能运行高级程序。 固件是硬件的命根子。
刷固件的软件这里取:
https://github.com/nodemcu/nodemcu-flasher

  • 如果采用SDK开发的话,直接可以用eclipse编译的Bin文件就行

  • 在NodeMCU中最简单的编程语言是LUA, 但如果用户更习惯Arduino的类似C的程序(其实是标准C/C++的一个子集),NodeMCU还支持用通过Arduino IDE,用C程序对其进行编译和上载程序

  • NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua 开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了可以运行在 esp8266 Wi-Fi SoC芯片之上的固件,以及基于ESP-12模组的硬件。

构建自己的固件库

ESPlorer-Integrated Development Environment (IDE) for ESP8266 developers

  • ESP8266开发IDE
  • luatool作者为任何ESP8266开发人员提供的基本多平台工具,包括用于NodeMCU和MicroPython的LUA。此外,还支持AT命令

乐鑫科技开源ESP8266 RTOS、ESP8266 Non-OS SDK 和 ESP-IDF

ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S 和 ESP32-C 系列 SoC。它基于 C/C++ 语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序。