Arduino之因此流行多是由于它的学习曲线比较平缓,另外是支持它的第三方程序库很是多,不管在什么平台上都比较容易入门。多年前我曾和一些搞嵌入开发多年的朋友请教,他们更建议我多点尝试STM的开发,Arduino只能在实验室中玩玩很难产品化的,主要缘由是因为芯片生产受权和Arduino嵌入到产品时不少时候都须要添加外围电路而致使生产成本很高。而对于我这种一直从事高级语言开发的人确在很难回退到STM那种让人难受的面向过程式编程方式,而鱼与熊掌是否真能兼得?php
后来玩了IoT好几年了大多数时间都耗在搞4轴上,通讯方式一直也就用着2.4G (nrf2401),之前一直认为这是一种最廉价的组合,用Arduino 作一个应用也是手到拈来。然,当我无心地发现被我扔到角落上的ESP8266时,我在IoT中造成的世界观完全地改变了,由于终于找到了比Arduino 和STM更好的板子和开发方法。鱼与熊掌真能兼得!html
如下是ESP8266的开发板,是用ESP12E的 NodeMCUnode
ESP8266的特色:python
ESP8266家族有不少个系列的产品,比较常见的是 ESP01, ESP12E, ESP07等。这些系列咱们均可以在淘宝上轻松买到,价格都很低。作为开发人员的话可能开发板会更适合咱们多一些,例如 NodeMCU, WeMos , ESP01。他们的芯片都是同样的,只是引脚和外围的配置有些差别。git
近年ESP系列也在不断的改进,多是销量推进了他们的进步吧。乐鑫相继推出了ESP32和ESP8285等的系列,有兴趣了解更多关于芯片的信息能够访问他们的官网:https://www.espressif.com/zh-hans。 至于ESP32系列貌似已经失去了他们的原有的价格优点虽说是32位而后加上蓝牙但实际运用起来对于下位机而言意义并非很大吧(这仅是我我的想法)github
接下来会以ESP01为例,而且使用NodeMCU对ESP8266进行初探。下图为ESP01的实物产品图:macos
[ESP8266 针位]](https://img2018.cnblogs.com/blog/645016/201810/645016-20181014163643238-1540080383.png)编程
CP210x USB to UART Bridge VCP Driver 安装后当接上ESP8266的测试板后死活没法找到该USB转串口的驱动,通过一番折腾终于在 https://blog.sengotta.net/signed-mac-os-driver-for-winchiphead-ch340-serial-bridge/ 上找到答案,这是因为CP210X驱动在Serial上没有合法的签名而致使加载失败( Sierra - macOS 10.12 的安全性被提升了),因此只能下载安装另外一个驱动加以取代:CH304 就是一取代方案。安全
安装后连之前一直没法链接上的Arduino Nano 也被成功驱动了,确实是功夫不负有心人!ide
首先按照下图所示的跳线方式将FTDI转串口的板子与ESP8266链接:
下表为跳线的具体对应
ESP8266 (esp-01) | FTDI Basic interface |
---|---|
RX | TX |
TX | RX |
VCC | VCC 3.3V |
GND | GND |
RESET | 悬空 |
CH_PD | VCC 3.3v |
GPIO-0 | GND |
GPIO-2 | 悬空 |
刷固件时GPIO必须接地
接着按node-emcu-devkit在"Geting Started on OSX"一文的推荐,在Mac下能够用Python的esptool工具来刷ESP8266的固件,在终端用pip来安装esptool:
$ pip install esptool
如下是esptool的具体用法帮助:
安装成功esptool.py后接上ESP8266并在终端里读取一下串行端口的信息
$ esptool.py --port /dev/tty.wchusbserial1430 --baud 115200 read_mac
以上的指令是从串行口的驱动中读取物理的MAC地址(/dev/tty.wchusbserialXXX
就是ESP8266的挂载点) 它将会返回这样的结果:
esptool.py v1.3 Connecting.... MAC: a0:20:a6:14:37:e2
接下来就须要将固件包刷到ESP8266上了,先从node-flasher 下载固件包:
原本有两个的,我只将经常使用的这个放上来,其它的你能够到GitHub上下载
最后,在终端输入如下指令进行固件更新:
$ esptool.py --port /dev/tty.wchusbserial1430 --baud 115200 write_flash 0x0 ./nodemcu-master-10-modules-2015-08-29-11-33-14-float.bin
刷完固件以后就能够开始着手编程了,因为这么多年一直在玩Arduino和树莓,一切硬件开发最终都是采用纯C,因此说开发环境必定是能够通用的,带着这种想法一入手NodeMCU立马想到的就是用Arduino IDE。在下一篇文字中我将会介绍如何用Arduino IDE进行ESP8266的编程。