在esp32上使用arduino
简介
Arduino是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。
ESP32是一种由Espressif乐鑫信息科技推出的WiFi芯片,专为移动设备、可穿戴电子产品和物联网应用而设计。它具有低功耗性能、双核32位MCU、2.4GHz双模Wi-Fi和蓝牙芯片等特点,适用于物联网和嵌入式系统开发.
为什么要使用Arduino?
有很多的单片机和单片机平台都适合用做交互式系统的设计。例如:Parallax Basic Stamp, Netmedia’s BX-24,Phidgets,MIT’s Handyboard 和其它等等提供类似功能的。 所有这些工具,你都不需要去关心单片机编程繁琐的细节,提供给你的是一套容易使用的工具包。 Arduino同样也简化了同单片机工作的流程,但同其它系统相比Arduino在很多地方更具有优越性, 特别适合老师,学生和一些业余爱好者们使用:
- 便宜 - 和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。
- 跨平台 - Arduino软件可以运行在Windows,Macintosh OSX,和Linux操作系统。大部分其它的单片机系统都只能运行在Windows上。
- 简易的编程环境 - 初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。对于老师们来说,一般都能很方便的使用Processing 编程环境,所以如果学生学习过使用Processing 编程环境的话,那他们在使用Arduino开发环境的时候就会觉得很相似很熟悉。
- 软件开源并可扩展 - Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。
- 硬件开源并可扩展 - Arduino板基于 Atmel 的ATMEGA8 和ATMEGA168/328 单片机。Arduino基于Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。
- Arduino基于AVR平台,对AVR库进行了二次编译封装,把端口都打包好了,寄存器啦、地址指针之类的基本不用管。大大降低了软件开发难度,适宜非专业爱好者使用。优点和缺点并存,因为是二次编译封装,代码不如直接使用AVR代码编写精练,代码执行效率与代码体积都弱于AVR直接编译。
为什么要使用esp32
- 功能强大
自带wifi+蓝牙是最大亮点!一起来看看ESP32的规格,就知道它强在哪里了。
- 内置WiFi和蓝牙,就不需要额外的以太网模块或wifi模块了,集成度高;
- 双核 CPU,可以主频为 80、160 或 240MHz。对于一个体积小巧的芯片中是相当多的计算了;
- 高级外设接口:I2C, SPI, CAN等,可以实现很多应用,不仅仅是个Wi-Fi MCU;
- 大量内存:ESP32包括 512KB 的片上 SRAM 存储器,还支持外部存储器,具体取决于主板,可能高达 4 到 8MB。这意味着ESP32 适用于一些较重的任务,例如连接摄像头、识别语音、从互联网流式传输数据等。
- 价格亲民
- ESP32性价比非常高, 不仅功能强大,而且价格便宜。
- IoT上近乎无敌
stm32是通用芯片,应用更全面;而ESP 32是物联网专用芯片,其算力性能,启动速度,稳定性,耐久度,可操作io数量及类型,啥都够,实在是太好用了。
首先,ESP32的片上资源和引脚接口特别丰富,打造出各种物联网场景智能设备绰绰有余了。现在物联网产品协议使用的最多的还是Wi-Fi,这两年BLE和BLE Mesh也发展的很快,Zigbee反而日渐势微,而ESP32同时支持Wi-Fi和蓝牙,加上其超高的性价比,前景不可限量。
其次,在嵌入式开发者中,ESP系列芯片深入人心,在国内某宝/B站以及国外youtube等上面都能找到大量有意思的开发者作品。ESP8266资源太少,而且只支持Wi-Fi,加上现在ESP32的价格也已经非常便宜了,如果想打造一个智能设备,首选ESP32完全OK。
再次,现在已经是物联网的时代了,开发出的智能设备也不能只停留在开发台上,希望能远程控制,访问。但是想要同时做好智能设备开发、连接云端服务、手机设备程序等全链路开发难度还是不小的。而ESP32有云端一体的全链路开发框架,开发远程硬件应用就很方便,比如做个家里燃气/火焰/甲醛检测设备,发现危险就推送消息到手机。
使用arduino自带IDE
可以在Arduino官网直接下载安装即可
使用arduino自带IDE开发Esp32,可以参考这篇文章。
在VScode上使用PlatformIO IDE用Arduino开发Esp32
强烈推荐这个方式,使用起来非常方便。
在VScode上安装PlatformIO拓展
使用PlatformIO创建新的project,Board选择Espressif esp32 Dev Module,然后选择Arduino框架(建议使用自己的目录而不是默认目录)。
这时候就可以在VScode上编写代码,编译,上传了。
参考资料
[1]ESP32使用Arduino环境,安装、编译、下载、安装库_arduino esp32-CSDN博客
[2]使用PlatformIO IDE在VScode上开发Arduino Esp32_platformio 删除库-CSDN博客