ESP8266-Arduino杀手?
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 下载固件包:
本来有两个的,我只将常用的这个放上来,其它的你可以到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 驱动下载)
ESP8266-Arduino杀手?的更多相关文章
- 微信硬件平台(一) 公众号 ESP8266 Arduino LED
微信硬件平台 本文目的,使用微信公众号控制ESP8266的LED开和关.进一步使用微信当遥控器(避免写APP或者IOS或者小程序),控制一切设备.给两个关键的总教程参考. 官网教程 微信硬件平台 微 ...
- Arduino杀手在此!!ESP 8266 NodeMCU小白手把手入门(二)(解惑篇)
上一次更新主要是简单介绍了NodeMCU的基本知识并且进行了一次简单的实操演示,最近有一些读者向我提出了一些小问题,所以决定出一期解惑篇,主要针对的是基础知识不是太牢固,或是喜欢刨根问底的小可爱们.里 ...
- Arduino IDE 安装esp8266 2.4.rc2的编译环境
2.4. 版本, 有一个我需要的功能, 串口缓存, 可以修改. Serial.setRxBufferSize(1024); //修改为1024个字节. 安装步骤: 1. 需要FQ. 推荐用" ...
- Arduino ESP8266编程深入要点
Arduino for ESP8266的话,如果不修改代码,默认没有办法进入轻睡眠的省电模式,只能进入Modem Sleep,也就是说Wifi可以暂时睡眠但是CPU没法睡,Modem Sleep最低功 ...
- ESP8266开发之旅 基础篇② 如何安装ESP8266的Arduino开发环境
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ESP8266开发之旅 基础篇③ ESP8266与Arduino的开发说明
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
博主的 ESP8266开发之旅 专栏主要分为三个部分: 基础篇 网络篇 应用篇 从这一篇开始,博主将会带领各位读者在基础篇的基础上进入网络的世界.在此,博主认为各位读者已经具备以下前提 ...
- Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯
1. Arduino IDE配置ESP8266环境 参考:https://www.jianshu.com/p/cb0274d612b5 首先从 Arduino 官网 下载最新版本的 Arduino I ...
- 【ESP8266】发送HTTP请求
一.ESP8266简介 ESP8266 是深圳安信可科技有限公司开发的基于乐鑫ESP8266的超低功耗的UART-WIFI模块的模组,可以方便进行二次元开发,接入云端服务,实现手机3/4G全球随时随地 ...
- Arduino内部网页代理,网页穿透,公网访问Arduino内部网页
#include <ESP8266WiFi.h> const char* id = "id"; //http://www.mcunode.com/proxy/ ...
随机推荐
- 在 Centos 安装 MySQL
MySQL是开源的数据库管理系统,通常作为LEMP(Linux, Nginx, MySQL/MariaDB, PHP/Python/Perl)技术栈的一部分,而被安装.RedHat 会害怕 Oracl ...
- Tmux 日常快捷键 及配置
使用Linux的人不管是开发人员.还是运维人员都不可避免的需要使用到终端模拟器(比如,gnome-terminal)去执行一些命令或者脚本. tmux可以将终端模拟器方便的切分为不同的小窗口如下图如示 ...
- [转] Scala Try 与错误处理
一.概述 当你在尝试一门新的语言时,可能不会过于关注程序出错的问题, 但当真的去创造可用的代码时,就不能再忽视代码中的可能产生的错误和异常了. 鉴于各种各样的原因,人们往往低估了语言对错误处理支持程度 ...
- 阿里云ECS Ubuntu16.0 安装 uwsgi 失败解决方案
Ubuntu安装包时报错 E:Unable to locate package xxx(如:python3-pip) 一般新安装Ubuntu后需要先更新软件源: apt-get update apt- ...
- SpringBoot整合模板引擎
一.SpringBoot整合freemarker: 1.引入freemarker模板依赖: <dependency> <groupId>org.springframework. ...
- Contest Setting 2018 ICPC Pacific Northwest Regional Contest dp
题目:https://vj.69fa.cn/12703be72f729288b4cced17e2501850?v=1552995458 dp这个题目网上说是dp+离散化这个题目要对这些数字先处理然后进 ...
- y7000笔记本 darknet-yolo安装与测试(Ubuntu18.04+Cuda9.0+Cudnn7.1)
环境配置看上一贴 https://www.cnblogs.com/clemente/p/10386479.html 1 安装darknet 1-1 克隆darknet repo git clone h ...
- SDOI2016 R1做题笔记
SDOI2016 R1做题笔记 经过很久很久的时间,shzr终于做完了SDOI2016一轮的题目. 其实没想到竟然是2016年的题目先做完,因为14年的六个题很早就做了四个了,但是后两个有点开不动.. ...
- Python入门学习:1.变量和简单的数据类型
python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 变量,顾名思义是一个可变的量, ...
- [HEOI2015]小Z的房间 && [CQOI2018]社交网络
今天看了一下矩阵树定理,然后学了一下\(O(n ^ 3)\)的方法求行列式. 哦对了,所有的证明我都没看-- 这位大佬讲的好呀: [学习笔记]高斯消元.行列式.Matrix-Tree 矩阵树定理 关于 ...