Arduino Core For ESP8266
如果选择纯C作为ESP8266的开发,有两个途径:
- 使用乐鑫官方原生的 RTOS-SDK或者NONOS-SDK
- 使用Arduino IDE
- 使用PlatformIO
作为一个“Arduino 移民”当然最好能用Arudino IDE来作为ESP8266的开发环境了,至少使用Arduino IDE可以省去不少开发环境配置的麻烦,要知道配置一个用于固件开发的纯C环境可不是容易的事,得天天折腾Make这个著名而古老的自动化工具。所以我并不会进直采用乐鑫(ESPressif )的RTOS-SDK或者NONOS-SDK,因为那个得自已配置C环境,那对于一直使用高级语言开发而并被Jetbrains 的优秀IDE系列“宠坏”的我来说无疑是一种折磨,而做开发应该是一种享受而不是受罪,所以还是回到 Arduino 的怀抱好一些。
其实用不用Arduino IDE 还是其次,重要的是我想用Arduino 框架来开发而不是原生SDK。ESP8266这个可以多框架开发的芯片让我在选择框架的时候确实是作了一番的挣扎。我曾在 Espressif , NodeMCU 和 ESP Arduino 这种三框架之间徘徊了很久才最终想通了自已所要的:适当的情况下用适当的框架,三者皆为我所用!这样说可能和没说一样,其实并不是这样的,因为三种框各有优劣才导致出现选择困难的。
先来说说Espressif 也就是 乐鑫的官方SDK,Arduino ESP (Arduino Core For ESP8266) 和 NodeMCU 都是其于它的,是原生框架。乐鑫又提供了两种不同的SDK 一种是 RTOS-SDK 另一个叫NONOS-SDK 它们主要差异点如下:
- Non-OS SDK - 主要使用定时器和回调函数的方式实现各个功能事件的嵌套,达到特定条件下触发特定功能函数的目的。Non-OS SDK 使用 espconn 接口实现网络操作,用户需要按 照 espconn 接口的使用规则进行软件开发。
- RTOS SDK - RTOS 版本 SDK 使用 freeRTOS 系统,引入 OS 多任务处理的机制,用户可以使用 freeRTOS 的标准接口实 现资源管理、循环操作、任务内延时、任 务间信息传递和同步等面向任务流程的设计方式。具体接口使用方法参考 freeRTOS 官方网站的使用说明或者 USING THE FREERTOS REAL TIME KERNEL--A Practical Guide 介绍。
- RTOS 版本 SDK 的网络操作接口是标准 lwIP API,同时提供了 BSD Socket APIsocket 接口的封装实现,用户可以直接按照socket API的使用方式来开发软件应用,也可以直接编译运行其他平台的标准 Socket 应用,有效降低平台切换的学习成本。
- RTOS 版本 SDK 引入了 cJSON 库,使用该库函数可以更加方便的实现对 JSON 数据包的解析。
- RTOS 版本兼容non-OS SDK中的Wi-Fi接 口、smart config接口、Sniffer相关接口、系统接口、定时器接 口、FOTA接口和外围驱动接口,不支持AT实现。
NodeMCU是采用 NONOS-SDK 和 NodeLua 的开发框架,而Arduino ESP就是基于RTOS-SDK和Arduino Core的开发框架,但很显示RTOS是最好的一种选择!
当然如果你是个Geeker,从来不喜欢开发工具而且又是个硬件工程师那无疑Expressif的原生SDK绝对是最佳选择,那我推荐使用安信可官方的开发工具系列,感觉上虽然很难用(因为我个人很讨厌eclipse ide)。安信可有个官方的百度网盘(具体地址到他们官网找吧),他们将所有的资料和资源都丢在那里,有兴趣的朋友可以到那里搜刮一下。
Arduino Core for ESP8266 是基于RTOS-SDK的,而且更新得比较快。我选择它的最重要一点是它有OTA (over-the-air Update) 而 NodeMCU没有!
这里是 Arduino Core for ESP8266 的Github,他们的源码和配置方法都有。
要Arduino IDE支持ES2688就需要添加驱动支持,可以按以下的方法操作,先打开 Arduino IDE的偏好设定,然后在"Additional Boards Manager URLS"一栏上加入以下的地址:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
然后在选择板子的菜单内点击“Boards Manager”:
![Arduino IDE 偏好设定]](https://img2018.cnblogs.com/blog/645016/201810/645016-20181014164449705-1122837838.png)
待Boards Manager加载成功后就会找到的ESP8266的驱动:
重打开工具>开发板菜单就会发现Arudino Core For ESP8266所能支持的板子了:
选对板子,插上一个LED 来写个最简单Blink程序:
void setup() {
// initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
上传成功后一切有如用Arduino来编程。
Arduino Core For ESP8266 有极为之丰富的资源,除了可以兼容Arduino 绝大多数的库之外还有很多的第三方库支持,这一点做得当相不错,点击库管理可以查看和安装到Arduino IDE中来:
唯一比较坑爹的是你一定要确保你的机器在终端内访问git的速度是没有问题的,或者你的机器是已经翻墙了的,否则上所讲的内容基本与你缘分,由于我们伟大的“墙”脑残地将GitHub的部分地址给屏了,如果不翻过去基本下载不了板子的定义与库定义。
Arduino Core For ESP8266的更多相关文章
- ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
博主的 ESP8266开发之旅 专栏主要分为三个部分: 基础篇 网络篇 应用篇 从这一篇开始,博主将会带领各位读者在基础篇的基础上进入网络的世界.在此,博主认为各位读者已经具备以下前提 ...
- ESP8266开发之旅 进阶篇② 闲聊Arduino IDE For ESP8266烧录配置
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- Arduino上搭建ESP8266环境
我尝试了各种方法都无法在Arduino上安装ESP8266的环境,最后发现离线安装最稳妥. 1. 下载安装包,提取码:pktw 2. 将安装包内所有文件拷贝到C:\Users\Administrato ...
- Arduino IDE搭建ESP8266开发环境,文件下载过慢解决方法 | ESP-01制作WiFi开关教程,改造宿舍灯
1. Arduino IDE配置ESP8266环境 参考:https://www.jianshu.com/p/cb0274d612b5 首先从 Arduino 官网 下载最新版本的 Arduino I ...
- 基于arduino UNO R3+ESP8266控制LED灯的开关(无USB转TTL工具实现)
最近由于项目要求,需要开发物联网云平台,而本人对硬件和通信技术一窍不通,故而选择arduino这一简单单片机来实现学习掌握基础的硬件和通信技术. 下面就是本人通过查阅大佬资料做的一个整合版本的通过手机 ...
- Arduino IDE for ESP8266 项目云盒子(2)一键自配置+网页服务器
https://item.taobao.com/item.htm?spm=a230r.1.14.20.eYblO3&id=521945102409&ns=1&abbucket= ...
- Arduino IDE for ESP8266 项目(4)HTTP客户端+服务端
Arduio for esp8266 官网API:http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html 很有 ...
- Arduino IDE for ESP8266 项目(1) 点亮灯+按键LED+pwm
官方文档 http://esp8266.github.io/Arduino/versions/2.1.0/doc/libraries.html 引脚口说明 http://yfrobot.com/thr ...
- Arduino IDE for ESP8266 ()esp8266项目 WIFI攻击器
https://www.wandianshenme.com/play/esp8266-nodemcu-create-portable-wifi-jammer/ 使用 ESP8266 制作 WiFi 干 ...
随机推荐
- php 接口与前端数据交互实现
最近在做前后端数据交互的尝试,也跳了很多坑,使用的是php+bootstrap-table+js,把一些收获记录在这里,方便查询. 这个小项目,仅有3个文件,分别为: crud.html data.p ...
- 将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败
调试别人的存储过程,然后报错了 将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败 这让我一通找.找了一个多小时. 通过这个错可以知道,错误肯定是在联表 字段 ...
- css属性总结
前言 有些属性不是很常用,但是工作中遇到了,记录一下,方便学习. 1.text-indent text-indent 属性规定文本块中首行文本的缩进.主要实现就像word那种首行缩进的效果. 详解ht ...
- python第一百零七天-- Django 基础 2
1.Django请求的生命周期 路由系统 -> 试图函数(获取模板+数据=>渲染) -> 字符串返回给用户 2.路由系统 /index/ -> 函数或类.as_view() / ...
- Ubuntu下启动 Redis时, 提示 "Can't open the log file: Permission denied failed"
问题来源:在删除var目录下的log文件时,将redis文件夹删除了.然后在重启时:/etc/init.d/redis-server start,提示: Starting redis-server: ...
- Python中关于with open file as 的用法
最近用到python来处理文本文件了,然后需要处理文件.发现python中提供的with open as 这个还是用的不错的!好的,废话不多说了,看下例子: with open('./sig ...
- 一文读懂SpringCloud与Eureka,Feign,Ribbon,Hystrix,Zuul核心组件间的关系
概述 毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术.不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓 ...
- 【工匠大道】升级Mac下的svn,解决命令行不能使用svn的问题
本文地址 原文地址 一. 为什么要升级SVN? 因为MAC上默认安装的是1.6版本,在使用时经常会提示SVN版本太旧,所以一定要升级 二. 怎么升级? 所有软件安装都是这三步吧,哈哈 第一步: 下载 ...
- 我使用的Bem的习惯
在基于BEM命名思想的基础上,我整理一些实用的点: BEM,B即block(块),E即element(元素),M即modifier(修饰符) 块:最顶层,可包含块和元素 元素:被块包含,通常为最终被包 ...
- angular5 组件通信(一)
用了两年angular1,对1的组件通信比较熟练,最直接的就是直接使用scope的父子节点scope就可以实现,且基本都是基于作用域实现的通信:还有就是emit,broadcast,on这几个东西了. ...