Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Tvoříte zajímavý projekt? Pochlubte se s ním.
Pravidla fóra
Vkládejte prosím jen HOTOVÉ projekty, které chcete představit ostatním.
Odpovědět
vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od vojta_1 » 15 črc 2020, 16:57

Použil jsem kód ze stránek http://ideasengineering.blogspot.com/20 ... cycle.html .
U kódu jsem změnil akorát displej, můžete použit buď SH1106-SSD1306 oled.
Co se tyče výstrahy můžete změnít parametry, třeba u oleju:
/Temperature Oil
if(TempOil>100 && Flash==1 || TempOil<30 && Flash==1){
display.setTextColor(BLACK, WHITE);
}else{
display.setTextColor(WHITE);
}
Změna je u 100 a 30, displej začne blikat.

Kód: Vybrat vše

/**************************************************************************
 Zapojení:           pin:
 Arduino nano V3
 Oled 0.96 i2c       SDA-A4
 SH1106-SSD1306      SCL-A5
 
 DS1307              SDA-A4
                     SCK-A5
 Trimr 10K-volty     A0

 LM35:               
 Tep.oleje           A1
 Tep.vody            A2
 **************************************************************************/
#include <Wire.h>                        
#include <SPI.h>
#include <Adafruit_GFX.h>                
#include <Adafruit_SH1106.h>  

#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
#define SH1106_LCDHEIGHT 64

#include "RTClib.h" // Incluye la librería RTClib
RTC_DS1307 RTC;

float Voltage = 0;
int TempOil = 0;
int TempExt = 0;

float Voltage1 = 0;
int TempOil1 = 0;
int TempExt1 = 0;

unsigned long time;
int hour = 0;
int minute = 0;

int Voltage_Pin = A0;
int TempOil_Pin = A1;
int TempExt_Pin = A2;

int Flash = 0;
int counter = 0;

// 'auto Logo', 128x64px
  const unsigned char myBitmap [] PROGMEM = {
  0x00,0x00,0x00,0x00,0x00,0x18,0x01,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xC1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x8A,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0x81,0x8B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x03,0x44,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0xE4,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x02,0xF4,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x03,0x56,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x3F,0xF8,0x00,0x03,0x53,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x07,0xE0,0x0F,0xC0,0x02,0x61,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x40,0x0C,0x00,0x00,0x78,0x02,0xE1,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x40,0x18,0x00,0x00,0x0F,0xFE,0xC6,0x0D,0xF8,0x00,0x00,0x0F,0x80,0x00,0x00,0x00, 
  0x60,0x10,0x00,0x00,0x00,0x0F,0x98,0x18,0xF4,0x07,0xFF,0xF8,0xE0,0x00,0x00,0x00, 
  0x70,0x20,0x00,0x00,0x03,0xF9,0x18,0x28,0x1E,0x1C,0x00,0x00,0x18,0x00,0x00,0x00, 
  0x78,0x47,0x8F,0x00,0xDE,0xC5,0x8F,0x08,0x1E,0x30,0x00,0x00,0x0C,0x00,0x00,0x00, 
  0x48,0xDF,0x8F,0x0F,0xD9,0x81,0x03,0x08,0x0F,0x30,0xFB,0xFF,0x06,0x00,0x00,0x00, 
  0x48,0x9F,0x8F,0x97,0xAD,0x03,0x00,0x08,0x0F,0x33,0xF8,0xFF,0xC3,0x00,0x00,0x00, 
  0x79,0xBF,0x8F,0x9F,0xAF,0x81,0x80,0x08,0x0F,0x67,0xF8,0xFF,0xF9,0x80,0x00,0x00, 
  0x01,0x3F,0x8F,0xCF,0xA7,0x41,0x00,0x08,0x07,0x6F,0xF8,0xFF,0xFC,0xC0,0x00,0x00, 
  0x3F,0x7F,0x8F,0xC7,0xA7,0xB9,0x00,0x00,0x07,0xFF,0xF8,0xFF,0xFE,0x60,0x00,0x00, 
  0x10,0x3F,0x8F,0xE3,0x9B,0xB1,0xFC,0x7F,0x7F,0xDF,0xF8,0xFF,0xFF,0x30,0x00,0x00, 
  0x10,0x00,0x87,0xE1,0x8F,0xC1,0x02,0x5F,0xFF,0x9F,0xF8,0xFF,0xFF,0x18,0x00,0x00, 
  0x10,0x00,0x07,0xE1,0x83,0xB0,0x06,0x60,0x07,0x3F,0xF8,0xFF,0xFF,0x8F,0xFC,0x00, 
  0x10,0x00,0x03,0xC0,0x03,0xFC,0x0B,0xE0,0x16,0xFF,0xF8,0xFF,0xFF,0x80,0x3F,0x00, 
  0x30,0xFC,0x00,0x00,0x00,0x1F,0x0B,0x7F,0xFC,0x80,0xF8,0x00,0x1F,0x80,0x0D,0x80, 
  0x21,0xF4,0x00,0x00,0x00,0xFE,0x8B,0x00,0x00,0x80,0x00,0x00,0x00,0x03,0xFF,0x80, 
  0x23,0x74,0x00,0x00,0x01,0x8F,0x0B,0xBF,0x81,0xF0,0x00,0x00,0x00,0x00,0x7F,0x40, 
  0x23,0xFC,0x00,0x00,0x01,0x1F,0x0E,0x07,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x60, 
  0x27,0xFC,0x00,0x00,0x01,0xBF,0x06,0x00,0xE0,0x07,0xFF,0xFF,0xE0,0x01,0xBF,0xF0, 
  0x26,0x3C,0x00,0x00,0x00,0xE0,0x7E,0x03,0xC0,0x01,0x80,0x00,0xC0,0x00,0xC0,0x10, 
  0x3E,0x1E,0x00,0x00,0x00,0x7F,0xDA,0x07,0x1F,0x00,0xC0,0x01,0x80,0x00,0x60,0x10, 
  0x3E,0x1E,0x00,0x00,0x00,0x7F,0xDA,0x07,0x1F,0x00,0xC0,0x01,0x80,0x00,0x60,0x10, 
  0x06,0x0F,0x00,0xFC,0x00,0xC0,0x3E,0x1E,0x31,0xF0,0x40,0x03,0x1F,0xC0,0x60,0x10, 
  0x05,0x0F,0x01,0x66,0x00,0x80,0xCC,0x1C,0x7F,0xF8,0x60,0x02,0x31,0xF0,0x20,0x10,
  0x05,0x87,0x82,0xDF,0x01,0x81,0x8F,0x88,0x5F,0xFC,0x00,0x04,0x7F,0xFC,0x30,0x10, 
  0x06,0xEF,0xC3,0xB5,0x81,0x0E,0x7F,0x80,0xFC,0x7E,0x00,0x04,0x5F,0xF7,0x80,0x10, 
  0x03,0x3F,0xFF,0xC6,0xC1,0xF0,0x60,0x80,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x80,0x10, 
  0x03,0xFF,0x87,0xC2,0xC0,0x00,0x20,0x8F,0x70,0x1F,0x00,0x01,0xF8,0x1F,0x80,0x10, 
  0x03,0xFF,0x87,0xC2,0xC0,0xE0,0x20,0xFF,0x60,0x1F,0x00,0x03,0x70,0x0B,0x80,0x30, 
  0x01,0xFF,0x07,0xC6,0xE1,0x80,0xFE,0x7F,0x70,0x1F,0x8F,0xFF,0xD0,0x0B,0x80,0x60, 
  0x00,0x7E,0x07,0xDD,0x61,0x07,0x60,0x0E,0x70,0x17,0xFF,0xFF,0xD8,0x1F,0xC0,0x40, 
  0x00,0x00,0x07,0xF3,0xFF,0xFF,0x80,0x00,0x78,0x1F,0x80,0x00,0x58,0x37,0xFF,0xC0, 
  0x00,0x00,0x07,0xFE,0xC1,0xFC,0x00,0x00,0x7F,0xFF,0x00,0x00,0x58,0x6F,0x80,0x00, 
  0x00,0x00,0x07,0xC7,0x80,0x00,0x00,0x00,0x7F,0xFF,0x00,0x00,0x7F,0xFE,0x80,0x00, 
  0x00,0x00,0x03,0xFF,0x00,0x00,0x00,0x00,0x3F,0xFE,0x00,0x00,0x6F,0xFD,0x00,0x00, 
  0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x3F,0xFB,0x00,0x00  
};
void setup() {
{
  delay(500);
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay(); 
  display.drawBitmap(0, 0, myBitmap, 128, 64, WHITE);
  display.display();
  delay(3500); 
  
  Wire.begin(); // Establece la velocidad de datos del bus I2C
  RTC.begin(); // Establece la velocidad de datos del RTC

 display.clearDisplay();
 display.display();
 }
}
void loop() { 
{
  DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
  if( counter > 7){
    Voltage = Voltage1/counter;
    TempOil = TempOil1/counter; 
    TempExt = TempExt1/counter; 
    
    Voltage1 = 0;
    TempOil1 = 0; 
    TempExt1 = 0; 
    
    counter = 0;
  }else{
    counter++;
    Voltage1 = Voltage1 + float(analogRead(Voltage_Pin))*17.6/1023;
    TempOil1 = TempOil1 + map(analogRead(TempOil_Pin), 0, 1023, 0, 500); //LM335
    TempExt1 = TempExt1 + map(analogRead(TempExt_Pin), 0, 1023, 0, 500); //LM335
  }
  
  
  display.drawLine(63, 0, 63, 63,WHITE);//(x0,y0,x1,y1)
  display.drawLine(0, 32, 127, 32,WHITE);//(x0,y0,x1,y1)
  display.drawLine(0, 0, 127, 0,WHITE);//(x0,y0,x1,y1)
  display.drawLine(0, 63, 127, 63,WHITE);//(x0,y0,x1,y1)
  display.drawLine(0, 0, 0, 63,WHITE);//(x0,y0,x1,y1)
  display.drawLine(127, 0, 127, 63,WHITE);//(x0,y0,x1,y1)
  
  //Voltaje
  if(Voltage<12 && Flash==1 || Voltage>14.8 && Flash==1){  //nastavení poplach blikání displeje
    display.setTextColor(BLACK, WHITE);
  }else{
    display.setTextColor(WHITE);
  }
  display.setTextSize(1);
  display.setCursor(10,3);
  display.println("Baterie");
  display.setTextSize(2);
  display.setCursor(2,14);
  display.print(int(Voltage));
  display.print(".");
  display.print(int(Voltage*10-int(Voltage)*10));
  display.println("V");
  
  
  //Temperature Oil
  if(TempOil>100 && Flash==1 || TempOil<30 && Flash==1){ //nastavení poplach blikání displeje
    display.setTextColor(BLACK, WHITE);
  }else{
    display.setTextColor(WHITE);
  }
  display.setTextSize(1);
  display.setCursor(70,3);
  display.println("Tep.oleje");
  display.setTextSize(2);
  display.setCursor(77,14);
  display.print(int(TempOil));
  display.println("C");
  
  if(TempExt>40 && Flash==1 || TempExt<10 && Flash==1){ //nastavení poplach blikání displeje
    display.setTextColor(BLACK, WHITE);
  }else{
    display.setTextColor(WHITE);
  }
  display.setTextSize(1);
  display.setCursor(8,35);
  display.println("Tep.vody");
  display.setTextSize(2);
  display.setCursor(14,46);
  
  display.print(int(TempExt));
  display.println("C");
   
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(67,40);
  
  hour = (now.hour());
  minute = (now.minute());
  
  if (hour<10){
    display.print("0");
  }
  display.print(now.hour(), DEC);  
  display.print(":");
  if (minute<10){
    display.print("0");
  }
  display.print(now.minute(), DEC);
  
  display.display();
  
  if (Flash==1){
    Flash=0;
  }else{
    Flash=1;
  }
 display.clearDisplay(); 
 }
}

Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od Axamith » 15 črc 2020, 19:02

Nejsem motorkář, tak nedokáži ocenit takový projekt. Jen mě zarazilo, jak někdo dokáže sprasit panel na motorce dírou pro umístění displeje . . . :-(
http://3.bp.blogspot.com/-X3Aeg6zL2qg/U ... 073758.jpg

vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od vojta_1 » 15 črc 2020, 19:39

Projekt se dá využit na cokoliv kde je třeba hlídat teploty atd.. kdo by chtěl vyřadit poplach stačí přehodit display.setTextColor(BLACK, WHITE); za display.setTextColor(WHITE, BLACK); a tim se to vyřadí,možnosti je mnoho…..

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od KamilV » 15 črc 2020, 19:49

Axamith píše:
15 črc 2020, 19:02
Nejsem motorkář, tak nedokáži ocenit takový projekt. Jen mě zarazilo, jak někdo dokáže sprasit panel na motorce dírou pro umístění displeje . . . :-(
http://3.bp.blogspot.com/-X3Aeg6zL2qg/U ... 073758.jpg
Třeba je to jen fotka z výroby a není to finální úprava. Ono když se ty hrany srazí a "zalištuje" se to těsněním, tak hrozné to nebude ;)

vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od vojta_1 » 26 srp 2020, 22:05


vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od vojta_1 » 27 srp 2020, 20:03


vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od vojta_1 » 04 zář 2020, 12:20

Zdravím, změnil jsem v kódu zapínaní relátek, aby se zapínaly postupně a vypínaly naopak, časování si můžete změnit jak chcete.
Jak mi vyjde čas tak změním na hodinách ještě dvojtečku aby blikala

Kód: Vybrat vše

 //Zapnutí světel On/Off
 
 int digital=analogRead(A2);                   // LDR in
     display.println(digital);
     if(digital>=700){
     digitalWrite(2,LOW);                     // Zapne světla - potkavací (rele1)
     delay(800);
     digitalWrite(3,LOW);
     digitalWrite(3,LOW);
     delay(1500);
     digitalWrite(2,LOW);                     //  Zapne světla - tlumená (rele2)
     display.clearDisplay();
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 36); 
     display.println("Z");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 44); 
     display.println("a");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 52); 
     display.println("p");
     display.drawBitmap(3, 33, zapsvetla_icon, 40, 32, WHITE);
     delay(50);
     
     } else{
     digitalWrite(3,HIGH);                     // Vypne světla - tlumená (rele2)
     delay(800);
     digitalWrite(2,HIGH);
     digitalWrite(2,HIGH);
     delay(1500);
     digitalWrite(3,HIGH);                    // Vypne světla - potkavací (rele1)
     display.clearDisplay();
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 35); 
     display.println("V");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 43); 
     display.println("y");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 52); 
     display.println("p");
     display.drawBitmap(3, 33, vypsvetla_icon, 40, 32, WHITE);
     delay(50);
   }    
  
}

vojta_1
Příspěvky: 37
Registrován: 14 úno 2020, 23:20
Reputation: 0

Re: Voltmetr, teplota s výstrahou plus hodiny plus aut.zap.světeloled

Příspěvek od vojta_1 » 06 zář 2020, 17:18

Tady je celý kod i bli.dvojtečkou....

Kód: Vybrat vše

/**************************************************************************
 Arduino nano V3  -  Oled 0.96 i2c 
 Zapojení:           pin:
 
 SH1106-SSD1306      SDA-A4
                     SCL-A5
                     
 DS1307              SDA-A4
                     SCK-A5

 Voltmetr:                    
 Trimr 10K           A0
 
 LM35:               
 Tep.oleje           A1

 LDR                 A2
 Rele1               2
 Rele2               3
 Displej- SH1106 nebo SSD1306
 **************************************************************************/
#include <Wire.h>                        
#include <SPI.h>
#include <Adafruit_GFX.h>                
#include <Adafruit_SH1106.h>  

#include "svetla_icon.h"

#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
#define SH1106_LCDHEIGHT 64

#include "RTClib.h" 
RTC_DS1307 RTC;

bool tick = true;

float Voltage = 0;
int TempOil = 0;

float Voltage1 = 0;
int TempOil1 = 0;

unsigned long time;
int hour = 0;
int minute = 0;

int Voltage_Pin = A0;
int TempOil_Pin = A1;

int Flash = 0;
int counter = 0;

// 'Logo', 126x62px
const unsigned char myBitmap [] PROGMEM = {
  0x00,0x00,0x00,0x00,0x00,0x18,0x01,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xC1,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x49,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x8A,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0x81,0x8B,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x02,0x03,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x03,0x44,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x01,0xE4,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x02,0xF4,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x00,0x00,0x00,0x03,0x56,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x00,0x3F,0xF8,0x00,0x03,0x53,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x00,0x07,0xE0,0x0F,0xC0,0x02,0x61,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x40,0x0C,0x00,0x00,0x78,0x02,0xE1,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
  0x40,0x18,0x00,0x00,0x0F,0xFE,0xC6,0x0D,0xF8,0x00,0x00,0x0F,0x80,0x00,0x00,0x00, 
  0x60,0x10,0x00,0x00,0x00,0x0F,0x98,0x18,0xF4,0x07,0xFF,0xF8,0xE0,0x00,0x00,0x00, 
  0x70,0x20,0x00,0x00,0x03,0xF9,0x18,0x28,0x1E,0x1C,0x00,0x00,0x18,0x00,0x00,0x00, 
  0x78,0x47,0x8F,0x00,0xDE,0xC5,0x8F,0x08,0x1E,0x30,0x00,0x00,0x0C,0x00,0x00,0x00, 
  0x48,0xDF,0x8F,0x0F,0xD9,0x81,0x03,0x08,0x0F,0x30,0xFB,0xFF,0x06,0x00,0x00,0x00, 
  0x48,0x9F,0x8F,0x97,0xAD,0x03,0x00,0x08,0x0F,0x33,0xF8,0xFF,0xC3,0x00,0x00,0x00, 
  0x79,0xBF,0x8F,0x9F,0xAF,0x81,0x80,0x08,0x0F,0x67,0xF8,0xFF,0xF9,0x80,0x00,0x00, 
  0x01,0x3F,0x8F,0xCF,0xA7,0x41,0x00,0x08,0x07,0x6F,0xF8,0xFF,0xFC,0xC0,0x00,0x00, 
  0x3F,0x7F,0x8F,0xC7,0xA7,0xB9,0x00,0x00,0x07,0xFF,0xF8,0xFF,0xFE,0x60,0x00,0x00, 
  0x10,0x3F,0x8F,0xE3,0x9B,0xB1,0xFC,0x7F,0x7F,0xDF,0xF8,0xFF,0xFF,0x30,0x00,0x00, 
  0x10,0x00,0x87,0xE1,0x8F,0xC1,0x02,0x5F,0xFF,0x9F,0xF8,0xFF,0xFF,0x18,0x00,0x00, 
  0x10,0x00,0x07,0xE1,0x83,0xB0,0x06,0x60,0x07,0x3F,0xF8,0xFF,0xFF,0x8F,0xFC,0x00, 
  0x10,0x00,0x03,0xC0,0x03,0xFC,0x0B,0xE0,0x16,0xFF,0xF8,0xFF,0xFF,0x80,0x3F,0x00, 
  0x30,0xFC,0x00,0x00,0x00,0x1F,0x0B,0x7F,0xFC,0x80,0xF8,0x00,0x1F,0x80,0x0D,0x80, 
  0x21,0xF4,0x00,0x00,0x00,0xFE,0x8B,0x00,0x00,0x80,0x00,0x00,0x00,0x03,0xFF,0x80, 
  0x23,0x74,0x00,0x00,0x01,0x8F,0x0B,0xBF,0x81,0xF0,0x00,0x00,0x00,0x00,0x7F,0x40, 
  0x23,0xFC,0x00,0x00,0x01,0x1F,0x0E,0x07,0xF0,0x1F,0x00,0x00,0x00,0x00,0x00,0x60, 
  0x27,0xFC,0x00,0x00,0x01,0xBF,0x06,0x00,0xE0,0x07,0xFF,0xFF,0xE0,0x01,0xBF,0xF0, 
  0x26,0x3C,0x00,0x00,0x00,0xE0,0x7E,0x03,0xC0,0x01,0x80,0x00,0xC0,0x00,0xC0,0x10, 
  0x3E,0x1E,0x00,0x00,0x00,0x7F,0xDA,0x07,0x1F,0x00,0xC0,0x01,0x80,0x00,0x60,0x10, 
  0x3E,0x1E,0x00,0x00,0x00,0x7F,0xDA,0x07,0x1F,0x00,0xC0,0x01,0x80,0x00,0x60,0x10, 
  0x06,0x0F,0x00,0xFC,0x00,0xC0,0x3E,0x1E,0x31,0xF0,0x40,0x03,0x1F,0xC0,0x60,0x10, 
  0x05,0x0F,0x01,0x66,0x00,0x80,0xCC,0x1C,0x7F,0xF8,0x60,0x02,0x31,0xF0,0x20,0x10, 
  0x05,0x87,0x82,0xDF,0x01,0x81,0x8F,0x88,0x5F,0xFC,0x00,0x04,0x7F,0xFC,0x30,0x10, 
  0x06,0xEF,0xC3,0xB5,0x81,0x0E,0x7F,0x80,0xFC,0x7E,0x00,0x04,0x5F,0xF7,0x80,0x10, 
  0x03,0x3F,0xFF,0xC6,0xC1,0xF0,0x60,0x80,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x80,0x10, 
  0x03,0xFF,0x87,0xC2,0xC0,0x00,0x20,0x8F,0x70,0x1F,0x00,0x01,0xF8,0x1F,0x80,0x10, 
  0x03,0xFF,0x87,0xC2,0xC0,0xE0,0x20,0xFF,0x60,0x1F,0x00,0x03,0x70,0x0B,0x80,0x30, 
  0x01,0xFF,0x07,0xC6,0xE1,0x80,0xFE,0x7F,0x70,0x1F,0x8F,0xFF,0xD0,0x0B,0x80,0x60, 
  0x00,0x7E,0x07,0xDD,0x61,0x07,0x60,0x0E,0x70,0x17,0xFF,0xFF,0xD8,0x1F,0xC0,0x40, 
  0x00,0x00,0x07,0xF3,0xFF,0xFF,0x80,0x00,0x78,0x1F,0x80,0x00,0x58,0x37,0xFF,0xC0, 
  0x00,0x00,0x07,0xFE,0xC1,0xFC,0x00,0x00,0x7F,0xFF,0x00,0x00,0x58,0x6F,0x80,0x00, 
  0x00,0x00,0x07,0xC7,0x80,0x00,0x00,0x00,0x7F,0xFF,0x00,0x00,0x7F,0xFE,0x80,0x00, 
  0x00,0x00,0x03,0xFF,0x00,0x00,0x00,0x00,0x3F,0xFE,0x00,0x00,0x6F,0xFD,0x00,0x00,
  0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x3F,0xFB,0x00,0x00  
};

void setup() {
{
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay(); 
  display.drawBitmap(0, 0, myBitmap, 126, 62, WHITE);
  display.display();
  delay(3000); 

  pinMode(A2,INPUT);          //LDR Pin
  pinMode(2,OUTPUT);          //Světla On/Off Pin - potkavací
  pinMode(3,OUTPUT);          //Světla On/Off Pin - tlumená
  
  Wire.begin(); // Establece la velocidad de datos del bus I2C
  RTC.begin(); // Establece la velocidad de datos del RTC

 display.clearDisplay();
 //display.display();
 }
}
void loop() { 
{
  DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
  if( counter > 7){
    Voltage = Voltage1/counter;
    TempOil = TempOil1/counter; 
     
    Voltage1 = 0;
    TempOil1 = 0; 
     
    counter = 0;
  }else{
    counter++;
    Voltage1 = Voltage1 + float(analogRead(Voltage_Pin))*17.6/1023;
    TempOil1 = TempOil1 + map(analogRead(TempOil_Pin), 0, 1023, 0, 500); //LM335
    
  }
  
  display.drawLine(63, 0, 63, 63,WHITE);//(x0,y0,x1,y1)
  display.drawLine(0, 32, 127, 32,WHITE);//(x0,y0,x1,y1)
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.drawRoundRect(0, 0, 128, 64, 5, WHITE);
  
  //Voltaje
  if(Voltage<12 && Flash==1 || Voltage>14.8 && Flash==1){  //nastavení poplach blikání displeje
    display.setTextColor(BLACK, WHITE);
  }else{
    display.setTextColor(WHITE);
  }
  display.setTextSize(1);
  display.setCursor(12,3);
  display.println("Baterie");
  display.setTextSize(2);
  display.setCursor(2,14);
  display.print(int(Voltage));
  display.print(".");
  display.print(int(Voltage*10-int(Voltage)*10));
  display.println("V");
  
  
  //Temperature Oil
  if(TempOil>100 && Flash==1 || TempOil<4 && Flash==1){ //nastavení poplach blikání displeje
    display.setTextColor(WHITE, BLACK);
  }else{
    display.setTextColor(WHITE);
  }
  display.setTextSize(1);
  display.setCursor(74,3);
  display.println("Teplota");
  display.setTextSize(2);
  display.setCursor(77,14);
  display.print(int(TempOil));
  display.println("C");

  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(77,35);
  display.print("Hodiny");

  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(67,45);
  
  hour = (now.hour());
  minute = (now.minute());
  
  if (hour<10){
    display.print("0");
  }
  display.print(now.hour(), DEC);  
  
  if(tick == true){
  display.print(":");
  tick = false;
  }
  else{
  display.print(" ");
  tick = true;
  
  }
  if (minute<10){
    display.print("0");
  }
  display.print(now.minute(), DEC);
  
  display.display();
  
  if (Flash==1){
    Flash=0;
  }else{
    Flash=1;
  }
 display.clearDisplay(); 
 
}

 //Zapnutí světel On/Off
 
 int digital=analogRead(A2);                   // LDR in
     display.println(digital);
     if(digital>=700){
     digitalWrite(2,LOW);                     // Zapne světla - potkavací (rele1)
     delay(800);
     digitalWrite(3,LOW);
     digitalWrite(3,LOW);
     delay(1500);
     digitalWrite(2,LOW);                     //  Zapne světla - tlumená (rele2)
     display.clearDisplay();
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 36); 
     display.println("Z");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 44); 
     display.println("a");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 52); 
     display.println("p");
     display.drawBitmap(3, 33, zapsvetla_icon, 40, 32, WHITE);
     delay(50);
     
     } else{
     digitalWrite(3,HIGH);                     // Vypne světla - tlumená (rele2)
     delay(800);
     digitalWrite(2,HIGH);
     digitalWrite(2,HIGH);
     delay(1500);
     digitalWrite(3,HIGH);                    // Vypne světla - potkavací (rele1)
     display.clearDisplay();
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 35); 
     display.println("V");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 43); 
     display.println("y");
     display.setTextSize(1);
     display.setTextColor(WHITE);
     display.setCursor(47, 52); 
     display.println("p");
     display.drawBitmap(3, 33, vypsvetla_icon, 40, 32, WHITE);
     delay(50);
   }    
}

dash1
Příspěvky: 2
Registrován: 22 zář 2020, 03:35
Reputation: 0

Re: Voltmetr, tep.oleje, tep.vody s výstrahou plus hodiny oled

Příspěvek od dash1 » 22 zář 2020, 03:40

Super. 8-) Dobrá práce!

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů