当前位置:   article > 正文

arduino mixly esp8266 u8g2 LittleFS LCD编码器菜单系统_mixly编码器示例

mixly编码器示例

最近无聊做了 mixly esp8266的菜单系统。为什么要写这个系统原因很简单,平时做玩意时或调试的时候控制很是麻烦。所以就做了这个系统。以后用着方便。菜单思路来源网络。开始感觉很简单,真的做起来确实很麻烦。所以我也狠狠的学习了一下。水平有限做的很LOW。

先说一下需要的硬件。
esp8266 一个
12864 lcd
EC11 编码器 一个
DHT11 可有可无
介绍一下功能:
编码为控制菜单 上 下 单击(确定) 双击(关闭菜单) 长按 (返回) 菜单参数存贮采用LittleFS存储!替代了EEPROM
菜单两种显示方式:文字 和 图片 下边为图方式
上图看真相:
主页面
在这里插入图片描述
设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下边是我做的库 LittleFS
在这里插入图片描述
LittleFS 示例代码
在这里插入图片描述
程序图在这里插入图片描述
太多只上部分代码:

#define ENCODER_DO_NOT_USE_INTERRUPTS
#include <LittleFS.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <Encoder.h>

#include <TimeLib.h>
#include <NtpClientLib.h>
#include <OneButton.h>
#include <DHT.h>

volatile int netw;
volatile int beepw;
volatile int tempw;
String data_net9;
String data_beep9;
String data_temp9;
U8G2_ST7565_LX12864_F_4W_SW_SPI u8g2(U8G2_R0,/* clock=*/ 14,/* data=*/ 13,/* cs=*/ 15,/* dc=*/12, /* reset=*/16);
volatile long newPos;
volatile int Pos;
volatile int keyup;
volatile int keydown;
volatile int keyenter;
volatile int keydley;
volatile int endover;
Encoder encoder_1(5,4);

int8_t timeZone = 8;
const PROGMEM char *ntpServer = "ntp1.aliyun.com";
OneButton button2(2,true);
DHT dht0(0, 11);

typedef struct
{
  uint8_t current;
  uint8_t up;//向上翻索引号
  uint8_t down;//向下翻索引号
  uint8_t enter;//确认索引号
  uint8_t changan;//长按确认
  void (*current_operation)();
}key_table;


uint8_t func_index=0;
void (*current_operation_index)();
void menu11();
void menu12();
void menu13();
void menu14();
void menu15();
void menu16();
void menu17();
void menu18();
void menu19();
void menu20();
void menu21();
void menu22();
void menu23();
void menu24();
void menu25();
void menu26();
void menu27();
void menu28();
void menu29();
void menu30();
key_table table[20]=
{
//页   上  下  确定 返回  菜单项
  {0,  1,  7,   8,   0, (*menu11)},
  {1,  2,  0,   10,  0, (*menu12)},
  {2,  3,  1,   12,  0, (*menu13)},
  {3,  4,  2,   14,  0, (*menu14)},
  {4,  5,  3,   15,  0, (*menu15)},
  {5,  6,  4,   16,  0, (*menu16)},
  {6,  7,  5,   17,  0, (*menu17)},
  {7,  0,  6,   19,  0, (*menu18)},

  {8,  9,  9,   0,   0, (*menu19)},
  {9,  8,  8,   0,   0, (*menu20)},
  {10, 11, 11,  0,   0, (*menu21)},
  {11, 10, 10,  0,   0, (*menu22)},
  {12, 13, 13,  0,   0, (*menu23)},
  {13, 12, 12,  0,   0, (*menu24)},
  {14, 14, 14,  0,   0, (*menu25)},
  {15, 15, 15,  0,   0, (*menu26)},
  {16, 16, 16,  0,   0, (*menu27)},
  {17, 17, 17,  0,   0, (*menu28)},
  {18, 18, 18,  0,   0, (*menu29)},
  {19, 19, 19,  0,   0, (*menu30)},

};
void attachDoubleClick2() {
  endover = 2;
  Serial.println(String("end:") + String(endover));
}

void attachClick2() {
  keyenter = 1;
}

void attachLongPressStart2() {
  keydley = 1;
}

void encode() {
  Pos = encoder_1.read();
  if (Pos != newPos) {
    newPos = Pos;
    keyup = newPos;
    keydown = newPos;

  }
}

void shibai() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(15,20);
  u8g2.print("无WiFi网络请配网");
  u8g2.sendBuffer(); // 开显示
}

void menu18() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("关于");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,95);
  u8g2.sendBuffer(); // 开显示
}

void menu17() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("关于");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,268);
  u8g2.sendBuffer(); // 开显示
}

void menu16() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("其它");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,104);
  u8g2.sendBuffer(); // 开显示
}

void menu15() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("LCD");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,222);
  u8g2.sendBuffer(); // 开显示
}

void menu14() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("温度");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,136);
  u8g2.sendBuffer(); // 开显示
}

void menu13() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("声音");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,277);
  u8g2.sendBuffer(); // 开显示
}

void menu12() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("网络");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,175);
  u8g2.sendBuffer(); // 开显示
}

void menu11() {
  u8g2.clearBuffer();//清屏
  u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
  u8g2.setFontPosTop();
  u8g2.setCursor(53,52);
  u8g2.print("设置");
  u8g2.setFont(u8g2_font_open_iconic_all_6x_t);
  u8g2.drawGlyph(42,-48+6*8,129);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209

需要留言的吧。全部开源。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/351569
推荐阅读
  

闽ICP备14008679号