之前写完了OneNet的基本使用,接下来就是关于ESP32的部分了,这个可以跟着官网走,这一部分会介绍一下esp32几个模块——WiFi、mqtt和rs485的使用,其中WiFi和mqtt主要是跟着博主矜辰所致来做的,她讲的巨巨详细!这篇plog就介绍一下esp32的编译环境的搭建和get-started的学习吧!其中搭建环境会很少,重点是get-started的学习。
一、 ESP32编译环境的搭建
关于环境搭建这一块儿,我选择的是Vscode+ESP-IDF的环境,不过说来惭愧啊呜呜呜呜唔,因为可能是电脑的问题,所以我没在自己的电脑上搭建成功,在安装esp-idf的时候就卡在97.25%,然后就不动了,最后还是有朋友给我分享了带有这个环境的虚拟机,我直接把虚拟机撞到了我自己的电脑上,然后才可以进行ESP32的开发的。所以,具体的环境搭建大家可以自行search博文,网上超级多。
如果也和我一样尝试一周都安装不了的话,可以私聊我,我把虚拟机发给你,不过这个虚拟机的操作系统是Linux不是Windows,选择Linux的原因是因为Windows的安装包太大了,我的小电脑装上以后就会巨卡,所以是Linux,不过这个操作系统用起来问题倒不大,因为我也从没用过Linux,简单介绍一下咋用吧,巨简单!
首先打开虚拟机界面就如下图所示,点击VSCODE的图标就可以开始进行VsCode的开发了。
打开Vscode之后,就会出现下图界面,可以直接点击打开文件夹打开文件,也可以直接把文件拖进来。
这里有一个很重要的tips!!!
那就是文件一定要是最小的目录,如果不是最小的目录,可能编译的时候会无法编译或者是下载出问题,所以,文件一定要是最小目录。举个例子:
也就是说打开文件的时候,就打开smart_config就可以了!!!!
打开文件以后,就会是以下界面:
看到最下面蓝色的一栏,来简单介绍一下它们的作用:
点击这个,选择连到电脑的usb口,一定要是USB字样的,才可以下载。
这个是选择芯片的类型,这个嘛,你用啥就选啥咯,我是S3就选的S3,然后这个点好芯片以后,还有有一个三选一,选第一个就可以了。
这个就是一个系统配置,不是每个项目都会用到,但是比如你用的WiFi,它可能需要用这个界面来设置WiFi用户名和密码;比如你用到485了,它就会需要这个界面来配置串口号、波特率等等。所以就是分项目,有时候会用到。
这个就是编译啦,不多说,编译成功会出现“Build successfully”。
这个小闪电是下载,下载之前需要先选择下载的方法,也就是点击五角星,我用的串口,所以选择UART,选好以后就可以点击小闪电啦,下载成功会出现“Flash successfully”。
这个是监控窗口,也就是用来打印日志的。
其他的图标我也没用过了,就不介绍了,大家可以自行了解!
好,那环境的搭建就介绍到这里啦!
二、get-started的学习
可以看到,get-started里面有三个项目,1blink是led灯的闪烁,2hello_world是打印hello_world,3sample_project就是一个简单的工程模板了。那我们按照程序员那一套来,介绍一下hello_world吧!
那正式了解之前,先看看它的实现效果吧!
ok能看到它是打印hello world之后打印芯片信息,然后倒计时10s重启。再反复执行!
void app_main(void)
{
printf("Hello world!\n");
/* Print chip information */
//获取芯片信息
esp_chip_info_t chip_info;
esp_chip_info(&chip_info);
printf("This is %s chip with %d CPU core(s), WiFi%s%s, ",
CONFIG_IDF_TARGET,
chip_info.cores,
(chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
(chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
unsigned major_rev = chip_info.full_revision / 100;
unsigned minor_rev = chip_info.full_revision % 100;
printf("silicon revision v%d.%d, ", major_rev, minor_rev);
printf("%dMB %s flash\n", spi_flash_get_chip_size() / (1024 * 1024),
(chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
printf("Minimum free heap size: %d bytes\n", esp_get_minimum_free_heap_size());
for (int i = 10; i >= 0; i--) {
printf("Restarting in %d seconds...\n", i);
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
printf("Restarting now.\n");
fflush(stdout);
esp_restart();
}
代码起始很简单,首先是printf()函数,打印hello world,然后换行。之后就是通过官方的函数来进行一个获得芯片信息的操作等等!
好了,就到这儿吧,感觉很简单,能在小电脑窗口看到这些信息就说明你的环境没问题了,并且你也学会esp32的初步开发了!