ESP8266 WIFI模组学习(一) ESP8266概述

 

 

 

 

 1.前言

  最近在学习ESP8266,记录一下。先来了解一下ESP8266。简单来说,ESP8266就是一个比较便捷的WIFI芯片。通过它可使设备很快实现WIFI联网。

  ESP8266的开发方式有3种:AT指令、LUA、SDK开发。其中AT指令最为简单,通过串口发送 AT+命令 的方式就可以实现ESP8266的控制,但实际上AT指令和LUA都是基于某一个具体SDK来实现的,就是所谓的二次开发。

  AT指令集也有不止一个,官方AT固件、安信可AiCloud AT固件

  安信可AT:

  (AT指令集                :http://wiki.ai-thinker.com/aicloud

    AiCloud 2.0开发文档:http://wiki.ai-thinker.com/aicloud/docs/atdevelop

  可以看到,以下的AT指令就是基于AiCloud来实现的,而这个AiCloud则是厂商开发好并烧写进芯片的程序。所以我们可以通过串口来控制芯片联网和数据传输。可以根据

  http://wiki.ai-thinker.com/esp8266/examples/at_demo(ESP8266 AT指令开发实例) 来学习。

图1.1.AT指令集(AiCloud)

  乐鑫官方AT:

  官方也有一个AT固件(官方AT固件:https://www.espressif.com/zh-hans/support/download/at   AT指令集:https://www.espressif.com/zh-hans/support/download/documents  选择型号,找到:ESP8266 Non-OS SDK AT 指令集 )了解了一下,AiCloud和它好像都差不多原理,但是AT指令不是兼容的。AT+CWLAP是官方AT指令集里面的一条,但是AiCloud的固件里是没有的,使用AiCloud 的AT固件 时输入后返回

        AT+CWLAP

        ERROR

  而使用官方的AT固件时,会返回当前环境能搜索到的SSID等信息。

2.关于ESP8266的关系

  查资料发现,ESP8266有两个比较相关的厂商:

  1.乐鑫:http://www.espressif.com/

  2.安信可:http://wiki.ai-thinker.com

  3.NODEMCU:http://nodemcu.readthedocs.io/en/master/

  乐鑫是ESP8266,ESP32芯片的生产商,生产芯片和提供芯片的官方SDK开发包。

  安信可主要是生产ESP的ESP8266 芯片,安美的 SX1278 芯片 等WIFI模组,并提供一些联网和开发的方案,AiCloud就是安信可研发的,安信可还有一个ESP-TOUCH的便携配网方式(微信也搞了一个AIRKISS),可以方便使用模组的用户只通过上位机(手机)就可以发送wifi的SSID和密码给设备,实现快速联网,没有输入键盘和显示屏的设备也可以很方便快速地接入互联网了。

  NODEMCU 似乎是提供通过Lua语言可以方便的进行开发ESP8266方案的厂商,这个大不了解。

3.ESP8266的学习和开发

  下面来学习一下开发和烧录:

  3.1 开发环境的搭建

  首先是开发环境的搭建,根据平台的不同,开发环境也有所不同。主要的开发平台是第2小节中所提到的3个,乐鑫官方,安信可,NODEMCU。NODEMCU不熟悉,需要再查资料看看

  乐鑫官网:请参考:https://www.espressif.com/zh-hans/support/explore/get-started/esp8266/getting-started-guide (ESP8266 SDK入门指南 1.5章)

  安信可   :请参考:http://wiki.ai-thinker.com/ai_ide_install(如何安装安信可一体化开发环境 )

  接下来使用的是安信可的开发环境,并编译、下载官方NON-OS SDK。根据上述教程安装即可。

 

    3.2 SDK下载

    SDK官方下载地址:https://www.espressif.com/zh-hans/support/download/sdks-demos   大体上官方的SDK分两种,1.NON-OS SDK 不带操作系统的SDK,2.RTOS SDK 带free rtos的SDK 

    这里先使用NON-OS SDK。版本:ESP8266 NONOS SDK V2.2.0  将其下载下来,并解压后按 3.3 节组织调整文件结构。

 

     3.3 SDK修改

   在接下来的测试中,运行官方的各个例程看看结果如何。因为乐鑫官网教程下,编译 ESP8266 SDK 需要使用 Linux 操作系统,或者安装VirtulBox 虚拟机,比较麻烦。安信可的开发环境,是WINDOWS下运行的,IDE用的是ECLIPSE ,它也可以编译官方的SDK,用于编译官方SDK,也就是使用乐鑫原厂固件时,需要调整文件结构, 否则将编译出错,Console报错:make[2]: *** user: No such file or directory. Stop. 调整步骤如下:

  1.需要将 SDK里面的文件夹中的 driver_lib 文件夹名字 改为app。

  2. examples/XXX  下的文件拷贝到 app目录下,XXX就是你要测试哪一个例程就拷贝哪一个,这次先复制example/at 里面的所有文件,也就是测试官方AT固件。复制前先删除app文件夹里面所有文件 。

  完成后如图3.1 有多余文件可能会报错,若出错尝试删除多余文件。

                                                                                                   

                                                                                                 图3.1 在编译官方SDK的时候文件夹截图(Non-OS SDK)                                                                               图3.2 官方例程

 

  • app: 用户工作主目录,用户级代码及头文件均放在此目录下编译。(将   driver_lib 外设驱动的库文件,如:UART、I2C 和 GPIO 等)的所有文件复制到此处。
  • bin: 编译生成的 BIN 文件,可直接下载到 Flash 中。
  • documents SDK 相关的文档或链接。
  • examples: 可供用户二次开发的示例代码,如 IoT Demo 等。(将)
  • include SDK 自带头文件,包含了用户可使用的相关 API 函数及其他宏定义,用户无需修改。
  • ld 链接时所需的脚本文件,若无特殊需求,用户无需修改。
  • lib SDK 提供的库文件。
  • tools 编译 BIN 文件所需的工具,用户无需修改

  3.4 编译环境启动和SDK导入

  1.打开,安信可编译环境,第一次打开先设置IDE位置,和编译器位置。根据实际情况设置。

图3.3 开发环境配置工具

  2.File-----> Import

  3.C\C++------> Existing Code as Makefile project----->NEXT

  4.点击Browser选择工程文件夹,编译器选择Cygwin GCC 然后点击Finish,导入完成。

                                                                      

  3.5 编译和下载

       

  3.6 验证例程烧录结果

 

 

4.总结

     

 

posted @ 2018-03-20 16:17  SiberianFox  阅读(1343)  评论(0编辑  收藏  举报