pdlinfo 2018-04-12
Hello,大家好,欢迎大家来到LIUSE网络。
说到智能家居,物联网开发,大家肯定都是耳熟能详了。现在主流的物联网方式大多都采用蓝牙,或者wifi来进行通讯。这里我们先简单提一下蓝牙跟wifi的优缺点:
蓝牙:
优点:成本低、功耗低、点对点更方便
缺点:速度慢、信号接收距离有限
WIFI:
优点:速度快、一对多、信号强
缺点:功耗大、成本高
由上可见,物联网的设计中采用蓝牙跟采用WIFI没有绝对的好与不好之分,只有哪种方案更合适。今天呢我们就带领大家来玩一下ESP8266这个WIFI模块
首先我们来说一下这个模块的价格方面,这个模块在某宝上非常便宜,10块钱左右。而且呢模块已经做得特别的成熟,很适合开发者们上手。
ESP8266三种模式:
1:STA 模式:ESP8266模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。
2:AP 模式:ESP8266模块作为热点,实现手机或电脑直接与模块通信,实现局域网无线控制。
3:STA+AP 模式:两种模式的共存模式,即可以通过互联网控制可实现无缝切换,方便操作。
但是呢,ESP8266官方给的文实在是少的可怜呐,而且官方的文档写的有有点类似阿三,初学者也不一定能看懂,那难道我们还能因为这点小困难就抛弃这个廉价的WIFI模块?
那本章节来介绍一下,如何让自己采购的ESP8266模块通过arduino IDE进行编程!
Arduino IDE for ESP8266(Github:https://github.com/esp8266/Arduino),这个是基于Arduino的ESP8266的Broad库。在Github项目页上有安装教程,利用了Arduino 1.6.5的新特性进行在线安装(1.6.4也有,但感觉不如1.6.5好用,github上是使用1.6.5进行配置的)。
1、打开Arduino,选择“首选项”,在“附加开发板管理器网址”中填入http://arduino.esp8266.com/stable/package_esp8266com_index.json,然后点击确定保存这个地址。
2、打开工具->开发板->开发板管理器
3、等待开发板管理器启动完成后,移动到开发板管理器的最下方,可以看到一个esp8266 by esp8266 Community,右下角有个选择版本,选好2.0.0之后点击安装,因为是连接到github上下载(国内可能会被墙,这是下载好的文件http://pan.baidu.com/s/1sjRFe6h,覆盖掉首选项里边那个配置文件的文件夹即可,比如我的路径是C:\Users\Administrator\AppData\Local\Arduino15\preferences.txt,那需要解压出来覆盖掉C:\Users\Administrator\AppData\Local\Arduino15这个文件夹,覆盖之后可能需要重新设定arduino库的地址,因为preferences.txt里边包含有项目的地址)。(现在Arduino IDE for ESP8266已经更新到2.3.0,这是2.3.0的Arduino15包的下载地址:http://pan.baidu.com/s/1mh50myG 建议配合Arduino IDE 1.8.3使用)
安装Board支持包,安装完成后的样子,会显示2.0.0 INSTALLED
首选项设置,在开发板管理器中(Addtional Boards Manager URLs)填入ESP8266的配置地址,红线中的是Arduino15存放的地点
4、下载完成之后可以在开发板选项中看到ESP8266 Module,一般开发就是用Generic ESP8266 Module就行了其它的设置默认。有的板的Flash大小会有差别,具体可以查找板上的Flash芯片型号确定。如果找不到芯片型号可以用例程中的ESP8266->CheckFlashConfig来确定,选择Flash大小小于板上Flash的大小就行,不确定可以先选择512k。
这样子就算是配置完成了,由于本身就是直接烧写8266的Flash,所以并不需要烧写bootloader。
然后就可以测试示例代码了。
当然这里你可以选择测试提供的实例,也可以将下面的测试wifi服务器代码复制上:
通过手机连接上ESP8266,显示同一网段下,当然如果你要是有串口调试器,那样通过电脑去测试ESP8266的效率会更高。
当然,除此之外,可以试试ESP8266WebServer下的AdvancedWebServer,这是一个Web服务器,可以显示由MCU构建的SVG图像,需要修改ssid和password变量为自家的wifi的参数,烧写方式和ESP8266普通的烧写方式是一样的,GPIO0拉低进入烧写模式,给板子复位过后选择下载程序,等下载完毕之后就可以运行了,下载完成之后可以不用拉高GPIO0就会直接运行刚刚下载的程序了。
第三步:通过 arduino 软件选择对应的网络端口就可以进行固件更新了,不过更新的时候要注意不能将 Arduino.begin() 和 ArduinoOTA.handle() 这两个关键函数给更新掉