#define ENCODER_DO_NOT_USE_INTERRUPTS
#include <OneButton.h>
#include <ESP8266httpUpdate.h>
#include <LittleFS.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <Encoder.h>
#include <TimeLib.h>
#include <NtpClientLib.h>
#include <DHT.h>
volatile int netw;
volatile int beepw;
volatile int tempw;
String data_net9;
String data_beep9;
String data_temp9;
String updateUrl;
OneButton button2(2,true);
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";
DHT dht0(0, 11);
void attachDoubleClick2() {
endover = 2;
Serial.println(String("end:") + String(endover));
}
void attachClick2() {
keyenter = 1;
}
typedef struct
{
uint8_t current;
uint8_t up;//向上翻索引号
uint8_t down;//向下翻索引号
uint8_t enter;//确认索引号
uint8_t changan;//长按确认
void (*current_operation)();
}key_table;
//定义日期时间结构体变量
struct
{
unsigned char month;
unsigned char day;
unsigned char hour;
unsigned char minute;
} date = {0};
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 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(25,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);
u8g2.sendBuffer(); // 开显示
}
void menu30() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(28,2);
u8g2.print("关于菜单系统");
u8g2.setCursor(2,20);
u8g2.print("可添加自定义菜单栏目");
u8g2.setCursor(35,35);
u8g2.print("琢磨侠编制");
u8g2.setCursor(55,48);
u8g2.print("2022.3.10");
u8g2.sendBuffer(); // 开显示
}
void menu29() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("菜单设置29");
u8g2.setCursor(0,20);
u8g2.print(String("LCD3:") + String("Mixly"));
u8g2.setCursor(0,36);
u8g2.print(String("LCD3微调:") + String("Mixly"));
u8g2.sendBuffer(); // 开显示
}
void menu28() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("菜单设置28");
u8g2.setCursor(0,20);
u8g2.print(String("LCD2:") + String("Mixly"));
u8g2.setCursor(0,36);
u8g2.print(String("LCD2微调:") + String("Mixly"));
u8g2.sendBuffer(); // 开显示
}
void menu27() {
update();
}
void menu26() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("菜单设置26");
u8g2.setCursor(0,20);
u8g2.print(String("LCD:") + String("Mixly"));
u8g2.setCursor(0,36);
u8g2.print(String("LCD微调:") + String("Mixly"));
u8g2.sendBuffer(); // 开显示
}
void menu25() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("菜单设置25");
u8g2.setCursor(0,20);
u8g2.print(String("当前温度:") + String(dht0.readTemperature()));
u8g2.setCursor(0,36);
u8g2.print(String("湿度:") + String(dht0.readHumidity()));
u8g2.sendBuffer(); // 开显示
}
void menu24() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("菜单设置24");
u8g2.setCursor(40,16);
u8g2.print("声音设置:");
u8g2.setCursor(92,16);
u8g2.print("O N 0");
u8g2.drawFrame(94,15,16,14);
u8g2.sendBuffer(); // 开显示
beepw = 0;
Write_beep(String("") + String(beepw));
}
void menu23() {
u8g2.clearBuffer();//清屏
u8g2.setFont(u8g2_font_wqy12_t_gb2312a);
u8g2.setFontPosTop();
u8g2.setCursor(40,2);
u8g2.print("菜单设置23");
u8g2.setCursor(40,16);
u8g2.print("声音设置:");
u8g2.setCursor(95,16);
u8g2.print("OFF 1");
u8g2
没有合适的资源?快使用搜索试试~ 我知道了~
esp8266 u8g2 LittleFS LCD编码器菜单系统
共2个文件
mix:1个
txt:1个
需积分: 48 16 下载量 145 浏览量
2022-10-19
09:52:45
上传
评论 1
收藏 26KB ZIP 举报
温馨提示
arduino mixly esp8266 u8g2 LittleFS LCD编码器菜单系统
资源详情
资源评论
资源推荐
收起资源包目录
菜单系统.zip (2个子文件)
a菜单.mix 110KB
菜单系统.txt 17KB
共 2 条
- 1
琢磨侠
- 粉丝: 157
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0