Arduino之所以流行可能是因为它的学习曲线比较平缓,另外是支持它的第三方程序库非常多,无论在什么平台上都比较容易入门。多年前我曾和一些搞嵌入开发多年的朋友请教,他们更建议我多点尝试STM的开发,Arduino只能在实验室中玩玩很难产品化的,主要原因是由于芯片生产授权和Arduino嵌入到产品时很多时候都需要添加外围电路而导致生产成本很高。而对于我这种一直从事高级语言开发的人确在很难回退到STM那种让人难受的面向过程式编程方式,而鱼与熊掌是否真能兼得?

后来玩了IoT好几年了大多数时间都耗在搞4轴上,通信方式一直也就用着2.4G (nrf2401),以前一直认为这是一种最廉价的组合,用Arduino 做一个应用也是手到拈来。然,当我无意地发现被我扔到角落上的ESP8266时,我在IoT中形成的世界观彻底地改变了,因为终于找到了比Arduino 和STM更好的板子和开发方法。鱼与熊掌真能兼得!

以下是ESP8266的开发板,是用ESP12E的 NodeMCU

ESP8266的特点:

  • 用于快速原型的开发板,售价也就在10人民币左右 (Arudino + WIFI 可不止这个数)
  • ESP8266系列是中国公司生产的,在芯片授权上要比Arduino容易多了
  • 完全兼容Arduino上的库(绝大多数都兼容),这样可以将Arduino上的很多开发经验平滑过渡其上
  • 提供硬件的高级接口,如果采用NodeMCU的固件还可以使用micropython或者lua进行高级语言编程

ESP产品家族

ESP8266家族有很多个系列的产品,比较常见的是 ESP01, ESP12E, ESP07等。这些系列我们都可以在淘宝上轻松买到,价格都很低。做为开发人员的话可能开发板会更适合我们多一些,例如 NodeMCU, WeMos , ESP01。他们的芯片都是一样的,只是引脚和外围的配置有些差异。

近年ESP系列也在不断的改进,可能是销量推动了他们的进步吧。乐鑫相继推出了ESP32和ESP8285等的系列,有兴趣了解更多关于芯片的信息可以访问他们的官网:https://www.espressif.com/zh-hans。 至于ESP32系列貌似已经失去了他们的原有的价格优势虽然说是32位然后加上蓝牙但实际运用起来对于下位机而言意义并不是很大吧(这仅是我个人想法)

ESP8266开发环境准备

接下来会以ESP01为例,并且使用NodeMCU对ESP8266进行初探。下图为ESP01的实物产品图:

[ESP8266 针位]](https://img2018.cnblogs.com/blog/645016/201810/645016-20181014163643238-1540080383.png)

解决无法在Mac连接ESP8266的问题

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 也被成功驱动了,确实是功夫不负有心人!

如何在macOS上刷NodeMCU的固件

首先按照下图所示的跳线方式将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 下载固件包:

  • nodemcu_integer_0.9.5_20150318.bin

本来有两个的,我只将常用的这个放上来,其它的你可以到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 IDE编程

刷完固件之后就可以开始着手编程了,由于这么多年一直在玩Arduino和树莓,一切硬件开发最终都是采用纯C,所以说开发环境一定是可以通用的,带着这种想法一入手NodeMCU立马想到的就是用Arduino IDE。在下一篇文字中我将会介绍如何用Arduino IDE进行ESP8266的编程。

相关资源

  • NodeMCU Build 生成自定义的固件
  • ESP8266的中国生产厂官网 资源不少
  • Quick Start to NodeMCU ESP8266 on Arudino IDE
  • NodeMCU Lua
  • EXPlorer IDE 官网下载
  • ESP8266 WiFi 模組 AT command 測試
  • ESP8266的详细AT指令参考
  • CH304 驱动下载)

转载于:https://www.cnblogs.com/Ray-liang/p/9786827.html

ESP8266-Arduino杀手?相关推荐

  1. NODEMCU学习笔记-01 esp8266 WIFI杀手 源码上传版

    NODEMCU学习笔记-01 esp8266WIFI杀手 动手前的准备 NODEMCU和ESP8266 ARDUINO IDE GITHUB CSDN 让我们开始吧 连接开发板并安装驱动 安装ardu ...

  2. ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器

    ESP8266 Arduino开发之路(2)- 连接到无线WiFi路由器 一.前言 ESP8266可以通过WiFi连接到无线路由器,这种方式和手机通过WiFi连接无线路由器的模式是相同的,我们称该模式 ...

  3. 和ESP8266 Arduino谈场恋爱

    非著名情感博主 IoT小能手 twowinter,耗费数月心血,编著长篇言情小说<和ESP8266 Arduino谈场恋爱>,为广大技术宅男传授深度撩妹技巧.是时候了,关掉屏幕上的波多野结 ...

  4. 和ESP8266 Arduino谈场恋爱 03 玩几个例程

    前言 开发环境搭起来,找几个例程玩起来. 非著名情感博主 IoT小能手 twowinter,耗费数月心血,编著长篇言情小说<和ESP8266 Arduino谈场恋爱>,为广大技术宅男传授深 ...

  5. 和ESP8266 Arduino谈场恋爱 02 这神奇的程序烧写

    前言 开发环境搭起来了,接着这篇笔记就要实现程序的烧写. 非著名情感博主 IoT小能手 twowinter,耗费数月心血,编著长篇言情小说<和ESP8266 Arduino谈场恋爱>,为广 ...

  6. 和ESP8266 Arduino谈场恋爱 01 一条具有中国特色的开发环境安装道路

    前言 废话不多说,环境先搞起来. 非著名情感博主 IoT小能手 twowinter,耗费数月心血,编著长篇言情小说<和ESP8266 Arduino谈场恋爱>,为广大技术宅男传授深度撩妹技 ...

  7. ESP8266+Arduino实现控制【开关外设装置-记录一】

    具体实现功能:网页+APP 实现控制舵机等IO操作. 1.使用 AP 模式提供WiFi接入,终端设备通过 Web 网页实现舵机控制: 2.使用串口连接蓝牙模组,提供蓝牙接入,终端设备通过手机APP实现 ...

  8. ESP8266 Arduino 串口监视器输出乱码原因

    最近在学习ESP8266 Arduino的时候,发现串口输出乱码,原因是串口波特率不匹配,一般Arduino默认9600波特率,图示如下: 而ESP8266 波特率是115200,也有可能是其他波特率 ...

  9. ESP8266+Arduino的入门级开发---显示天气预报

    物联网现在是方兴未艾啊,很多单片机均具备了物联网开发的基本功能,选择最快捷的开发方式可以缩短研发周期,降低研发成本,下面介绍ESP8266+Arduino的开发方式 一.环境搭建(这块最难,但是这里不 ...

  10. ESP8266 Arduino OLED

    一.参考 Adafruit的SSD1306驱动https://blog.csdn.net/tiandiren111/article/details/122019747 U8G2参考https://bl ...

最新文章

  1. 世界上有没有无法破解的密码?揭秘量子通信 | 图图是道
  2. CentOS6 操作系统安装方法
  3. [YTU]_2536( C++ 长方体继承自矩形)
  4. 2021-10-16 集合(set)与映射(map) 恋上数据结构笔记
  5. [react] react中setState的第二个参数作用是什么呢?
  6. 解析 Linux 中的 VFS 文件系统机制
  7. 深入理解jQuery插件开发(转)
  8. 快速数论变换(NTT)
  9. 前端小白程序员入门之前知道这些,半年后都拿到8K+的offer
  10. fedora下java环境配置
  11. 月历1997年php代码_php自动生成月历的代码
  12. 小工具—系统API应用
  13. java中的 关键词vali_Java中的关键字volatile详解
  14. 《红楼梦》的香气韵调
  15. 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
  16. php实现aes ecb模式加密,PHP、Python、Java的AES ECB加密实现-Fun言
  17. php校验苹果账号返回invalid_client
  18. W25Q128华邦Flash调试踩坑
  19. AR9344开发环境的搭建和编译固件
  20. 安装Microsoft .NET Framework 4.5失败解决办法

热门文章

  1. 小程序源码:经典语录大全微信小程序源码下载多种分类语录-多玩法安装简单
  2. 2018电大计算机操作题怎么评分,2018年度电大专科计算机应用基础学习知识win7系统上机操作技巧题操作技巧.doc...
  3. OpenGrok简单使用
  4. bootstrap介绍
  5. 洛谷 P2142 高精度减法
  6. 关于实习、校招的科普
  7. 使用000webhost.com免费主机搭建一个WordPress站点
  8. 山东航天九通车联网:大数据技术引领为智慧物流赋能
  9. react图片剪裁react-cropper
  10. RSA host key for xxx has changed and you have requested strict checking.