disk0 发表于 2024-10-25 22:25

【2024 DigiKey创意大赛】 《智能起居室环境控制台》任务报告汇总

本帖最后由 disk0 于 2024-10-26 21:55 编辑

<p align="center"><span style="font-size:24px;"><strong>智能起居室环境控制台</strong></span></p>

<p align="center">&nbsp;</p>

<p align="right">作者:disk0</p>

<p align="right">&nbsp;</p>

<p><span style="font-size:24px;"><strong>一、作品简介</strong></span></p>

<p><b>本项目采用了先进的ESP32-S3-LCD-EV-BOARD作为核心控制单元,该模块以其卓越的性能和丰富的功能,为智能家居系统的构建提供了强大的支持。通过采用I2C通信协议,我们实现了与高精度BME680环境传感器的无缝对接,确保了数据传输的高效性和稳定性。</b></p>

<p><b>BME680</b><b>传感器能够实时监测起居室内的环境参数,包括大气压力、环境温度和相对湿度。这些关键数据的实时获取,不仅为智能家居控制平台提供了坚实的数据基础,而且通过智能算法的分析,能够为用户提供精准的环境监测和控制。</b></p>

<p>&nbsp;</p>

<div style="text-align: left;"></div>

<div style="text-align: left;">&nbsp;</div>

<div style="text-align: left;">&nbsp;</div>

<div style="text-align: left;">
<div style="text-align: left;"></div>
</div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><strong>项目界面</strong></p>

<div style="text-align: left;"></div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:24px;"><strong>二、系统框图</strong></span></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>项目使用CircuitPython 为开发语言,整体设计思路是在核心控制单元使用adafruit_bme680.mpy 库与传感器在I2C总线上通讯,获取 环境数值后,与程序内部的判断函数比较,最后把传感器的值和对应的文本提示显示在屏幕上。</b></p>

<p>&nbsp;</p>

<p><span style="font-size:24px;"><strong>三、各部分功能说明</strong></span></p>

<p><b>第一部分:引入使用的库文件</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>adafruit_bitmap_font </b><b>:主要负责字体,因为项目中使用了汉字,不是micropython 自带字体</b></p>

<p><b>adafruit_display_shapes </b><b>:图形模块,包括常见的长方形 圆形 三角形这些</b></p>

<p><b>adafruit_display_text </b><b>: 显示文本,主要用Label模块</b></p>

<p><b>adafruit_displayio_layout </b><b>: UI 布局,项目中使用了gird布局</b></p>

<p><b>adafruit_imageload </b><b>:&nbsp; 图片显示模块</b></p>

<p><b>adafruit_bme680 </b><b>: BME680 驱动模块</b></p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>下一步,初始化BME680</b></p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>初始化 显示对象 和字体</b></p>

<p><b>字体使用了开源的 得意黑 字体</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>显示 界面头部区域</b></p>

<p> &nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><b>初始化 gird布局</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>初始化 gird布局里的表格单元</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>温湿度 提醒函数,给出当前状态和建议</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><b>循环输出,这里有上电后的延迟读取,因为上电后的首次读取,误差较大。</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:24px;"><strong>四、作品源码</strong></span></p>

<p><b>下载连接 : <a href="https://download.eeworld.com.cn/detail/disk0/634618" target="_blank">https://download.eeworld.com.cn/detail/disk0/634618</a></b></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:24px;"><strong>五、作品功能演示视频</strong></span></p>

<p><iframe allowfullscreen="true" frameborder="0" height="450" src="https://training.eeworld.com.cn/shareOpenCourseAPI?isauto=true&amp;lessonid=41407" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:24px;"><strong>六、项目总结</strong></span></p>

<p><b>通过本项目的实施,不仅了解了ESP32-S3-LCD-EV-BOARD的强大潜力和BME680的高集成化的环境检测解决方案,也在智能家居控制中学到不少知识。一起探索智能家居的无限可能,让科技真正服务于生活,共同迎接更加智能、便捷、舒适的未来生活。</b></p>

<p>&nbsp;</p>

<p><span style="font-size:24px;"><strong>七、其他</strong></span></p>

<p><strong>得捷收到的</strong><b>ESP32-S3-LCD-EV-BOARD 是V1.5版的,当时CircuitPython 只有V1.4的,硬件针脚乐鑫做了改变。</b></p>

<p><b>所以项目前期做了适配,并提交了PR得到了合并,也算对CPY做了小小的贡献。</b></p>

<p><b>V1.5&nbsp;<a href="https://circuitpython.org/board/espressif_esp32s3_lcd_ev_v1.5/" target="_blank">https://circuitpython.org/board/espressif_esp32s3_lcd_ev_v1.5/</a></b></p>

<p><strong>V1.4&nbsp;<a href="https://circuitpython.org/board/espressif_esp32s3_lcd_ev/" target="_blank">https://circuitpython.org/board/espressif_esp32s3_lcd_ev/</a></strong></p>

<p>&nbsp;</p>

<p><strong>众所周知,LVGL 是MCU中比较流行的UI 框架,在C/C++代表的编程项目中很常见页也很亮眼。</strong></p>

<p><strong>但是CPY 目前还没有集合LVGL,所以就想学习下CPY的UI代码实现</strong>,<strong>主要参考&nbsp;<a href="https://learn.adafruit.com/circuitpython-display-support-using-displayio/ui-quickstart" target="_blank">https://learn.adafruit.com/circuitpython-display-support-using-displayio/ui-quickstart</a></strong></p>

<p><b>此外,论坛里的龙哥&nbsp;<a href="https://bbs.eeworld.com.cn/thread-1257054-1-1.html" target="_blank">https://bbs.eeworld.com.cn/thread-1257054-1-1.html</a>&nbsp;,使用图片来实现更漂亮的布局。</b></p>

<p>&nbsp;</p>

<p><b>项目UI中没有做到突破和创新,更别提贡献。但是对我个人而言,跟喜欢做和过去不同的事情、做难的事情,这样才会有挑战自己收获成功的快乐。</b></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<div><br />
<br />
&nbsp;</div>

秦天qintian0303 发表于 2024-10-27 12:30

<p>这是多少分辨率啊?感觉锯齿感挺强的&nbsp; &nbsp;</p>

disk0 发表于 2024-10-29 19:43

秦天qintian0303 发表于 2024-10-27 12:30
这是多少分辨率啊?感觉锯齿感挺强的&nbsp; &nbsp;

<p>字体被我强制拉大了3倍,所以字体锯齿了。</p>

<p>更好的做法是 找大号的字体 去做pcf 字体。</p>
页: [1]
查看完整版本: 【2024 DigiKey创意大赛】 《智能起居室环境控制台》任务报告汇总