ESP32小白入门学习

时间:2024-04-14 09:27:12


辛苦编写未经允许禁止转发
大家好本人第一次使用****写技术文档,如有不足之处多多指教,开门见山,本人在ESP系列开发中是零基础以前也没有用过相关IDE和编译环境,编译工程都是在大神群里软磨硬泡,学习ESP32真的是全是眼泪,本人技术有限所以尽我所能尽量详细的讲一下我怎么调通的ESP32并且连接上了阿里云。

1.如何建立编译环境和准备工作

  1. 下载IDE具体连接如下:IDE安装包

  2. 将下载的安装包放在纯英文路径下开始安装,一定要纯因为路径,是因为中文路径会有编译错误。就这块我整理好久。

  3. 找到AiThinkerIDE_V1.0安装路径下的Config.exe,右键以管理员身份运行,设置各个路径,并且保存。
    ESP32小白入门学习
    ESP32小白入门学习

  4. 打开AiThinkerIDE_V1.0\eclipse下的eclipse.exe开始我们的第一个工程吧!

2.如何编译第一个工程

这里以ESP-IDF工程为例,其他的编译了但是没有详细研究。

  1. 使用eclipse引入工程File->Import
    ESP32小白入门学习
  2. 点击Next,Languages中不选C++,Toolchain for Indexer Settings中选择Cross GCC如下图所示,Browse找到ESP-IDF工程具体路径为C:\Ai-ThinkerIDE-V1.0\AiThinkerIDE_V1.0\msys32\home\aithinker\esp-idf,根据我这个查找你们的工程路径,选中工程后Project Name会自动填上名字如下图所示:
    ESP32小白入门学习
  3. 点击Finish,完成工程引入如下图所示:
    ESP32小白入门学习
  4. 配置工程,首先选中esp-idf工程右键Properties配置工程属性如下图所示:
    ESP32小白入门学习
  5. 首先鼠标焦点点击C/C++Build右侧找到Build directory:这里我选择放入工程的绝对地址,那么工程在哪里呢?他在C:\Ai-ThinkerIDE-V1.0\AiThinkerIDE_V1.0\msys32\home\aithinker\esp-idf\examples这个路径下,各位的安装路径不同需要自己看下自己的路径,那么我们先找到点亮第一个LED的工程examples\peripherals\gpio,那么Build directory:中的地址就是C:\Ai-ThinkerIDE-V1.0\AiThinkerIDE_V1.0\msys32\home\aithinker\esp-idf\examples\peripherals\gpio,如果我们之后要使用MQTT连接阿里云使用的是examples\protocols\mqtt\tcp中的工程,那么Build directory:中的地址就是C:\Ai-ThinkerIDE-V1.0\AiThinkerIDE_V1.0\msys32\home\aithinker\esp-idf\examples\protocols\mqtt\tcp其它工程以此类推,下面我们设置好Build directory并点击Apply如下图所示:
    ESP32小白入门学习
  6. 设置环境变量,双击左侧C/C++Build选择Environment,点击右侧Add,添加Name:IDF_PATH,Value:填工程地址C:\Ai-ThinkerIDE-V1.0\AiThinkerIDE_V1.0\msys32\home\aithinker\esp-idf根据你的工程地址去添加点击OK并点击Apply,再点击OK环境变量配置完成如下图所示:
    ESP32小白入门学习
  7. 构建menuconfig菜单,这个菜单就是配置一些硬件信息,比如串口、wifi连接的账号密码、比特率等相关硬件及工程信息,感兴趣的自己翻一翻,首先esp-idf工程右键Make Target选择Create如下图所示:
    ESP32小白入门学习
  8. 配置menuconfig,取消勾选Same as the target name 与 User builder settings,在Build command 中输入mintty.exe -e make menuconfig,再将Target Name改成menuconfig,这里必须吐槽,原厂的文案中-e是错误的符号应该是减号e这里坑了我两天怎么都不成功,因为我懒是复制粘贴的,添加好后点击OK具体配置如下图所示:
    ESP32小白入门学习
  9. 配置快捷键进行下载,其命令是 make flash ,如果指定端口进行烧录下载固件比如com5 的话,可以这样写:
    make flash ESPPORT=COM5,同样esp-idf工程右键Make Target选择Create,填写内容点击OK如下图所示:
    ESP32小白入门学习
  10. 为了防止编译报一些诡异的错误我们先将工程清空,点击esp-idf右键clean Project清空工程在Bulid Project,Windows下时间真的很长慢慢等待吧,如下图所示。
    ESP32小白入门学习
  11. 工程编译成功,(友情提示,LED的管脚要根据手上的开发板进行配置这个打开例程的main中就能看见)如下图所示:
    ESP32小白入门学习
  12. 烧写程序,首先你得模块应该有出场固件,如果没有先烧写固件烧写固件方式,我烧写的是(NodeMCU-32S 出厂固件下载),如果是默认出场固件那么直接esp-idf工程右键Make Target选择Bulid中的下载,插好硬件并且串口是正确的点击Bulid即可开始工程编译下载如下图所示:
    ESP32小白入门学习
    至此一个LED的工程引入,配置及下载就完成了。上面真的是血泪史没人教却是很难入门。

3.如何配置阿里云

  1. 首先打开网址https://www.aliyun.com点击免费注册这里不细说了,注册好后点击登录,登入完成后点击控制台,进入控制台后点击左上角,弹出产品与服务下拉菜单,再点击产品与服务会出来一堆选项,估计我们物联网的使用频率低你就往下拉吧找到物联网平台选择并进入如下图所示:
    ESP32小白入门学习

  2. 进入物联网平台后映入眼帘的就是快速连接设备,点击开始体验,它会引导你完成第一台设备的注册,这里产品名称:我填入“学习测试”,设备名称MCUIOT如下图所示:
    ESP32小白入门学习

  3. 选择开发包,小白我是Windows,选择Windows,协议MQTT,设备开发包Java比较熟悉(使用前提要配置好JDK)点击下一步,它会生成设备三元组还有个下载的Windows工具包,先点击下载,下载后才能点下一步如图所示:
    ESP32小白入门学习

  4. 第四部配置与测试,解压刚才下载的压缩包,找到start.bat运行批处理命令,你会看见一堆数据,前提你要装了JDK和你电脑连接了网络,同时网页中的设备日志也会有一堆数据,这样一个PC程序就成功连接阿里云了如下图所示:
    ESP32小白入门学习
    ESP32小白入门学习

  5. 你以为这就完事了,那当然不可能了,点击完成后我们会在设备列表里看见我们刚才建立的设备,首先我们点击产品,找到我们建立的学习测试产品,点击查看,我们会看见一个Topic类列表,我们先给这个成品建立一个自定义Topic,点击定义Topic类权限是发布和订阅Topic类名就叫tongxin,描述里我们备注通信,这样只要我们设备订阅了这个Topic类,我们发什么自己也能收到什么点击确定如下所示:
    ESP32小白入门学习

  6. 接下来我们要下载一个软件MQTT.fx,这个软件干嘛用的呢,就是模拟设备连接阿里云,这里有些配置参数我们要知道怎么正确的配置,就这块我研究了很久软件如下图所示:
    ESP32小白入门学习

  7. 网页上我们设置好Topic类后点击左侧设备找到自己设备点击查看,在右侧有个DeviceSecret查看,这个就重要了,这个就是你以后设备连接的三元组**,所谓的一机一密,具体可以看阿里云的文档,反正你看也行记住这些玩应如下图所示:
    ESP32小白入门学习

  8. 有了上面这些参数还不够,你还要下载一个软件进行计算Password生成工具打开sign.html如下图所示:
    ESP32小白入门学习

  9. 将刚才阿里云的设备三元组复制到sign.html网页中productKey、deviceName、deviceSecret,clientld中写个设备标识随便什么都行我这里写的liujiaolong,点击Generate生成password,这个密码干嘛用呢?一会后面会用到记好啊如图所示:
    ESP32小白入门学习

  10. 打开MQTT.fx软件,点击小齿轮进行配置,首先Profile Name你随便写个名字,Profile Type默认的不用改,下面核心了MQTT的连接配置,Broker Address:这里阿里云有自己的规则,但是现在除了头不一样后面全一样,a1y2SagZQEX.iot-as-mqtt.cn-shanghai.aliyuncs.com,这句话你与我不同的就是三元组中的ProductKey,替换了复制到Broker Address即可,Broker Port:1883,Client ID这里面有点说头,刚才咱们不是在计算Password中随便命名了个clientID吗,这里要用到这个clientID,他的组成是这样的“liujiaolong|securemode=3,signmethod=hmacsha1|”没有双引号啊,接下来点击,User Credentials 配置User Name和Password,Password直接复制我们刚才计算生成的Password,UserName命名规则是:deviceName&ProductKey,这样我得UserName就是:MCUIOT&a1y2SagZQEX,填写完成后点击OK,如下图所示:
    ESP32小白入门学习

  11. 配置好参数后点击Connect 右侧小灰圆编程绿色,如果连接错误会返回错误问题,重新查看上述过程,连接成功后我们在网页端也可以看见设备在线,如下图所示:
    ESP32小白入门学习
    ESP32小白入门学习

  12. 下面我们进行订阅与推送,找到我们一开始设置好的自定义Topic列表,复制/a1y2SagZQEX/MCUIOT/user/tongxin这句话如下图所示:
    ESP32小白入门学习

  13. 因为我们这个Topic支持发布和订阅所以一个地址就行了,打开MQTT.fx完成订阅与发布,如图所示:
    ESP32小白入门学习
    ESP32小白入门学习

  14. 首先完成订阅之后我们点击发布hello world我们在订阅处也会收到hello world 因为我们这个Topic即是发布又是订阅如下图所示:
    ESP32小白入门学习

  15. 在阿里云中一样可以查到相关信息,点击日志服务-前往查看-上行消息分析,在MessageID中点击蓝色的数字就能看见刚才发送的消息如图所示:
    ESP32小白入门学习

  16. 在阿里云中点击设备点击刚才建立的设备找到Topic列表->自定义Topic中找到我们定义的Topic点击发布消息,MQTT.fx也会收到相应消息如图所示:
    ESP32小白入门学习
    ESP32小白入门学习
    以上就完成了阿里云的设备注册。

  17. 不知道你是不是记得在注册的时候阿里云给了你一个设备模型,里面有Text和开关量,下面我们玩下它,首先在Topic列表中找到物理模型通信Topic,里面有一个设备属性上报,复制这个类如下图所示:
    ESP32小白入门学习

  18. 这是一个消息的发布,我们这个模型使用的json方式,语法如下
    {“id”:“230788029”,“method”:“thing.event.property.post”,“params”:{“Status”:1,“Data”:“Hello, Liujiaolong!”},“version”:“1.0”}具体的要自己研究了,复制到Publish中推送如图所示:
    ESP32小白入门学习

  19. 在阿里云上的设备中设备详情中的运行状态会看见刚才发送的结果如图所示:
    ESP32小白入门学习
    以上就完成一件大工程,上面这些废话有助于小白快速调通阿里云与ESP32的通信,下面就开始更核心的内容了。

4.如何修改MQTT工程并实现远程连接阿里云

5.如何设备互相通信使用上位机控制开发板LED亮灭