毕业设计 单片机墨水屏阅读器(单词卡)

阅读: 评论:0

毕业设计 单片机墨水屏阅读器(单词卡)

毕业设计 单片机墨水屏阅读器(单词卡)

文章目录

  • 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 = ad(0);int f2 = ad(4);if (f1 == f2 && f1 == 255) {EEPROM.write(0, 0);EEPROMmit();EEPROM.write(4, 0);EEPROMmit();}u8g2Fonts.begin(display);//将u8g2连接到displaydisplay.setRotation(3);display.firstPage();display.fillScreen(GxEPD_WHITE);float batVCC = getBatVolNew();if (batVCC < 3) {power_sleep();}/*判断当前是学习模式还是小说模式 */int read_mode = ad(65);if (read_mode == 1) {if (LittleFS.begin()) { //(SD_CS, SPI_SPEED)){Serial.println("SD 启动成功");} else {Serial.println("SD 未能成功启动");}Serial.println("小说模式");Page();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);Page();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 (ists(wordbookname_temp)) {Serial.println("有");} else {Serial.println(" 没有.");display.fillScreen(GxEPD_WHITE);u8g2Fonts.setFont(chinese_gb2312);u8g2Fonts.setCursor(0, 120);u8g2Fonts.print("上次打开文件不存在!将进入文件管理");Page();delay(1000);display.setFullWindow();display.fillScreen(GxEPD_WHITE);draw_word_file_dir();}Page();
}
void power_sleep() {display.setFullWindow();display.fillScreen(GxEPD_WHITE);display.drawInvertedBitmap(0, 0, low_power, 250, 122, GxEPD_BLACK);Page();delay(500);ESP.deepSleep(0);
}
void loop()
{
}

5 最后

本文发布于:2024-02-01 02:40:48,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170672645033284.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23