【2024 DigiKey创意大赛】+基于大语言模型的智能家居平台+最终提交贴
本帖最后由 SeasonMay 于 2024-10-29 22:55 编辑<div style="text-align: center;"><strong><span style="font-size:22px;">基于大语言模型的智能家居平台</span></strong></div>
<div style="text-align: right;"><span style="font-size:22px;"><strong>作者:</strong><span style="font-weight: bold;">SeasonMay</span></span></div>
<div> </div>
<div><span style="font-size:18px;"><strong>一、作品简介</strong></span><br />
本作品以乐鑫的ESP32-S3-LCD-EV-BOARD为家居平台的核心主控,搭配以DFROBOT的TCS3200颜色传感器(SEN0101)以及Adafruit的15x7矩阵灯板作为家居平台的主要演示场景平台,并以Adafruit的Feather TFT ESP32-S3作为协控中心,处理器件与上位机等的通信服务等任务。全家福如下:</div>
<div style="text-align: center;"></div>
<div>1.ESP32-S3-LCD-EV-Board 是一款基于 ESP32-S3 芯片的屏幕交互开发板,通过搭配不同类型的 LCD 子板,可以驱动 IIC、SPI、8080 以及 RGB 接口的 LCD 显示屏。同时它还搭载双麦克风阵列,支持语音识别和近/远场语音唤醒,具有触摸屏交互和语音交互功能,满足用户对多种不同分辨率以及接口的触摸屏应用产品的开发需求。</div>
<div>2. TCS3200颜色传感器(SEN0101)是一款全彩的颜色检测器,包括了一块TAOS TCS3200RGB感应芯片和4个白色LED灯,TCS3200能在一定的范围内检测和测量几乎所有的可见光。TCS3200有大量的光检测器,每个都有红绿蓝和清除4种滤光器。每6种颜色滤光器均匀地按数组分布来清除颜色中偏移位置的颜色分量。内置的振荡器能输出方波,其频率与所选择的光的强度成比例关系。</div>
<div>3.Adafruit的两个板卡,自然不用多说,在此前得捷的Follow Me等活动就有过出场,性能强大,功能丰富,作为本次任务的辅助器件,也起到了非常关键的作用。</div>
<div><span style="font-size:18px;"><strong>二、系统框图</strong></span><br />
本项目的设计框图如下所示,其中大致可以分为三部分,首先是PC机上的云端服务,负责提供flask的总体通信交互框架,用于不同板卡间以及与上位机的通信交互,同时也在上位机上部署了大语言模型的推理服务,在通过ESP32-S3-LCD-EV-BOARD的LVGL界面完成与用户的人机交互,收集到用户的意向(比如通过文本输入等)后,经由GPT-4o模型的分析,通过Function Call等技术完成推理,进行决策,下发需要完成的任务,如开灯、开启空调等,而这些细节任务的执行则由Adafruit的ESP32板辅助完成。</div>
<div><strong style="text-align: center;"></strong></div>
<div> </div>
<div><span style="font-size:18px;"><strong>三、各部分功能说明</strong></span></div>
<div>首先在上位机pc上启动flask服务以及大语言模型推理服务的接口,启动成功如图所示:</div>
<div><strong style="text-align: center;"></strong></div>
<div>然后将Adafruit的ESP32S3板卡与矩阵灯板以及SEN0101传感器相连(本项目主要使用其4个闪亮的白色LED灯,用以模拟家庭环境中的开灯如白炽灯场景),连接对应引脚,配置完I2C地址后,上电,可以看到默认情况下,灯板以及LED灯都是熄灭状态,而ESP32由于烧录的CPY固件,因此板载的小屏幕上会显示输出信息,可以看到板子上电后连接到wifi,并且自动显示地址,并且已经在监听5005端口,等待大语言模型下发的指令传递至此,从而继续操作其他两个外设。</div>
<div style="text-align: center;"></div>
<div>将ESP32的EV板上电,可以看到基于LVGL构建的交互界面,最上方显示连接wifi后分配的IP地址,中间则是一个文本输入框,用来接收用户输入的文字文本信息,下方一个按钮,用来确认用户输入的信息。</div>
<div style="text-align: center;"></div>
<div>点击文本输入框,界面会自动弹出一个软键盘,方便用户直接输入信息,免去要外接键盘的麻烦。</div>
<div style="text-align: center;"></div>
<div>然后用户可以自由输入感受、想法等等一切文本信息,借由大语言模型的出色的理解能力,可以与用户共情,懂你所想,从而完成用户需要的任务。比如这里输入“it is night already”,并点击确认,首先会回显确认信息,然后借由flask服务将文本信息转发至PC机,基于Function Call技术进行大语言模型处理。</div>
<div style="text-align: center;"></div>
<div>这里查看大语言模型输出可以发现,模型成功意识到现在天色已晚,潜台词需要开灯照明了</div>
<div style="text-align: center;"></div>
<div>然后查看“白炽灯”状态,果然已经由大语言模型智能处理,打开了灯泡开始照明,“Enjoy your brightness”!</div>
<div style="text-align: center;"></div>
<div>同理,可以输入如“I am hot”之类的主观感受,大语言模型也会懂你意思,指挥开启空调服务</div>
<div style="text-align: center;"></div>
<div>而且也可以输入比如“I am so bored”让大模型帮忙找点乐子,然后就会发现大模型用灯板摆了些字符图案什么的逗你开心</div>
<div style="text-align: center;"></div>
<div>具体细节可以通过视频观看了解,总体来说,智能性以及可拓展性还是很强的。</div>
<div><span style="font-size:18px;"><strong>四、作品源码</strong></span></div>
<div>https://download.eeworld.com.cn/detail/SeasonMay/634838</div>
<div><span style="font-size:18px;"><strong>五、作品功能演示视频</strong></span></div>
<div style="text-align: center;"><iframe allowfullscreen="true" border="0" frameborder="no" framespacing="0" height="450px" scrolling="no" src="//player.bilibili.com/player.html?bvid=BV1McS8YbEiR&page=1" width="700px"></iframe><br />
</div>
<div><span style="font-size:18px;"><strong>六、项目总结</strong></span></div>
<div>最后,首先还是要感谢EEWorld和得捷电子举办这个活动,让我能够学习到这么多知识,也可以将之前计划许久的项目付诸实践,虽然有些许地方不太完美,还有不少优化空间,但我也会继续学习,早日将这些不足进行完善 ,下面是一些学习过程中整理的知识分享链接,供参考,感谢观看!</div>
<div>项目中学习知识分享链接:</div>
<div>1.开箱贴:<a href="https://bbs.eeworld.com.cn/thread-1291486-1-1.html">https://bbs.eeworld.com.cn/thread-1291486-1-1.html</a></div>
<div>2.ESP32学习分享贴:<a href="https://bbs.eeworld.com.cn/thread-1297569-1-1.html">https://bbs.eeworld.com.cn/thread-1297569-1-1.html</a></div>
<div>3.大语言模型学习分享贴:<a href="https://bbs.eeworld.com.cn/thread-1297572-1-1.html">https://bbs.eeworld.com.cn/thread-1297572-1-1.html</a></div>
<p><!--importdoc--></p>
页:
[1]