ESP8266与ESP32做为物联网领域的一股清泉,已经润物很多年了。但凡接触过物联网领域的朋友,基本都听过或者用过这两者之一。
那,作为一个开发者,该如何使用ESP32芯片进行开发呢?
首先我们要清楚一点:物联网是一个新兴的领域,它的出现,把传统的电路、单片机、传感器与网络进行结合,从而实现物在网,信息远程传送的效果。所以这个领域结合了硬件工程师、嵌入式工程师和网络工程师等。
为了方便这几类工程师都能快速学习并进行物联网开发,ESP32支持多种开发语言。
1、首先是C语言。毕竟ESP32内部是有一个32位的单片机的,而说到单片机编程,一般都是C语言。
开发环境分两种:一种是在linux环境下编程,这也是乐鑫(芯片厂家)一开始推荐的。但在linux环境下做单片机程序开发,对国内的工程师来说,实在是太反人类了,所以有了第二种。
国内的一家公司安信可,对乐鑫的芯片做了一个封装,以模组的形式出现在国内大部分工程师面前。同时对开发环境也做了优化,在eclipse的基础上做了针对性的设置,支持ESP8266和ESP32在windows下开发。工具名称是AiThinkerIDE,当前(2020年四月)最新版本是1.0,如下:
2、C/C++语言,平台使用Arduino。不得不说,arduino作为一个开源的电子平台,已经发展到了一个比较成熟的阶段。最开始,arduino只是做为一个教学用的电子平台出现。但由于它开源、友好、简单、好用,任何没有电路、编程基础的人,通过简单的学习都能快速入门。
现在它已经发展成一个成熟的生态,支持mega、stm32、esp8266、esp32等多种型号的微控制器。
arduino的核心早期是用C语言编写的,C语言是面向过程编程的。后来引入了面向对象编程的思想,所以采用C/C++混合编写。
3、lua语言。Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
国内使用Lua开发的话,个人最先想到的是nodemcu。但由于NodeMCU现阶段IDE、固件、模块等各方面均不是很完善,各种莫名错误问题较多且网络资料资源较少,笔者建议:把玩有风险,入坑需谨慎。
4、Micropython。人生苦短,我用python。为了面向微控制器,基于python语言推出了Micropython。可以运行在ESP32上面,语法和python一样,解释性语言,简单,好理解。尤其是有一些域名解析、爬虫需求的时候,Micropython真的是好用的不要不要的。
除此之外,还有js什么的,用的比较少,就不说了。
那么,哪种方式最好?
这里借用网上一位网友的说法:
ESP32支持Lua,Arduino,Micropython,js,c等,快速开发一些小Demo建议采用Arduino、和或者python,网上有不少参考例程,上手快,一般要求也都能满足,但是如果是开发一些对性能要求比较高,功能比较多的应用,建议采用C,用乐鑫官方的esp-idf,乐鑫的文档还是比较给力的,技术支持也比较及时,老外玩这个芯片玩的多,hackio上很多高大上的应用,最近看到这款官方还发布了这个芯片的语音识别开发框架和图像识别开发框架,值得一玩,对了,这个芯片最大的好处就是基本上算是全开源了,github上有好多资料,官方更新比较及时。
好了,更多精彩内容,欢迎关注公众号:单片机爱好者!