ESP8266模块使用完整教程「建议收藏」

在我入门ESP8266小黄板的过程中,过程是艰难的,因为网络上的资料太多太乱,官网上的资料不算太完备,而在技术交流群里面的就更乱了,所以想按自己学习所总结到的经验来分享给大家。资源链接:http://pan.baidu.com/s/1i4qjrY9请使用本教程之前先下载以上资源。前言:esp8266我用到的是小黄板测试板,而ESP8266主要有两种固件,一种是AT固件,一种是IOT固件。前者用串

大家好,又见面了,我是你们的朋友全栈君。

在我入门ESP8266小黄板的过程中,过程是艰难的,因为网络上的资料太多太乱,官网上的资料不算太完备,而在技术交流群里面的就更乱了,所以想按自己学习所总结到的经验来分享给大家。

资源链接:http://pan.baidu.com/s/1i4MmNTN
请使用本教程之前先下载以上资源。

前言:esp8266我用到的是小黄板测试板,而ESP8266主要有两种固件,一种是AT固件,一种是IOT固件。

前者用串口调试助手,一步步输入AT指令操作模块,详情请查看资源链接下面的\esp8266\esp8266编程相关手册\4A-Espressif AT指令集018.pdf和4B-Espressif AT指令使用示例_v0.2.pdf,具体用法也可以参考我的另一篇文章:《关于51单片机+ESP8266》。用法非常简单。

后者是IOT模式是物联网全自动操作的,在这里是关于IOT方式的详细使用方法。

一、ESP8266固件编程与烧写

烧固件即可理解成是烧写系统,或者是烧写驱动。想玩ESP8266就要先往里面烧写固件。就像学习其他一般WiFi模块,我们要先了解几个问题:

a、固件从哪里来?
第一种是从官网获取各个不同版本的固件;
第二种是从互联网上获得别人已经写好并编译好的固件,一般是从官网上修改所得;
第三种是自己编写的固件。

b、怎样烧固件?
第一种如果烧写已有固件,则可用普通烧写工具刷入该bin文件;
第二种是自己编写好的固件源代码,要用编译工具先将源代码编译出.bin文件,才可以进行烧写。

c、怎样编写自己的固件?
先在官网上下载基础的iot_sdk包,再用编程工具,如Eclipse,编写好之后,进行编译,再烧写,这些步骤在下文都会一一详述。

1、打开编程工具

 进入\esp8266
\1.在eclipse编写固件源代码\1.编程工具\AITHINKER-ESP8266-SDK\ESP8266IDE.exe

关于ESP8266IDE.exe的详细使用方法请看下面,与eclipse的用法相同:
\1.编程工具\安信可科技ESP8266模块编译平台说明.pdf
在上面说明文档中导入的步骤中导入esp_iot_sdk工程。

2、打开esp_iot_sdk工程

  \1.在eclipse编写固件源代码\2.iot_sdk_examples,下面有四个已有的sdk工程,大同小异,可以根据不同需要导入不同工程,也可到官网下载。

其中,all_fit是小黄板上最实用的一个工程,里面包含已经编译好的IOT固件AI-THINKER-IOT-2014-10-17 165528.bin,可以烧写到板子上,方法查看第4点:烧写已有固件的方法。
同时也包含IOT.apk,安装到安卓手机上,将手机连接上小黄版放出来的WiFi,即可玩app里面的操作。
其他三个工程,用ESP8266IDE.exe修改好代码后编译烧写。

3、SDK代码修改基本方法

将对应的esp_iot_sdk工程导入ESP8266IDE.exe后,进入\app\user\user_main.c,修改以下内容:
在52、53行中修改WiFi账号和密码
在276、280行中修改服务器端地址和端口号
进行上述操作即可让小黄板连上当前WiFi,要对程序作进一步修改,请查看:
\esp8266\esp8266编程相关手册\2C-Espressif IoT SDK 编程手册_v0.9.1.pdf

4、烧写已有固件的方法

若要参考厂家已有固件,可以用烧写工具导入烧写,并与厂家对应的app配合使用。详情参看:
\esp8266\2.烧写已有固件的方法\烧写已有固件说明文档.doc

5、自行编译烧写固件的方法

(1)配置环境:参看下述文档,按照步骤安装并配置好,
esp8266\3.在win下配置固件编译环境并烧写\完全脱离虚拟机进行编译的环境安装包.txt

(2)按照文档将在第3步编写好的工程的三个文件driver、include、user,复制到C:\usr\xtensa\esp_iot_sdk\app里面。

(3)烧写程序先将小黄板的跳帽接上,再插入电脑USB口,运行C:\usr\install里的xtensa

(4)在命令提示符状态下输入:cd app
(5)然后输入make指令对源代码进行编译操作
(6)编译成功后,输入makebin,最终输出Fans_SDK_flash.bin固件。
(7)将模块8266通过USB转TLL串口接到电脑上,确保模块是处理升级烧录状态(跳帽插在多出来的两个脚上),最后在命令提示符下输入burnbin,将固件写到模块中去。

二、手机客户端

资源地址:http://pan.baidu.com/s/1i4MmNTN

1、手机使用已有app连接模块

     打开:\2.手机客户端\1.已有app\固件与app组合使用\,如下:

     (1)将IOT.apk安装到手机上,将IOT.bin烧到板子上。
     (2)手机连接模块释放出来的热点,名称为:AI-THINKER-XXXXX ,然后打开app,就会自动连上模块。
     (3)选择菜单“控制设备”,选择“LED调光”或者“开关”,就可以控制板上的灯的状态了。

2、使用手机调试助手连接模块

(1)将\2.手机客户端\2.手机调试助手\手机TCP&UDP调试助手.apk安装到手机上。这个其实是一个实现手机和其他设备UDP或者TCP连接的工具软件。连接时需要知道对方服务的IP地址和端口号。

(2)用“USR-TCP232-Test.exe”与其配合使用,查看收发情况。

(3)“esp_iot_sdk”是一个实现模块与手机实现TCP连接的一个简单例子。改编请参考网站:
http://bbs.espressif.com/viewtopic.php?f=31&t=232
在网站中,有很多其他各种用法的参考代码:
http://bbs.espressif.com/viewforum.php?f=31&sid=e3fefb9c7739e612c215d88e9b9c034d

到此,我们实现了在局域网内的手机与模块之间的连接与通讯,还有手机与模块通过服务器连接进行通讯,大家有兴趣的可以尝试,这里就不多说了。

这里没有具体操作到极致的细微,差不多是一个操作指导书,每一步的里面都会延伸到相应的文档,希望能够帮助大家。

QQ:3069508913

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125496.html原文链接:https://javaforall.net

赞 (1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python使用pip卸载和安装库「建议收藏」

    python使用pip卸载和安装库「建议收藏」pip先来演示pip的错误打开方式:C:\Users\86188>pyPython3.8.2(tags/v3.8.2:7b3ab59,Feb252020,22:45:29)[MSCv.191632bit(Intel)]onwin32Type”help”,”copyright”,”credits”or”license”formoreinformation.>>>pipTraceback(mostrecentcalllast

    2022年10月19日
  • Git知识总览(一) 从 git clone 和 git status 谈起「建议收藏」

    Git知识总览(一) 从 git clone 和 git status 谈起「建议收藏」本篇博客是整理git相关知识的第一篇,因为之前一直是用SourceTree对Git的命令行操作用的不是特别熟,于是乎过了一遍ProGit(链接:https://git-scm.com/book/zh/

    2022年7月1日
  • 使用libpng读写PNG图片

    使用libpng读写PNG图片libpng是一款C语言编写的比较底层的读写PNG文件的跨平台的库。借助它,你可以轻松读写PNG文件的每一行像素。因为PNG文件是经过压缩而且格式复杂的图形文件(有的PNG文件甚至像GIF文件一样带动画效果)而且PNG可以是带透明通道的真彩色图像、不带透明通道的真彩色图像、索引颜色、灰度颜色等各种格式,如果大家都自己写程序分析PNG文件就会显得很麻烦、很累。因此,通过使用libpng你就能直接…

    2022年10月22日
  • 反射型xss偷取cookie(本地验证)

    反射型xss偷取cookie(本地验证)原理反射型xss为危害之一就是:用户在登录的情况下点击了黑客发送的链接,就会导致该网址的cookie泄露,导致帐号被黑客登录。

    2022年5月10日
  • html 检测输入是否数字,JavaScript怎么判断输入是否是数字?

    html 检测输入是否数字,JavaScript怎么判断输入是否是数字?JavaScript进行表单操作时,很多时候需要判断输入的内容是否为数字。JavaScript判断输入内容是否为数字的方法很多,下面本篇文章就来给大家介绍几种方法,希望对大家有所帮助。javascript判断输入是否是数字的方法:第一种方法isNaNisNaN:返回一个Boolean值,指明提供的值是否是保留值NaN(不是数字)。NaN:即NotaNumberisNaN(numValue)但…

    2022年6月22日
  • 使用sqlldr 导入BLOB 数据

    使用sqlldr 导入BLOB 数据

    2021年5月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号