毕业设计 单片机墨水屏阅读器(单词卡) - 物联网 嵌入式
创始人
2024-04-27 03:18:05

文章目录

  • 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 
//#include 
#define key2         0   //中间的按键,也是烧录按键
#define key3         5   //右边的按键,进入默写模式的按键
#define key4         13
#include 
#include 
#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 
#define RST_PIN 0 // D3(0)
//GxEPD2_BW display(GxEPD2_290_T94(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEM029T94
//GxEPD2_BW display(GxEPD2_213(/*CS=*/ 16, /*DC=D3*/ 0, /*RST=*/ -1, /*BUSY=*/ 4));
GxEPD2_BW 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 最后

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...