#include <Wire.h>
#include <U8glib.h> // https://github.com/olikraus/u8glib/
#include "rus10x20.h"
#include "rus9x18.h"
#include "rus8x13.h"
#include "rus5x7.h"
#include "rus6x13.h"
#include "rus6x10.h"
#include "MyDigitsHelveticaBold24.h"
unsigned long last_press = 0;
int temp = 35;
int Menu = 0;
byte flag = 0;
int ButtonClick = 0;
int ButtonClick_prew = 1;
int MenuFlag = 0;
const int pin_SW = 3; // Подключение кнопки
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI
const uint8_t ArTermometr[]U8G_PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0xFC, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x0E, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0E, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x07, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x1F, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0C, 0x63, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x1C, 0x63, 0x80, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3C, 0x63, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0x60, 0xE0, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE0, 0x60, 0x70, 0x00, 0x00, 0x00,
0x00, 0x01, 0xC0, 0xF0, 0x30, 0x00, 0x00, 0x00,
0x00, 0x01, 0xC3, 0xFC, 0x38, 0x00, 0x00, 0x00,
0x00, 0x01, 0x87, 0xFE, 0x18, 0x00, 0x00, 0x00,
0x00, 0x03, 0x87, 0xFE, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x03, 0x0F, 0xFF, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x03, 0x0F, 0xFF, 0x0C, 0x00, 0x00, 0x00,
0x00, 0x03, 0x0F, 0xFF, 0x0C, 0x00, 0x00, 0x00,
0x00, 0x03, 0x0F, 0xFF, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x03, 0x8F, 0xFE, 0x1C, 0x00, 0x00, 0x00,
0x00, 0x03, 0x87, 0xFE, 0x18, 0x00, 0x00, 0x00,
0x00, 0x01, 0x83, 0xFC, 0x38, 0x00, 0x00, 0x00,
0x00, 0x01, 0xC1, 0xF8, 0x38, 0x00, 0x00, 0x00,
0x00, 0x00, 0xE0, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0xF0, 0x00, 0xF0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x78, 0x01, 0xE0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3E, 0x0F, 0xC0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char PROGMEM EnTermometr[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00,
0x06, 0x00, 0x07, 0x82, 0x41, 0xE0, 0x00, 0x20, 0x07, 0xC0, 0x1F, 0xE4, 0x27, 0xFC, 0x01, 0xE0,
0x01, 0xF0, 0xF8, 0x0C, 0x32, 0x0F, 0x07, 0x80, 0x00, 0x3F, 0xC0, 0x04, 0x20, 0x03, 0xFE, 0x00,
0x00, 0x06, 0x00, 0x03, 0xC0, 0x00, 0x60, 0x00, 0x04, 0x00, 0x03, 0x80, 0x00, 0xE0, 0x00, 0x20,
0x07, 0x80, 0x1F, 0xE0, 0x07, 0xFC, 0x01, 0xE0, 0x01, 0xF0, 0xF8, 0x7C, 0x1E, 0x0F, 0x07, 0x80,
0x00, 0x3F, 0xC0, 0x0F, 0xF8, 0x03, 0xFE, 0x00, 0x00, 0x0F, 0x00, 0x01, 0xC0, 0x00, 0x70, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
const unsigned char PROGMEM batteryV[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 0xFE, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x00, 0x00, 0x83, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00,
0x00, 0x1F, 0x3F, 0xFF, 0xFF, 0x7F, 0xF8, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00,
0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x01, 0xF0, 0x00,
0x00, 0x00, 0xC0, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x20, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0xC0, 0x00, 0x40, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0x40, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0xC0, 0x00, 0xC0, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0xC0, 0x00, 0x80, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0xC0, 0x01, 0x80, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0xC0, 0x01, 0x80, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0xC0, 0x03, 0x80, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0xC0, 0x07, 0x80, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0xC0, 0x07, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0x40, 0x0F, 0x38, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x1F, 0xF0, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0x00, 0x01, 0xE0, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x01, 0xE0, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0x00, 0x01, 0xC0, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x01, 0x80, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0xC0, 0x01, 0x80, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x03, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x02, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0x00, 0x04, 0x00, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x01, 0xF0, 0x00,
0x00, 0x0C, 0x00, 0x1F, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x0C, 0x00, 0x3F, 0xFF, 0xFF, 0xF0, 0x00,
0x00, 0x06, 0x00, 0x3F, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void battery ()
{
u8g.setPrintPos(20, 10);
u8g.setFont(rus6x10);
u8g.print("НАПРЯЖЕНИЕ СЕТИ");
u8g.setPrintPos(64, 50);
u8g.setFont(u8g_font_gdr30r);
u8g.print(temp);
u8g.setPrintPos(110, 50);
u8g.setFont(rus6x10);
u8g.print("V");
u8g.drawBitmapP(2, 12, 8, 48, batteryV);
}
void ArTemperature ()
{
u8g.setPrintPos(6, 10);
u8g.setFont(rus6x10);
u8g.print("ТЕМПЕРАТУРА ВОЗДУХА");
u8g.setPrintPos(64, 50);
u8g.setFont(u8g_font_gdr30r);
u8g.print(temp);
u8g.setPrintPos(110, 23);
u8g.setFont(rus6x10);
u8g.print("О");
u8g.drawBitmapP(12, 4, 8, 64, ArTermometr);
}
void EnTemperature ()
{
u8g.setPrintPos(1, 10);
u8g.setFont(rus6x10);
u8g.print("ТЕМПЕРАТУРА ДВИГАТЕЛЯ");
u8g.setPrintPos(64, 50);
u8g.setFont(u8g_font_gdr30r);
u8g.print(temp);
u8g.setPrintPos(110, 23);
u8g.setFont(rus6x10);
u8g.print("О");
u8g.drawBitmapP(0, 12, 8, 48, EnTermometr);
}
void Avarika ()
{
u8g.firstPage();
do {
u8g.setPrintPos(6, 10);
u8g.setFont(rus6x10);
u8g.print("АВАРИЙНЫЙ СИГНАЛ");
} while ( u8g.nextPage());
}
void setup() {
Wire.begin();
// u8g.setRot180();
Serial.begin(9600);
pinMode(pin_SW, INPUT_PULLUP); //Сенсорная кнопка
}
void loop(void) {
ButtonClick = digitalRead(pin_SW);
if (ButtonClick == LOW && flag == 0 && MenuFlag == 0) {
flag = 1;
}
if (ButtonClick == HIGH && flag == 1 && MenuFlag == 0) {
flag = 0;
(Menu >= 2 ) ? Menu = 0 : Menu++;
}
u8g.firstPage();
do {
switch (Menu) {
case 0:
battery ();
break;
case 1:
EnTemperature ();
break;
case 2:
ArTemperature ();
break;
}
} while ( u8g.nextPage());
}