Narzędzia użytkownika

Narzędzia witryny


projekty:digital_clock_ard

To jest stara wersja strony!


Zegar cyfrowy z pomiarem temperatury na bazie Arduino

#include "RTClib.h"
#include <Arduino.h>
#include <TM1637Display.h>
#include "DHT.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Wire.h>
 
#define CLK 6
#define DIO 4
#define DHTPIN 9
#define DHTTYPE DHT11
 
#define ONE_WIRE_BUS 3
 
RTC_DS1307 rtc;
 
TM1637Display display(CLK, DIO);
 
DHT dht(DHTPIN, DHTTYPE);
 
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
 
void setup() {
 
  rtc.begin();
  sensors.begin();
 
  display.setBrightness(0x0f);
  display.showNumberDecEx(8888,0b01000000, false);
  delay(3000);
  display.clear();
  display.setBrightness(3);
  Serial.begin(57600);
  dht.begin();
}
 
void loop() {
  sensors.requestTemperatures();
  float tempC = sensors.getTempCByIndex(0);
  int tempINT = round(tempC);
  DateTime now = rtc.now();
  int Minute = now.minute();
  int Hour = now.hour();
  String strMinute;
  String strHour;
  float h = dht.readHumidity();
  float t = dht.readTemperature();
 
  if(Hour < 10)
    {strHour = "0" + String(Hour);}
  else if(Hour >= 10)
    {strHour = String(Hour);}
  else if(Hour == 0)
    {strHour = "00";}
 
  if(Minute < 10)
    {strMinute = "0" + String(Minute);}
  else if(Minute >= 10)
    {strMinute = String(Minute);}
  else if(Minute == 0)
    {strMinute = "00";}
 
 
 
  String Time;
  Time += strHour;
  Time += strMinute;
 
  if(Time == "0"){
    Time = "0000";
  }
 
  Serial.println(tempC);
  Serial.println(tempINT);
  int numTime = Time.toInt();
  display.clear();
  display.showNumberDecEx(numTime,0b01000000, true);
  delay(2000);
  display.clear();
  display.showNumberDec(t,false,2,1);
  delay(2000);
  display.clear();
  display.showNumberDec(h,false,2,1);
  delay(2000);
  display.clear();
  display.showNumberDec(tempINT,false,2,1);
  delay(2000);
 
 
}
projekty/digital_clock_ard.1746922172.txt.gz · ostatnio zmienione: 2025/05/11 02:09 przez administrator