FastBond2阶段2-基于ESP32完成的桌面小电视
ESP32桌面小电视,定位于桌面小摆件,平时办公、学习偶尔摸摸鱼,盯着屏幕看一看,了解时间、天气、及生活指数等,其实望着屏幕上的自定义壁纸,也别有风味。
标签
嵌入式系统
STM32
bianshuyebianxie32
更新2023-11-28
重庆电力高等专科学校
486

项目介绍:

ESP32桌面小电视,定位于桌面小摆件,平时办公、学习偶尔摸摸鱼,盯着屏幕看一看,了解时间、天气、及生活指数等,其实望着屏幕上的自定义壁纸,也别有风味。

市场介绍:

桌面小电视是尺寸较小、适合放置在桌面上的电视产品。它具有便携、占用空间小、视觉效果好等特点,适合在家庭、办公室、学校等场所使用。

 

随着人们对生活品质的要求不断提高,桌面小电视市场需求逐渐增加。尤其是在疫情期间,居家办公、在线教育等需求的增加,更加推动了桌面小电视市场的发展。

总体来说,桌面小电视市场前景广阔,未来还将不断推出更加智能化、高品质的产品,满足消费者的多样化需求。

设计思路:

很多时候都是打算看一下手机时间,打开手机之后,却看东看西花了大半个小时,为了解决这一大痛点,所以就打算设计一个只能看时间的装置,并在此基础上做出一些拓展。

框图介绍:

https://www.digikey.cn/schemeit/project/890098-dab0458282b1453399890294bd1514cb

FjMrZ81ZeAvlFFa9uTKLcZvAq8Xz

esp32自带WiFi模块和蓝牙模块,因此只需要从网络上获取时间和天气信息即可,并可以与手机相连,进行屏幕显示内容的自定义,十分方便好用。

原理介绍:

FnZ0QJ5kf85BrQhsWvKlbrv62-cI

主控芯片用的是ESP32,在外围用ch340k芯片和相关的器件搭出了一个程序自动下载电路和供电电路,再加上屏幕的驱动电路,就构成了小电视的基本电路。由于电路设计上的错误,光敏电阻自动调节亮度和按键切换模式的功能转到软件端完成。

硬件介绍:

  1. 硬件部分包含ESP32-WROOM-32模组+1.54寸 240*240 ST7789屏幕+模式按钮+光感,使用模组的原因是稳定可靠,可减少很多外围部件;ST7789屏幕,是可以满足此项目的所有需求的;模式按钮主要用于启动时进行相关参数设置,如更换主屏动画、进入配网模式等等,单按钮设置,程序思路也很简单,根据按下的时长,松开按钮后设置参数;光感就是主要用于屏幕背光得自动控制,根据光线强弱自动调节屏幕背光,当夜间熄灯情况下,屏幕背光关闭,很适合卧式内使用,不会因为屏幕微光影响睡眠等。
  2. ESP32芯片集成了双核处理器,主频高达240MHz,具有丰富的外设接口,包括通用串行接口、SPI、I2C、I2S、PWM、UART等。它还具有高性能的Wi-Fi和蓝牙模块,支持802.11b/g/n无线协议和蓝牙4.2 BLE协议,并且支持多种安全加密算法。

    ESP32芯片还具有丰富的存储器选项,包括片上闪存、外部SPI闪存和PSRAM。这使得它适用于各种应用,包括物联网、智能家居、工业自动化、智能健康设备等。

    开发ESP32芯片的应用程序可以使用乐鑫提供的ESP-IDF(ESP32 IoT Development Framework)开发框架,该框架提供了丰富的软件库和工具,用于快速开发和调试应用程序。此外,开发人员还可以使用Arduino IDE、MicroPython等开发工具进行开发。

    总之,ESP32是一款低功耗、高性能的Wi-Fi和蓝牙双模芯片,适用于各种应用领域。它具有双核处理器、丰富的外设接口和存储器选项,以及强大的无线通信功能。通过使用乐鑫提供的开发框架和开发工具,开发人员可以快速开发和调试ESP32应用程序。

PCB相关:

FhYWK31-8Gs3n9AFv5fomNEQdUEi

由于初次使用kicad绘制pcb,不太熟悉各种快捷键,导致花费了很多时间。但上手以后我觉得它十分的好用,首先它对电脑性能要求不高,其次包含各种库,十分方便,对中文的支持也十分友好。绘制完成后,进行设计检查时,报出的各种错误也十分清晰。总之十分好用。在使用的时候我遇到的问题就只有对kicad不熟悉,日后我会多用这个软件,解决掉这个问题。

关键代码:

时间显示:

//星期
String week(){
  String wk[7] = {"日","一","二","三","四","五","六"};
  String s = "周" + wk[weekday()-1];
  return s;
}

//月日
String monthDay(){
  String s = String(month());
  s = s + "月" + day() + "日";
  return s;
}
//时分
String hourMinute(){
  String s = num2str(hour());
  backLight_hour = s.toInt();
  s = s + ":" + num2str(minute());
  return s;
}

String num2str(int digits)
{
  String s = "";
  if (digits < 10)
    s = s + "0";
  s = s + digits;
  return s;
}

void printDigits(int digits)
{
  Serial.print(":");
  if (digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

天气显示:

if(millis() - weaterTime > 600000){ //600000 1分钟更新一次天气
    getCityWeaterFlag = false;
    getCityCodeFlag = false;
    weaterTime = millis();
    getCityWeater();
  }
  scrollBanner();
  ButtonscrollBanner();
  imgDisplay();
}

效果展示:

Fn_Oer-AQH-CIpnSaX9oBqCi3DKAFmrSc3gOxDrPkAsDa5RuvXKpQYGVFrpmAWwtnDdN_hX0PKhtwqa1ehlF

心得体会:

 

参加“How2Make”设计大赛是一次非常有意义的经历。在这次比赛中,我学到了很多关于设计和创意的知识,并且也收获了很多宝贵的经验和心得。

首先,我觉得在参赛前要充分了解比赛的主题和要求。这样可以帮助我更好地理解比赛的目的,并且能够更准确地把握设计的方向。比赛的主题是设计一个创新的产品,所以我在创意方面进行了大量的思考和研究。我浏览了很多相关的设计作品和创意产品,从中汲取灵感,并且尝试将自己的创意与现有的产品进行结合,以达到独特和创新的效果。

其次,我觉得团队合作是非常重要的。在比赛中,我选择了一个有相同兴趣和目标的团队合作。我们共同讨论和研究了设计的方向和理念,并且分工合作,互相帮助和支持。团队合作不仅可以减轻个人的压力,还可以通过不同的观点和意见来提高设计的质量和创新性。

此外,我觉得持续的学习和改进是非常重要的。在比赛中,我不断地学习新的设计技术和方法,并且不断地改进和完善我的设计方案。我参加了一些相关的培训和讲座,也与一些专业人士进行了交流和讨论。通过不断地学习和改进,我能够提高我的设计水平,并且更好地应对比赛的挑战。

最后,我觉得参加这样的设计比赛是一次非常宝贵的经验。通过参赛,我不仅能够锻炼自己的设计能力,还可以展示自己的创意和才华。同时,比赛也是一个很好的学习和交流的机会,我可以与其他优秀的设计师进行交流和学习,从中汲取灵感和经验。参加这样的比赛不仅可以提高自己的设计水平,还可以扩展自己的人脉和机会。

总的来说,参加“How2Make”设计大赛是一次非常有意义的经历。通过这次比赛,我学到了很多关于设计和创意的知识,并且也收获了很多宝贵的经验和心得。我相信这次经历将对我的设计事业产生积极的影响,并且我期待着参加更多的设计比赛和活动。

遇到的困难就是对ch340芯片的周围电路不太熟悉,导致烧录程序不太顺利,后来与团队的小伙伴一起查数据手册,请教老师等方法一起攻克了这一问题。

 

软硬件
电路图
附件下载
ESP32 Desktop TV.kicad_sch
ESP32 Desktop 小电视TV- PCB.kicad_pcb
4M_Flash_CLOCK.zip
团队介绍
大学goal的一支队伍
团队成员
hei
wangye
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号