A. 使用platform编译8266出错
1.刷机必须用FT232芯片的USB转TTL模块。(PL2303老是出错CH340也出错) 2.ESP8266供电必须足,否则容易不启动(最好单独供电3.3V,5v好像也可以用,我试了一晚上没烧)。 3.注意模块的版本,老版本的0.9.1.x的默认速率是115200,0.9.2.x以上的全...
B. ESP8266 RTOS SDK编译求教
1、让arino变成一个串口转发器。 2、从串口芯片到单片机和这个口是个并联关系。 3、然后usb 到这个IO口有1k电阻,就启用了单片机的内上拉稍微平衡下阻抗。 4、就把arino板子作为usb to ttl工具了。
C. 如何编译ESP8266-SDK
1:准备资料 所需软件:cygwin、官方最新版SDK。 2:解压cygwin后,找到cygwin中的workspace。 3:在里面新建一个自定义文件夹(建议文件名使用英文名)4:把下载好的SDK复制到该自定义文件夹中,并解压。5:按照如下路径找到官方提供的at版本实例程序文件夹。并选择at文件夹中的全部文件,进行复制,粘贴到app目录下。6:退回到cygwin根目录,双击运行Cygwin.bat命令。7:在弹出的黑色方框中按照dos命令的输入方法,进入到app目录下。8:执行gen_misc.sh命令。9:编译成功后,会显示编译成功的结果。如有错误,则需要在程序中修改错误后,再重新进行编译。OK,到此,这个编译就结束啦,接下来只需要按照乐鑫提供的2A-ESP8266__IOT_SDK_User_Manual__CN_v1.1.0.pdf文档,并根据自己手中wifi模块的相关信息把编译成功的bin文件烧录到相应位置。
D. 如何编译micropython在esp8266的固件
进入第一个个连接进入之后我们就可以选择红色方框Buid Firmware。
之后我们就可以下载相应的固件了,但是这个固件是比较早的就是了,是2015年的固件,所以我们接下来要做的就是来自己编译一个固件。
首先我们需要将我们的micropython的github开源项目的内容下载下来。选择下图的图标就是可以下载下来。或者在window或者linux底下直接使用Git工具clone这个项目下来也是可以的。
我们使用git clone下载的话如下图。
这个编译需要在Linux底下,所以如果是windows的话就需要有一台虚拟机,来帮助完成这个编译的过程。
首先我们在Github目录下进入esp8266的目录。向下滚动页面,我们可以看到一个README.md文件,解释一下,md结尾的是markdown语言编写的一个文本,能够用一些简单的语法完成一些格式,Github项目都会有一个这样的文件对项目进行一个介绍,进入项目之后都会在下方进行一个显示。
再往下我们可以看到一个编译指南,在这里详细说明了该如何自行编译一个我们的esp8266的micropython固件。红色标记的地方说明在我们编译固件之前我们需要ESP SDK的工具来帮助我们完成编译。
点击链接进入该Github项目。
同样需要下载下来,页面向下滚动找到编译说明。这里我们选择的是在Ubuntu底下进行编译,下面图片截图说到我们编译这个东西的时候需要的工具和依赖的一些库等等。我们按照图片说明,在Ubuntu底下安装这些工具即可。
完成了工具和依赖库的安装之后我们再往下看。有一个编译说明。我们按照这个说明就可以,第一步是下载,完成之后进入该目录直接make就可以。
我自己使用的Ubuntu版本是14.01的版本。
同样我们使用git clone下载之后编译,这里和大家说明一下,我进入下载的目录之后,使用make命令编译了两次都出错,之后我换成了make STANDALONE=y就可以了,如果大家也遇到编译失败的情况,也可以尝试使用make STANDALONE=y试一下。
然后我们需要将工具的bin文件添加到我们的系统目录当中,根据提示我们键入下面的语句就可以。
之后我们回到我们的micropython目录当中,按照microPython的esp8266下面的README.md文件中的说明就可以。
首先先更新一下我们的需要用到的子模块内容。
在micropython的目录下面键入git submole update --init即可完成这个工作。
完成之后我们进入esp8266的目录下执行make就可以编译我们的固件了,第一步的话要先执行make axtls,完成之后在使用make命令,几分钟就可以完成这个工作了,之后我们就得到我们的固件啦。
我们可以找到一个名为firmware-combined.bin的文件,这个就是我们的固件啦。
E. ESP8266编译问题
你这程序编译没有错误吗?在子程序中声明变量
uint a=0;
前面有可执行语句,这声明是无效的,这是keil的语法规定的,不同于c语言的语法。
F. ESP8266编译时错误
首先,我估计大家都没有USB TO TTL 硬件,也不是所有的坛友都有mangoII,所以我今天就写个特别的arino程序,让arino变成一个串口转发器。
原理很简单。。从串口芯片到单片机和这个口是个并联关系。。然后usb 到这个IO口有1k电阻,我就启用了单片机的内上拉稍微平衡下阻抗,,就把arino板子作为usb to ttl工具了。。嘿嘿
(本设置在mangoII板硬件环境下测试通过,不确定其他硬件是否可以使用,请自行尝试)
代码如下:
ARDUINO 代码复制打印
void setup() {
pinMode(0,INPUT_PULLUP);
pinMode(1,INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
}
因为程序很简单,我又偷懒就没写注释了。主要内容就是创建一个软串口,软串口接模块 ,然后让软串口的回显数据转发到硬件串口,硬件串口的输入数据转发到软串口。
下面来介绍下接线
3V3 ------------ VCC
ARDUINO GND ------------ GND esp8266
IO1 ------------ TX
IO0 ------------ RX
注意,TX 是直接对应板子上的TX RX 对应RX。,。原因自己思考下。
非常简单的接线,就是把我们的WIFI模块接到arino的软串口上,需要注意的是,wifi模块是3.3V供电。
好了。已经全部准备好了。我们要正式开始了。首先我们打开串口监视器,然后重新插拔一下模块的VCC接线(让模块重启,显示其启动信息),你应该能看到如下图所示的启动信息,说明已经没有任何问题了。
1.png
前面的乱码是因为模块启动信息的波特率与后面启动后不一致造成的,不管就行了
重点来了看窗口的右下角“没有结束符”
这个要选择成“回车”如下图
1.png
我们输入下面这个指令
AT+Reset
复制代码
点击发送后,模块会重启
显示如下
AT+Reset
done
返回字符是done 为啥d没了呢,实际上是有的。可能是软串口的bug,这个我们不研究了。。反正能用知道就行了,不影响使用。
好上面的重启命令我们等会会经常用到
下面,我们要查询一下模块的工作模式,模块一共有三种工作模式1.Station 2.AP 3.Station+AP 第一种是客户端模式,第二种是接入点模式,第三种是两种模式共存。既然我们是登陆路由器然后往指定网络传数据,所以我们选第一种模式。。
设置之前先查询
AT+MODE?
复制代码
返回内容:
AT+MODE?
+MODE:0
done
这个0就是没配置的意思。。我们配置成1即可
用这个命令来设置
AT+MODE=1
复制代码
这样就设置成模式1了。具体的详细指令请参阅上面的指令手册以及自己多尝试
返回如下:
AT+MODE=1
one
坑爹的d又丢了,不管~~~这个时候,关键的时刻来了,这时候虽然设置了。但还没有生效,需要重启模块。还记得我之前说的指令么?我就不重复写了。。反正这时候要重启(拔电源插头也是可以的)
然后我们来查询下
AT+MODE?
复制代码
返回如下:
AT+MODE?
+MODE:1
done
大概就是这样就设置好模式了。
我们后面就暂时不介绍回显内容了,很简单
然后就是查询一下附近能搜索到的wifi网络信号
AT+ShowAP
复制代码
回显内容就是周围wifi信号
看到自己的wifi就可以加入网络了
AT+JoinAP="SSID","PASSWD"
复制代码
很简单的命令对吧,前面写SSID号,后面写密码。回车发送命令就可以加入网络了。记得加完网络重启下模块
好了,这样模块就连上路由器了
下面就需要有个小工具,在自己计算机(局域网内)上建立一个TCP端口的监听,来模拟服务器
小工具连接
我计算机IP是192.168.1.101 我打算监听8089端口,如下图配置,监听(当然你也可以监听你需要的任何端口)
tcp.png
(说明:任何网络服务器都可以看成是工作在指定端口,负责解析指定协议的端口监听器)
设置模块到单链接模式(只能使用一个连接的模式,这种比较方便简单,多链接模式我们以后再讲)
AT+MUX=0
复制代码
然后重启模块(拔电或者用reset指令都可以)
好了。以上的设置模块设置一次后,断电后还是会有记忆的。。也就是说只需要配置一次。。下面开始建立TCP连接啥的。断电不会重连了。。
下面我们在模块上建立一个TCP的连接
使用指令
AT+NewSTA=“TCP”,“192.168.1.101”,8089
复制代码
很简单的指令,首先说明连接类型,目标ip地址,端口号。。这样就建立好了。。
然后我们就能发送数据了
指令
AT+UpDate=11
复制代码
然后串口会返回一个>号,我们继续输入hello world发送
这样就会从TCP监听的一端看到数据了。很简单吧
指令后面的11的意思就是你要发送的字符的长度。系统是靠字符长度判断一句话是否可以发送,所以我们的数据长度要和下面要发送的字符串的长度等长才行。。
简单的教程目前就到这里了,有助于大家理解AT指令的使用。
另外我们还有一个arino的库,虽然目前开发的不太完全,基本函数都开发完了,例程还没写好,bug可能还有不少,也都在调试中,有兴趣的可以去看看
G. esp8266 编译时怎么提示airkiss
单片机只要负责和wifi模块通信好就行,一般是串口。wifi模块要设置云主机的IP和端口窢攻促纪讵慌存苇担俩号,是否一直发送心跳包看wifi模块的手册了,wifi模块还要设置wifi网络和密码和加密协议。最简单的办法就是问卖wifi模块的厂家,让他们全程指导。不同的wifi模块功能可能也略有不同..