博主的 ESP8266开发之旅 专栏主要分为三个部分:
- 基础篇
- 网络篇
- 应用篇
从这一篇开始,博主将会带领各位读者在基础篇的基础上进入网络的世界。在此,博主认为各位读者已经具备以下前提:
- 读者具有C语言以及Arduino的开发知识;
- 读者已经可以自行烧写成功 Arduino Core For ESP8266的固件;
1. Arduino Core For ESP8266是什么?
一开始刚接触Arduino Core For ESP8266的时候,博主和很多初学者一样,表示一脸懵逼,这到底是个什么鬼?
对于开发人员来说,要想提高个人开发能力,必须知其然,并知其所以然。所以,万能的github能告诉我们这个到底是什么?请点击传送门 Arduino Core For ESP8266 github。说到底,它就是一个在Arduino平台上开发ESP8266的插件,特别适合有Arduino开发经验的入门者。
同时,Arduino Core For ESP8266也有专门的官方文档说明,请点击传送门 ESP8266 Arduino Core。这个链接地址上的文档说明,建议初学者多次认真阅读,包含较多api方法说明。
Arduino core for ESP8266为ARPUNO环境下的ESP8266芯片提供了支持。它允许您使用熟悉的Arduino函数和库编写代码,并直接在ESP8266上运行它们,不需要外部微控制器。
ESP8266 Arduino内核提供了使用TCP和UDP通过WiFi进行通信的库,设置HTTP、mDNS、SSDP和DNS服务器,进行OTA更新,在闪存中使用文件系统,使用SD卡、伺服器、SPI和I2C外围设备。
2. Arduino core for ESP8266库
为了向大家更好地讲解Arduino Core For ESP8266,麻烦大家 Arduino Core For ESP8266 github 代码clone或者download下来,然后用查看代码的IDE工具打开,博主这里使用了webstorm,可以看到以下的代码结构:
。
目前,我们需要重点关注libraries目录,该目录下的库就是我们编写代码的基础库。博主根据库的作用,给读者整理了一个百度脑图,后期根据学习进度适量更新:
仔细分析上图,根据功能区分,可以分为:
- Arduino功能,把ESP8266 当做 Arduino来使用
- SD —— SD卡库
- Servo —— 伺服电机库
- Wire —— I2C库
- SPI —— spi库
- EEPROM —— eeprom库
- WiFi功能,其中又可以分为网络服务功能以及无线更新ESP8266功能。提供了使用TCP和UDP通过WiFi进行通信的库等等。
- ESP8266WiFi —— wifi基础功能
- ESP8266HTTPClient —— http客户端功能
- ESP8266WiFiMulti —— ESP8266WiFi多连接功能
- ESP8266WebServer —— 局域网web服务器功能
- WiFiUdp —— UDP服务
- ESP8266mDNS —— 局域网本地发现功能
- DNSServer —— 真正的DNS域名服务
- ArduinoOTA —— OTA无线更新
读者重点关注脑图中的引入二字,后续的代码编写中会引入各种头文件,到时读者就应该知道具体的头文件拥有什么样的功能。
3. 总结
本篇主要带读者从源码结构上初略理解Arduino core for ESP8266的整体库结构,让大家有个初步认识,干货不多,敬请原谅。