毕业设计 单片机墨水屏阅读器(单词卡) - 物联网 嵌入式

2023-12-28 04:30

本文主要是介绍毕业设计 单片机墨水屏阅读器(单词卡) - 物联网 嵌入式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 0 前言
  • 1 简介
  • 2 主要器件
  • 3 实现效果
  • 4 设计原理
  • 部分核心代码
  • 5 最后


0 前言

🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 基于单片机的墨水屏阅读器(单词卡)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:5分

1 简介

基于esp12-f和汉朔213二手价签开发,可实现单词阅读、默写,多词库共存,支持上下翻页,名著阅读模式支持极速上下翻页,支持多书籍进度保存,休眠等等,后续将升级更多功能实现多语种支持等等。

2 主要器件

  • ESP12-F
  • 汉朔2.13寸电子价签

3 实现效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 设计原理

ESP -12F模块整体介绍
该模块核心处理器 ESP8266 在较小尺寸封装中集成了业界领先的 Tensilica L106 超低功耗 32 位微型 MCU,带有 16 位精简模式,主频支持 80 MHz 和160 MHz,支持 RTOS,集成 Wi-Fi MAC/ BB/RF/PA/LNA,板载天线。该模块支持标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。用户可以使用该模块为现有的设备添加联网功能,也可以构建独立的网络控制器。ESP8266 是高性能无线 SOC,以最低成本提供最大实用性,为 WiFi 功能嵌入其他系统提供无限可能。
在这里插入图片描述

接口说明
在这里插入图片描述
汉朔2.13寸电子价签

汉朔2.13寸的电子价签,闲鱼上面价格比较便宜,大部分在7块钱一个
内核为MSP4302553,驱动原理图如下:
在这里插入图片描述

部分核心代码

#include <LittleFS.h>
//#include <SD.h>
#define key2         0   //中间的按键,也是烧录按键
#define key3         5   //右边的按键,进入默写模式的按键
#define key4         13
#include <U8g2_for_Adafruit_GFX.h>
#include <GxEPD2_BW.h>
#include "gb2312.c"
#include "img.c"
#define SPI_SPEED SD_SCK_MHZ(20)
#define SD_CS           5
#define bat_switch_pin  12          // 电池电压读取开关
#define bat_vcc_pin     A0          // 读取电池电压引脚,不能超过1V
//#include "FS.h"
#include <EEPROM.h>
#define RST_PIN 0 // D3(0)
//GxEPD2_BW<GxEPD2_290_T94, GxEPD2_290_T94::HEIGHT> display(GxEPD2_290_T94(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM029T94
//GxEPD2_BW<GxEPD2_213, GxEPD2_213::HEIGHT> display(GxEPD2_213(/*CS=*/ 16, /*DC=D3*/ 0, /*RST=*/ -1, /*BUSY=*/ 4));
GxEPD2_BW<GxEPD2_213, GxEPD2_213::HEIGHT> display(GxEPD2_213(/*CS*/ 15, /*DC*/ 0, /*RST*/ 2, /*BUSY*/ 4));
U8G2_FOR_ADAFRUIT_GFX u8g2Fonts;
//int dis_count = 0; //判断局刷或全刷
bool f_word = false;
bool flag = true;
float bat_vcc = 0.0;                // 电池电压
void power_sleep();//低压休眠
#include "bat_data.h"
#include "displaycode.h"
File story_dataFile;//小说#include "BookRead.h"
extern const uint8_t chinese_gb2312[253023] U8G2_FONT_SECTION("chinese_gb2312");/*8266接线方式:busy--D2 4res--D4 2dc--D3 0cs--D8 15clk--D5 14din--D7 13gnd--gvcc--3v3
*/
int x = 10, y = 55;
bool read_state = false; //标记阅读/默写模式void setup()
{// put your setup code here, to run once:Serial.begin(115200);Serial.println("开始");pinMode(key2, INPUT_PULLUP); //INPUT_PULLUPpinMode(key3, INPUT_PULLUP); //INPUT_PULLUPSerial.println("setup");digitalWrite(RST_PIN, HIGH);pinMode(RST_PIN, OUTPUT);delay(20);digitalWrite(RST_PIN, LOW);delay(20);digitalWrite(RST_PIN, HIGH);delay(200);display.init();EEPROM.begin(256);int f1 = EEPROM.read(0);int f2 = EEPROM.read(4);if (f1 == f2 && f1 == 255) {EEPROM.write(0, 0);EEPROM.commit();EEPROM.write(4, 0);EEPROM.commit();}u8g2Fonts.begin(display);//将u8g2连接到displaydisplay.setRotation(3);display.firstPage();display.fillScreen(GxEPD_WHITE);float batVCC = getBatVolNew();if (batVCC < 3) {power_sleep();}/*判断当前是学习模式还是小说模式 */int read_mode = EEPROM.read(65);if (read_mode == 1) {if (LittleFS.begin()) { //(SD_CS, SPI_SPEED)){Serial.println("SD 启动成功");} else {Serial.println("SD 未能成功启动");}Serial.println("小说模式");display.nextPage();get_story_name();} else {Serial.println("学习正常启动");init_study();button();}
}
void init_read() {if (!LittleFS.begin()) // mount the file system{Serial.println("文件获取失败,请先上传文件!");return;}
}
void init_study() {display.drawInvertedBitmap(0, 0, logo, 250, 122, GxEPD_BLACK);//  display.drawInvertedBitmap(0, 0, logo2, 296, 128, GxEPD_BLACK);display.nextPage();display.setPartialWindow(0, 100, 255, 22);//局刷提示字样u8g2Fonts.setForegroundColor(GxEPD_BLACK);  // 设置前景色u8g2Fonts.setBackgroundColor(GxEPD_WHITE);if (!LittleFS.begin()) // mount the file system{Serial.println("文件获取失败,请先上传文件!");u8g2Fonts.setCursor(0, 120);u8g2Fonts.print("文件获取失败,请先上传文件!");return;}display.fillScreen(GxEPD_WHITE);u8g2Fonts.setFont(chinese_gb2312);u8g2Fonts.setCursor(0, 120);Serial.println("文件获取成功!");u8g2Fonts.print("文件系统启用成功!");String wordbookname_temp = selectbook();if (LittleFS.exists(wordbookname_temp)) {Serial.println("有");} else {Serial.println(" 没有.");display.fillScreen(GxEPD_WHITE);u8g2Fonts.setFont(chinese_gb2312);u8g2Fonts.setCursor(0, 120);u8g2Fonts.print("上次打开文件不存在!将进入文件管理");display.nextPage();delay(1000);display.setFullWindow();display.fillScreen(GxEPD_WHITE);draw_word_file_dir();}display.nextPage();
}
void power_sleep() {display.setFullWindow();display.fillScreen(GxEPD_WHITE);display.drawInvertedBitmap(0, 0, low_power, 250, 122, GxEPD_BLACK);display.nextPage();delay(500);ESP.deepSleep(0);
}
void loop()
{
}

5 最后

这篇关于毕业设计 单片机墨水屏阅读器(单词卡) - 物联网 嵌入式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/545065

相关文章

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

基于Python实现PDF动画翻页效果的阅读器

《基于Python实现PDF动画翻页效果的阅读器》在这篇博客中,我们将深入分析一个基于wxPython实现的PDF阅读器程序,该程序支持加载PDF文件并显示页面内容,同时支持页面切换动画效果,文中有详... 目录全部代码代码结构初始化 UI 界面加载 PDF 文件显示 PDF 页面页面切换动画运行效果总结主

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

每日一练7:简写单词(含链接)

1.链接 简写单词_牛客题霸_牛客网 2.题目 3.代码1(错误经验) #include <iostream>#include <string>using namespace std;int main() {string s;string ret;int count = 0;while(cin >> s)for(auto a : s){if(count == 0){if( a <=