PHP код:
	
#include <LiquidCrystal.h>
#include <DallasTemperature.h>    
#include <OneWire.h>
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
#define temp 10      //выстовляем вход DS18B20  ********************************************************************************** 
OneWire oneWire(temp);                
DallasTemperature sensors(&oneWire);
float tempext = 0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  // Прописываем для ЖКИ 
int rtc[7];
int button = 31;   // указываем на какой выход подключена кнопка     *******************************************************************
int buttonValue = 0;  // запомненное значение логического выключателя
int buttonPush = 0;  // указывает нажата ли в данный момент кнопка
int buttonState = 0; // текущее значение кнопки взятое со входа ардуино
void setup()
{
  pinMode(button, INPUT);  // кнопка как вход
  sensors.begin();    // Запускаем DS18B20
 
// устанавливаем время
/*
  RTC.stop();
  RTC.set(DS1307_SEC,0);
  RTC.set(DS1307_MIN,26);
  RTC.set(DS1307_HR,15);
  RTC.set(DS1307_DOW,6);
  RTC.set(DS1307_DATE,29);
  RTC.set(DS1307_MTH,11);
  RTC.set(DS1307_YR,9);
  RTC.start();
*/
  
  lcd.begin(20, 4);     // Запускаем ЖКИ и указываем сколько строк
  
pinMode(22, INPUT);     //Дверь пасажир
pinMode(24, INPUT);     //Дверь водила
pinMode(26, INPUT);     //Дверь зад прав
pinMode(28, INPUT);     //Дверь  зад лев
pinMode(30, INPUT);     //Багажник
pinMode(32, INPUT);     // нет Зарядки
pinMode(34, INPUT);     //Ручник 
pinMode(36, INPUT);     //Давление масла
pinMode(38, INPUT);     //уровень в радиаторе
pinMode(40, INPUT);     //тормоза изношенны
  
  
  lcd.print("BUONGIORNO"); // Приветствие
  delay(1000);
  lcd.clear();
  
 
}
char* dayOfWeek[] = {"xxx", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom"};    // Дни недели
void loop()
{
  clock();
  knopki();
  signal();
}
//********************************************              ЧАСЫ И ТЕРМОМЕТР              **************************************************
void clock()
{
  sensors.requestTemperatures();                              
  tempext=sensors.getTempCByIndex(0);                     
  
  
  
  
  
  RTC.get(rtc,true);
  lcd.setCursor(0,0);
  //lcd.print(millis());
  printDigits(rtc[2],':');
  printDigits(rtc[1],' ');
  //printDigits(rtc[0],' ');
  lcd.print(dayOfWeek[rtc[3]]);
  lcd.setCursor(10,0);
  printDigits(rtc[4],'/');
  printDigits(rtc[5],'/');
  printDigits(rtc[6],' ');
  
         lcd.setCursor(4, 1);
         lcd.print(tempext);
         lcd.setCursor(0, 1);
         lcd.print("Tem:");
         //lcd.setCursor(19, 1);
         //lcd.print("*");
  if(tempext < 3)                // Указываем температуру " ЛЁД НА ДОРОГЕ"
   {
  lcd.setCursor(0, 3);
       lcd.print(" Pericolo Giacio ");   // Надпись которую хотим видеть на ЖКИ  " ЛЁД НА ДОРОГЕ"
       //tone(37, 550,3000);             // можем добавить звук
       delay(3000);
       lcd.setCursor(0, 3);
       lcd.print("                    ");
       
       
       
  }
  
  delay(100);
}
void printDigits(int digits, char delimiter)
{
  if(digits < 10) {
    lcd.print('0');
  }
  lcd.print(digits,DEC);
  lcd.print(delimiter);
}
// **********************************************************  УПРавление КНОПКОЙ    *************************************************
void knopki()
{
 
   int delayTime = 10;
  
  buttonState = digitalRead (button);                             // читаем значение со входа
  
  if (buttonState == 0)                                           // если кнопка нажата...
  {
    
    buttonPush = 1;                                               // ...ставим указатель что кнопка зажата
  }
  
  else if (buttonState == 1 && buttonPush == 1)                   // .. если кнопка отпущена после того как нажата
  {
    
    if (buttonValue == 2) buttonValue = 0;                      // меняем значения на кнопке
    else                  buttonValue++;
    buttonPush = 0;
  }
  
  if (buttonValue == 0)                                        // меняем 
 
 
 //                   ************************************* Вольтметр********************************* 
  {
  float voltage = 5.0 / 3450.0 * analogRead(0);  // читаем со входа для Arduinomega
  lcd.setCursor(0, 2);
  lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
  lcd.setCursor(0, 2);
  float realv = voltage * 19.3;
  lcd.setCursor(0, 2);
  lcd.print(" Voltage: ");
  lcd.print(realv);
  lcd.print("v");
  delay(1000);
}
  else if (buttonValue == 1)
  {
    lcd.setCursor(0, 2);
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
    
    lcd.setCursor(0, 2);                           // Здесь в планах зделать расход
    lcd.print(" 2Soobschenie");
    
  }
  else if (buttonValue == 2)
  {
    lcd.setCursor(0, 2);
    lcd.print("                    ");             // Забиваем пустотой строку тобишь стираем :)
    
    
    lcd.setCursor(0, 2);
    lcd.print(" 3Soobschenie");                    // Здесь в планах  зделать сколько оствлось проехать на оставшеймся топливе
    
  }
  delay(delayTime);
}
//              *********************************************** Сообщения*************************************************
void signal()
  { 
             if (digitalRead(22) == HIGH)
  {
      lcd.setCursor(0, 3);
      lcd.print(" Porta ANT DX");            //Дверь пасажир
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
      
  }  
             if (digitalRead(24) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print(" Porta ANT LX");           //Дверь водила
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
      
  }
              
              if (digitalRead(26) == HIGH)
  { 
       lcd.setCursor(0, 3);
       lcd.print(" Porta POST DX");         //Дверь зад прав
       delay(3000);
       lcd.setCursor(0, 3);
       lcd.print("                    ");
  }
   
            if (digitalRead(28) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print(" Porta POST LX");          //Дверь  зад лев
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
  }
  
            if (digitalRead(30) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print("Porta Bagagliaio");       //Багажник
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
  }
  
            if (digitalRead(32) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print(" Non carica Batteria");    // нет Зарядки
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
  }
              if (digitalRead(34) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print("Freno Stazionamento");       //Ручник
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
  }
          
          if (digitalRead(36) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print(" Bassa pressione OLIO");    //Давление масла
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
  }
          
          if (digitalRead(38) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print("Liquido Raffreddamento");     //уровень в радиаторе
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    ");
  }
        
        if (digitalRead(40) == HIGH) 
  { 
      lcd.setCursor(0, 3);
      lcd.print("Pastigli freno");     //тормоза изношенны
      delay(3000);
      lcd.setCursor(0, 3);
      lcd.print("                    "); 
    
  }
  }