前期教程

  • 【嵌入式模块】ESP8266完整教程

前言

  之前寒假期间趁着有时间学习了一下物联网的基础器件——ESP8266 WiFi模块,即上面的前期教程,没想到看得人不少,挺多人收藏了,可见物联网的火热~
  最近在做一个小物件,想要在里面添加WiFi模块,实现联网获取实时时间,这算是很普通的需求,而且网上相关的资料也是一大把。但是当我翻开自己写的博客时,突然发现写得有点不太详细(估计是当时正值假期尾声~),很多内容只是一个概述,而且感觉给出的资料有点乱,对于完全没有接触过的人来说看起来还是有点费劲的,于是想着再补一遍博客,老规矩,尝试“授人与渔”

理清各大厂商的关系

  对于硬件学习,我最推荐的就是自己去官网找资料,而不是疯狂地找各种博客,因为很有可能出现资料下了一大堆,结果能用的却没几个的尴尬情况。官网资料最主要的好处就是全且新
  对于ESP8266(或者ESP32)来说,一般说的官网有这么几个:

  • 乐鑫 (ESPRESSIF)
  • 安信可 (Ai-Thinker)
  • 四博智联 (Doit)(更推荐他们的论坛)

  对于这几家,乐鑫是做芯片的,其ESP8266EX芯片据说是物联网领域里程碑式的突破,将搭载WiFi的成本大大降低,而其他的商家则是基于这个芯片开发固件并组装系统,也就有了模组(即那个板载天线引脚是小缺口的小板子)和开发板。当然,现在乐鑫也有它的模组和开发板。
  所以,很显然,如果买来一个开发板或模组,首要的肯定是找开发板或模组的厂家给出的资料,如果是固件开发和代码编写的话,就得要参考芯片厂家资料了。

现在,你已经掌握了资料查找的方法,所以建议首先将开发板或模组的手册通读一遍,建立基本印象。

芯片型号辨别

  在上一篇博客里面,我重点区分了一些常见(且我有的)WiFi模块,但实际上更应该区分的是芯片的型号,基于同样的芯片的不同型号的模组,一般来说大同小异,基本能够支持相同的固件烧录。

  • ESP8266系列
      ESP8266系列是基于乐鑫的ESP8266EX芯片(就是上面提到的那个芯片)开发的WiFi 模组,可以很方便地进行二次开发,这个系列包含多个型号,如ESP-01,ESP-01S,ESP-07,ESP-12等,具体的信息建议参考安信可官网,WiFi模组专题。

友情提示:这个链接的资料非常完善,建议反复阅读。

  • ESP8285系列
      ESP8266EX芯片有一个特点,那就是它没有存储,所以一般使用的时候需要搭配一个ROM芯片,这个最明显的就是ESP-01S型号了:

    可以看到,它除了一个ESP8266EX外,还搭配一个ROM芯片,用于存储固件。而那些用铁壳子封装的,估计内部也是有两个芯片。
      没有ROM终究不是很方便,于是乐鑫又开发了一款带有ROM的WiFi芯片:ESP8285,据说除了ROM之外,基本和ESP8266差不多,因此很多固件也是通用的。但是似乎ESP8285没有ESP8266知名度高。这个系列的代表产品就是后面会提到的四博智联开发的DT-06ESP-M系列,资料链接参考他们的官网和论坛。
  • ESP32系列
      ESP32是乐鑫新一代WiFi芯片,据说性能相比于ESP8266增加了不少,它们之间的区别可以参考官网或者这篇博客。同样,基于ESP32芯片的WiFi模组和开发板也有很多型号,具体仍然参考安信可的官网。

这一块本人实践不多,不再多讨论,以后有机会继续更新!

开发方式

  区分完了型号,确定了手里拿着的到底是啥板子,接下来就是根据需求确定开发方式了,这里也需要根据板子的型号来选择。

ESP8266系列

  ESP8266的开发方式非常多。但是其本质就是编写能够在ESP8266中运行的代码,最后生成一个bin文件,烧录到ESP8266中,因为ESP8266本身就是一个单片机,但是这个单片机可以有多个集成开发环境,下面一一介绍。

  • SDK开发
      第一种方式我称之为SDK开发,就是和STM32开发差不多,利用官方给的一些库函数,来编写程序。当然,根据开发环境的不同,又可以分为是使用乐鑫官方提供的开发工具还是安信可一体化开发环境,在这个链接里面有详细介绍。这个链接也被安信可官方认可,可以在官网找到。这种方式出现得最早,入门门槛也最高,但同样,可自定义程度也越高。对于专业开发人员来说比较适用。
  • Arduino开发
      可能是觉得官方SDK封装程度不够,国外的一位大佬为ESP8266开发了适用于Arduino环境的库,这样使得函数的使用更加简单,开发者只需要添加ESP8266的开发板,就能使用它的库,而且其语言完全兼容Arduino单片机的语言,不用再下载SDK,并研究它里面的函数是怎么写的了,大大降低了入门的难度。具体添加开发板的操作在上一篇博客里面已经介绍了,这里不多提了。
      另外,ESP32也是可以支持Arduino开发的,操作方法和ESP8266一样,只需要在附加开发板中添加ESP32的板子即可【如果有多个链接,用英文逗号相隔即可】链接是这个:https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

个人觉得使用Arduino开发入门的最快方法就是看它附带的例程

  • AT指令开发
      这种方式可以说是使用最为简单的了,只需要先烧录一个固定的AT固件,这样就能使用AT指令来操作ESP8266模块了,非常适合入门使用。不过,使用AT指令开发有以下几个点需要注意:

    1. 一般我们常用的AT指令是统一的,都是参考乐鑫官方的AT指令,这个是链接,可以作为AT指令使用的参考。所以如果AT指令没有响应不要去找与固件相对应的AT指令,而应该马上换固件

    2. 关于AT固件,只推荐乐鑫官方和安信可官方的固件,不过需要注意的是,下载的固件大小要和ESP8266型号相对应,一般就是两种:1M的固件对应8Mbit的EEPROM;4M的固件对应32Mbit的EEPROM,这个也是在使用FLASH DOWNLOAD TOOLS下载固件时需要设置的参数。至于型号的EEPROM的大小可以参考安信可的官方选型表,链接还是上面那个安信可官网。

    3. 使用AT指令的时候,后面一定要加换行,或者\r\n,如果是在使用过程中需要传数据,就不需要加换行,而且AT指令在返回时还会重复一遍AT指令,使用时不要觉得奇怪。

ESP8285

  前面提到,ESP8285是自带FLASH的ESP8266EX,代表的产品系列就是四博智联的DT-06和ESP-M系列,虽然官方给了很多烧录固件的方法,但不知道为啥给的都是ESP-12的附图,总之烧录固件就没成功过,令人迷惑。最终我得出的结论就是,DT-06和ESP-M系列的WiFi模块是TTL-WiFi,这也是他们数据手册的大标题,也就意味着它不能组网!!! 最明显的体现就是它不能烧录固件,只能用它自带的固件,而且支持的所谓AT指令也仅有几条而已,它的设置方法是登录一个网站,然后在网站中设置,具体操作建议参考官方的手册,总而言之,DT-06和ESP-M系列WiFi为TTL-WiFi,主要作用是串口透传。基本可以和HC-05的蓝牙模块划等号。

WiFi组网获取网络消息

  说了这么多,最后回到本次的需求上来:通过ESP8266联网实现实时网络时间的获取。这个网上的资料很多,这里给两个教程链接:

  • 基于Arduino开发
  • 基于AT指令开发

然后总结几个要点:

  • 想要联网,首先WiFi模块必须是得连接互联网,比如手机热点等;
  • 连接的热点只能是2.4G的,ESP8266不支持5G
  • ESP8266不能连接需要账号登录的热点,比如说校园网。因为还需要了解网站的TCP请求格式等一些底层的东西,非常麻烦

【嵌入式模块】再探ESP8266,保姆级教程相关推荐

  1. 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建

    保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...

  2. ❤️周末爆肝两天❤️,万字长文,手把手教你配置CSDN主页的独特域名(保姆级教程,建议收藏)

    ❤️ 感受下效果图 ❤️ 目录 一.前言 二.先解决有没有的问题 1. 前置条件 2. 购买云服务器 3. 购买DNS域名 4. 配置Apache2服务 5. 配置云服务器的端口映射 6. 配置ngi ...

  3. 从购买服务器到网站搭建成功保姆级教程~超详细

    ??从购买服务器到网站搭建成功保姆级教程~真的超详细,各位看官细品 ??前言 ??预备知识 ??什么是云服务器? ??什么是域名? ??什么是SSL证书? ??服务器选配 ??阿里云[官网链接](ht ...

  4. 搭建个人网站 保姆级教程(一)云服务器购买以及环境部署

    搭建个人网站 保姆级教程之云服务器购买以及环境部署 1. 云服务器 1.1 云服务器购买 1.2 云服务器远程连接 1.2.1 Mac系统 Royal TSX 下载安装 1.2.2 详细配置 1.2. ...

  5. js对象、数组、字符串操作总结(保姆级教程)

    对象操作 1. 扩展运算符 作用是遍历某个对象或者数组 testMethod() {// 三个点 ... 俗称扩展运算符或延展运算符,需要注意的是扩展运算符在拷贝的时候只能深拷贝第一层,第二层及以下都 ...

  6. Tkinter保姆级教程(下)

    继上次肝了几天的Tkinter保姆级教程(上),接下来继续肝教程下,冲冲冲. 目录 Scale控件 Canvas画布控件 Menu菜单控件 Scrollbar滚动条控件 Event事件处理 布局管理器 ...

  7. 万字长文:Stable Diffusion 保姆级教程

    万字长文:Stable Diffusion 保姆级教程 2022年绝对是人工智能爆发的元年,前有 stability.ai 开源 Stable Diffusion 模型,后有 Open AI 发布 C ...

  8. STM32智能定位系统保姆级教程(一)硬件介绍

    STM32智能定位系统保姆级教程(一)硬件介绍 写在前面 产品概述 模块特性 各模块引脚说明 串口连接调试说明 操作说明 原理图及PCB 3D打印 逻辑关系 写在前面 好久没更新了,小更一下 这是完全 ...

  9. 金融数据获取:当爬虫遇上要鼠标滚轮滚动才会刷新数据的网页(保姆级教程)

    目录 1. 谁这么会给我整活儿 2. Selenium模拟网页浏览器爬取 2.1 安装和准备工作 2.2.1 高度判断 2.2.2 顶部距离判断 3: 爬取内容 4: 完整代码,结果展示 1. 谁这么 ...

  10. 【保姆级教程】基于WordPress在阿里云服务器上搭建个人博客网站

    写之前先回答几个问题: 1,网上类似的教程非常多,为什么写这篇教程? 答:博客网站我搭建过好几次,但是每次搭建都需要再去网上搜教程:然而网上的教程坑很多,甚至有些是错误的,不能完美解决自己的问题,有时 ...

最新文章

  1. 广东移动节能绿色数据中心掀起“能耗革命”
  2. java泛型机制_Java泛型机制必要性及原理解析
  3. Ubuntu环境搭建支持设备树,内核和根文件系统启动
  4. 走进COM组件系列(一)
  5. 使用Toolbar + DrawerLayout快速实现高大上菜单侧滑
  6. Linux和window写python,搭建Python环境(window和linux)
  7. 云宏大讲坛 | 灵活轻便的云宏CNware虚拟防火墙
  8. 锐起BSD5.0企业无盘下载免费试用
  9. 苹果手机没声音了显示耳机模式_别再认为音质不好是耳机的问题,也有可能是你手机没打开这个模式...
  10. dbm与mysql_DBM数据库 | 学步园
  11. 华为智慧屏和荣耀智慧屏究竟有什么区别?
  12. python版本升级 mac_mac如何升级python版本
  13. MIUI9系统详细刷成开发版启用root权限的教程
  14. 2019年南京大学计算机考研分数线,南京大学2019年考研复试分数线已公布
  15. 数据抓取 | 数据分享 - 北京链家二手房成交数据抓取,保存格式为excel
  16. 【OpenCV】56 二值图像分析–直线拟合与极值点寻找
  17. JDK目录介绍(bin,db,jre,include,lib,src)以及javac,java命令
  18. 如何设置微信公众号粉丝关注后自动推送小程序
  19. 【chrome插件】公众号后台,固定侧边栏,自动定位菜单位置。
  20. 公司-饿了么:饿了么

热门文章

  1. 《MBA一日读2.0 读书笔记》
  2. 手势控制鼠标(源码)
  3. 【Keil】分享Keil5修改为黑色炫酷主题的一种方法
  4. ASP.NET超市便利店在线购物商城源码,针对周边配送系统
  5. MATLAB牛拉法计算潮流,Matlab牛拉法潮流计算程序
  6. 服务器linux simsun.ttc is not a valid ttf file
  7. 关于Dll、Com组件、托管dll和非托管dll
  8. react-native 加载图片的几种方式
  9. Windows如何查看局域网内所有设备的ip
  10. 路由器无线模式与信道检测