一、项目介绍

这是我们esp32期末课设的项目,因为最近很热所以正好做个风扇吹吹。全部开源,放在文章最后的网盘链接里。用的是以前搭的机械臂的模型,但拆成了只用到两个舵机。

(1)流程图


(2)模块介绍 

语音识别用asrpro,不和esp32连接,单独控制两个舵机实现让风扇上下左右转动。

wifi连接采用自动配网,连接心知天气的生活基本类API,具体可以看心知天气文档:生活指数 | 心知天气文档

提取其中的“穿衣、紫外线强度、感冒、运动”这四个指数,上传到云平台。esp32对相应的数据采取动作,其中加了一个按键控制风扇是否自动开启,如果是关闭状态,那么即使“穿衣”是“炎热、热”,风扇也不转动。

小程序连接云平台,将云平台的设备属性显示出来,并且显示实时时间。

二、云平台设置

(1)onenet云平台创建项目

云平台网站:

OneNET - 中国移动物联网开放平台

云平台的搭建和上传数据我是看这篇文章的:ESP32连接到oneNET云平台,传数据到微信小程序_esp32连接onenet-CSDN博客

注意!标识符是之后写代码需要用到的!数据类型如果是bool,之后写代码的true和false大小写不要写错了!

 在属性这里可以看到我的设备

三、微信小程序

上面可以显示实时时间,然后显示从心知天气获取到的信息,还会给出相应的建议。

关键代码展示:

四、esp32-c3代码

先是setup函数进行各类初始化,loop函数里放需要循环执行的代码。

注释掉的第18行是写死的wifi连接,loop里注释掉的也同样是写死的。自动配网的话需要2.4频段,再用手机下载esptouch,进行配网。

注意,这张截图中的第19行api连接应该放在23行delay后面,先联网在连接api,不然api连接会失败。结尾放的代码里的是修改过的。

大体看一下,前面是各个定义,然后就是各个函数

其中的API_Connect()函数中获取完数据之后会在串口调试输出,因为数据是中文,所以在串口有乱码,但是这个没关系,上传到云平台的不是乱码,是正常的。主要用串口看看有没有数据就好了。

面包板上有一个按键控制风扇到阈值是否自动开启的开关,所以这个按键我主要就是用来控制风扇。

五、语音控制ASRPRO

这个模块单独控制舵机,编程很简单,和拼积木一样。一个引脚控制一个舵机,只需要两个舵机,一个舵机控制上下,一个控制左右。

舵机的设置要在拓展库下载

拓展库的第一个就是,可以直接点击下载

六、总结

之前我一直没有弄出来云平台,所以一直感觉联网这些是很困难的事,这次课设逼自己一把发现其实也不是很难,越来越熟悉了,甚至可以不看教程设置云平台。微信小程序也是,其实不用做的多华丽,能实现想要的功能就好了。就是编写esp的云平台设备上报的时候有点糟心,后面发现其实就是json数据格式写错了,所以一直没有任何反应,这种小细节的错误还是很难发现的,需要自己费心寻找。asrpro之前就买了,闲置了一个学期没有使用,这次也是发现其实很简单,就像之前用arduino一样。

我在b站上传了项目演示视频,想了解整个的运作的可以看看:

【esp32自动配网+获取API+连接云平台+微信小程序+语音识别控制】https://www.bilibili.com/video/BV1cHVSzbEan?vd_source=a780d58d81a9a64c171909614a569c0a

整个项目的全部代码:

 通过网盘分享的文件:ESP32智能风扇项目
链接: https://pan.baidu.com/s/1v4B_rxoWEhFojIs89Jv9tw?pwd=ti21 提取码: ti21

 有其他问题可以在评论区留言或者私信我,我看到了就会回复

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐