esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)

0.需要准备的材料

硬件部分:

esp8266模组(我这里选择了机智云的gokit3(s),上面的esp8266型号是esp-12F)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
一根USB转TTL的线
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
可选:一根USB线(用来给机智云的gokit3(s)供电)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)

软件部分:

机智云账号的注册(参考链接:机智云官方注册链接)
安信可推出的基于windows的esp8266IDE(百度网盘提取码:m75u
固件烧写工具FLASH_DOWNLOAD_TOOLS(百度网盘提取码:ck59 )
手机机智云app(用来进行调试)(机智云手机app))

准备好上述内容后,那我们从软件部分出发,正式开始吧!

1.机智云的账号注册与soc方案创建

首先,我们需要打开机智云官方注册链接进行免费注册(参考链接:机智云官方注册链接)。

注册完毕后,我们点击右上角的“开发者中心”。如下图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
继续点击右上角的“创建新产品”。如下图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
选择符合自己设计的产品分类(不影响具体功能),取一个自己喜欢的产品名称,选择Wi-Fi/移动网络方案。之后直接点击保存。如下图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
这样我们就有一个自己的产品啦,然后点击左边选项栏里的数据点,之后点击页面中部的“创建数据点”。如下图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
然后我们就可以开始添加我们想要的数据点了,首先我们添加数据点“开关”。如下图。按图示填好后点击“添加”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
接下来我们继续添加第二个功能:使用esp8266自带的adc引脚检测电压,这里我添加了两个数据点,第一个数据点为控制adc接口是否检测电压,第二个数据点为显示检测到的电压值,由于esp8266的adc接口为10位,所以他的测量范围是(0-1024),阅读esp8266手册后发现测量的电压范围为(0-1v),所以我们需要在后续程序或者自行进行进一步电压数值换算。数据点设置如下图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
然后我们在“数据点”页面能看到三个数据点,点击“应用”,这样我们就完成了数据点的设置。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
然后我们点击左边选项栏的“基本信息”,之后点击“显示完整**”。输入我们刚刚创建机智云账号时使用的密码,获取并复制产品**(product secret)。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
之后我们点击左边选项栏里的“MCU开发”,由于我们没有MCU,所以选择“SOC方案”,硬件平台选择“ESP8266_32M”,最后粘贴刚刚复制的产品**,点击“生成代码包”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
生成完毕后点击“下载”,此时我们在机智云平台的代码构建部分全部结束。

2.对下载的机智云代码包进行三分钟简单修改

2.1eclipse导入工程

首先,我们得确认是否下载好我下载最前面的esp8266IDE以及烧写工具,在下载解压完成之后,我们解压上一步下载好的机智云代码包,然后点开esp8266IDE(在文件夹AITHINKER-ESP8266-SDK-v2.0里,这个文件夹直接通过下载解压我在文章开头发的百度云盘文件得到),如下图(我使用的win10系统环境)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
之后我们发现eclipse打开了,提示选择工作区间,我直接点击了“ok”,你也可以选择你想要的工作区间。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
打开eclipse后,我们点击左上角的“file”,在弹出的选项栏里点击Import。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
选择“Existing Code as Makefile Project”,然后点击“Next”
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
点击“Browse”,在弹出的目录中找到我们刚刚下载解压的机智云代码包,之后在"Toolchain for Indexer Settings"里选择“Cygwin GCC”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
到这里,我们eclipse的配置就完成了。

2.2 代码简单修改

首先我们在左边打开工程,在根目录里找到Makefile文件,打开。对23-27行进行修改,关于SPI_MODE,如果你的esp8266模块上写的安信可就输入“QIO”,如果是“汇思锐(HYSIRY)”就输入“DOUT”(问题总结一)如图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
之后我们可以点开app/user目录下的user_main.c进行功能函数的编写,由于我们这个教程要实现的功能比较简单,所以我们直接进入app/Gizwits里的gitwits_product.c里进行编写调用,我们定义GPIO5口为swtich开关。如下图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
之后我们回到app/user目录下的user_main.c,根据大家自身的esp8266模组情况进行对应的调试,如果没有gokit3(s)soc开发板的话,可以将145-146行按如下图所示自行调整(也可以不调,使用对应的波特率和串口即可)。我在这里用的是之前默认的(默认为波特率(9200,115200)和将打印信息输出到UART1)。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
如下图,在user_main.c里可以看到,按键1接到了GPIO0上,按键2接到了GPIO14上。有1个输出需要连接到GPIO5。
按键1短按:运行出厂测试代码
按键1长按:模块复位
按键2短按:AP模式
按键2长按:airlink模式
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
最后,我们右键点击左边项目栏里的“SOC_ESP8266_32M_source”项目,然后先点击“clean project”,再点击“build project”,在下方"Console"里显示如下的时候,说明代码部分已经全部完成,可以进行后续的固件烧录和app测试了。(如果build project后报makefile之类的错误,需要点击左上角“file”里的“save all”保存后,再build就好了。)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)

3.esp8266固件烧录

首先我们打开之前下载的串口烧写工具(文章开头提供的固件烧写工具FLASH_DOWNLOAD_TOOLS(百度网盘提取码:ck59 ))

3.1 生成使用adc接口需要的配置文件(不打算使用adc接口可以直接忽略这一小节,直接进入3.2烧录部分)

选择第一项“ESP8266 DownloadTool”
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
因为我们需要使用到adc接口外接电路检测电压(如果不打算使用adc接口,可以直接忽略这一步),所以接下来我们需要点击“RFConfig”,将vdd_const位改成33(3.3V),最后点击GenInitBin,将生成的“esp8266_init_data_setting”复制到机智云代码包的Bin文件目录下
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
将“esp8266_init_data_setting”复制到机智云代码包的Bin文件目录下(不使用adc接口的话,可以忽略)。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)

3.2 esp8266固件烧录

打开此文章开头提供下载的串口烧录工具,选择第一项“ESP8266 DownloadTool”
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
然后使用usb转ttl线连接esp8266,一般需要使用四根,
VCC接esp8266模块上的VCC(没有的话直接使用+5v电压进行供电),
TTL线上的RX接esp8266模块上的TX,
TTL线上的TX接esp8266模块上的RX,
TTL线上的GND接esp8266模块上的GND,
(如果ttl有UART0线,也可以接上,我这里的ESP8266-12FUART0部分由KEY1直接可以控制进入烧录模式还是正常运行模式,这部分模块不同可自行百度如何接线)
如图
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
接完后将esp8266模块上+5V的电(3.3v是工作电压,5v是烧录电压),将key1下拨至GND,然后烧录软件各项参数如下设置,注意SPI MODE需要根据你的esp8266模块而定(在之前的程序修改中也有不同),如果你的esp8266模块上写的安信可就输入“QIO”,如果是“汇思锐(HYSIRY)”就输入“DOUT”。选择你自己的ttl转usb串口,不会查看com型号的话见文章末尾的(常见问题6.2)。最后点击软件下方的“erase”,然后点击“start”,此时应显示“等待上电同步”。
注意:第三个烧录文件“esp8266_init_data_setting”,如果不需要使用adc接口,请将“esp8266_init_data_setting”替换成bin目录下的“esp_init_data_default”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
此时串口工具会开始大约30s计时,如果使用esp8266-12F的话,将key1拨至GND端,按一下“RESET”即可进行烧录,其他esp8266模块需要调整UART0和RESET的电平,也可以进行烧录。直到提示“FINISH”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
接下来我们将5V的烧录阶段供电电压替换成3.3v的工作阶段供电电压,然后将esp8266-12F上的KEY1拨到KEY1端,之后按一下reset,我们的程序就开始运行了。

4.使用手机机智云app连接上esp8266模块

由于之前我们已经将配网需要的控制电路已经配置好:
按键1接到了GPIO0上,按键2接到了GPIO14上。有1个输出需要连接到GPIO5。
按键1短按:运行出厂测试代码
按键1长按:模块复位
按键2短按:AP模式
按键2长按:airlink模式
esp8266-12F各引脚功能如图所示
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
我们选择通过ap模式进行配网,如果跟我一样使用的gokit3(s),只需要在soc板接上usb电源后,在esp8266-12F的key1键拨至key1端的情况下按一下“reset”,再按一下gokit SOC板上的key2键即可进入ap模式。

如果没有gokit3(S),可以根据上述文本和图片对GPIO14引脚接一个开关,或者通过导线进行电平短暂切换,也能达到短按key2的效果,进入ap模式。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
在明白如何进入ap模式后,我们打开手机上下载的机智云app(手机机智云app(用来进行调试)机智云手机app,创建一个账号(跟之前创建的机智云电脑端账号不互通),进入app主页后我们点击右上角的“+”号,然后点击“热点配置”,同时要让esp8266模块进入ap模式(短按gokit3 soc板上的key2或者对gpio14引脚进行电平迅速调整),如下系列图

esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
然后继续,随便进入一个可用你当前的wifi环境。然后点击“下一步”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
然后选择模组类型,这里我们esp8266-12F选择“乐鑫”(基本都是乐鑫)。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
如下图,按之前所述的操作保证esp8266进入ap模式后。点击“我已完成上述操作”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
点击“去连接设备热点”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
在WIFI列表里找到“XPG-GAgent-503”(尾号是你esp8266模块***的最后三位),输入默认密码“123456789”,然后会提示连接成功,返回app后就发现成功建立连接啦。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)

5.使用机智云app进行功能测试

5.1 测试开关的功能

在完成上一步后,我们发现机智云app主页已经出现了我们的设备。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
点击进入我们的设备,然后点击switch右边的开关键,我们发现引脚也在进行对应的高低电平切换(通过外接led小灯进行检测),如图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)

5.2 adc接口检测电压的功能检测

然后我们在设备的操作页面打开switch_adc的开关,我们发现示数在50左右,然后我们通过外接电压(注意检测范围位0-1v,如果要检测更大的电压可以先接缩小电路,然后在程序或者机智云数据点里加放大系数)。我接入了0.5V左右的电压,示数相应的发生了变化,如图。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
到这里,我们已经完成了所有的步骤。最后我补充一些过程中常见的问题和注意事项:

6.常见问题与注意事项

6.1程序编译

1.eclipse中最后的“build project”阶段如果出现类似于“makefile…”之类的错误,需要点击左上角“file”,然后点击“save all”,保存所有文件之后在“build project”就能成功了。

6.2 串口烧写

* 串口的确认(COM X)

在usb连接上电脑后,我们右键点击“我的电脑”,然后点击“属性”,进入“系统”。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
点击左边的“设备管理器”。然后点击“端口”就能查看具体选择COM的数值。
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
其他注意事项
1.SPI MODE需要根据你的esp8266模块而定(在之前的程序修改中也有不同),如果你的esp8266模块上写的安信可就输入“QIO”,如果是“汇思锐(HYSIRY)”就输入“DOUT”。

2.第三个烧录文件“esp8266_init_data_setting”,如果不需要使用adc接口,请将“esp8266_init_data_setting”替换成bin目录下的“esp_init_data_default”。

3.如果出现“串口连接失败”,先通过上述确认串口操作,确认选择的串口没有问题。然后如果还有问题,下载一个“驱动精灵”进行驱动扫描。驱动精灵会自动安装需要的串口驱动。

4.如果在按“start”和复位时出现“ESP8266 Chip stub error esp_stub_and_set_baud.”的错误。往往是线没有接好(tx,rx线长度不一致,或者接口松动都可能导致这个问题)。注意usb转ttl线的tx端接esp8266模块的rx端,usb转ttl线的rx端接esp8266模块的tx端.

附:win10最好不要买“Prolific USB-to-Serial Comm Port”这型号的USB转ttl的线,因为需要手动更新驱动程序才能用- -,这里有问题可以留下评论。最后希望大家能多多指导,共同进步!
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)
esp8266快速入门:通过机智云平台20分钟实现开关与adc接口的电压测量功能(包含esp8266固件烧写教程)