Matrix max7219 32x8 temperature humidity clock

0 10420 Medium

Cool clock with temperature and humidity.

projectImage

Things used in this project

Hardware components

HARDWARE LIST
1 DFRobot DHT22 Temperature and Humidity Sensor
1 Arduino Nano R3
1 Jumper wires (generic)
1 Real Time Clock (RTC)
2 LED Lighting, 16 X 8 LED Matrix

Hand tools and fabrication machines

Hot glue gun (generic)
Soldering iron (generic)  
Solder Wire, Lead Free
3D Printer (generic)

Story

 

I just wanted clock with temperature and humidity ;)

Schematics

 

projectImage

Code

 

CODE
/*MAX7219 Display  Arduino
VCC 5 V
GND GND
DIN 11 (MOSI)
CS  3 (SS)
CLK 13 (SCK)

RTC- clk 6, dat 7, rst 8
DHT22 - D4

Hardware: Arduino Nano v3, Max7219 4x matrix Display, jumper wires, solidering iron,ds 1302 RTC real time clock,DHT22



*/


// Include the required Arduino libraries:
//DHT11
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#define DHTPIN 4 
//MAX
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
//RTC
#include <virtuabotixRTC.h>
virtuabotixRTC myRTC(6, 7, 8);//RTC pins
// Define Max hardware type, size, and output pins:
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 3

#define DHTTYPE    DHT22

DHT dht(DHTPIN, DHTTYPE);

// Create a new instance of the MD_Parola class with hardware SPI connection:
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);


unsigned long time = millis();//idk something for counting
void setup() {
 
  dht.begin();
  //myRTC.setDS1302Time(50, 46, 13, 3, 30, 4, 2021);  //Setting up time
  //max settings
  myDisplay.begin();
  // Set the intensity (brightness) of the display (0-15):
  myDisplay.setIntensity(13);
  // Clear the display:
  myDisplay.displayClear();
  myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.setInvert(true);
  myDisplay.print("Settin");
  myDisplay.setInvert(false);
  delay(6000);
  myDisplay.print("DONE");
  delay(2000);
  myDisplay.displayClear();
}

void loop() {
  float h = dht.readHumidity();//DHT humidity
  float temp = dht.readTemperature();//DHT temperature
  
//TEMP---------------------------------------------------------------------
if(millis()-time > 20000){
  if(millis()-time < 23000){
myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.print("TEMP");
  }
  else{
    if(millis()-time < 39999){
           
  int te = round(temp);
    myDisplay.print((String)te+"*C");
  
  //myDisplay.print(tempC,0);
  delay(1000);
    }
//----HIUMIDITY----------------------------------------------------------
if(millis()-time > 40000){

  if(millis()-time < 43000){
    myDisplay.print("HIUM%");
    }
    else{
    if(millis()-time < 59999){
    int hum = round(h);
    myDisplay.print((String)hum+"%");
    //myDisplay.print(h,0); 
    delay(1000);
    }
    }   
  } 

//----------------DATE---------------------------------------------------

if(millis()-time > 60000){
myDisplay.setTextAlignment(PA_CENTER);
  if(millis()-time < 63000){
    myDisplay.print("DATE");
    }
    else{
    myDisplay.print((String)myRTC.dayofmonth+" / "+myRTC.month);
    delay(10000);
    }   
  } 

//----Counter Reset-------------------------------------------------------
  if(millis()-time > 80000){
   time = millis();     
  }     
  }//end of else---------------------------------------------------------------
 }//end of if------------------------------------------------------------
else{   //HOUR---------------------------------------------------------
   myRTC.updateTime();//time update

myDisplay.setTextAlignment(PA_CENTER);

 //myDisplay.print(myRTC.hours);
 //myDisplay.setTextAlignment(PA_CENTER);
 //myDisplay.print(":");
 //myDisplay.setTextAlignment(PA_RIGHT);
 //myDisplay.print(myRTC.minutes);
 myDisplay.print((String)myRTC.hours+" : "+myRTC.minutes);
 delay(1000);
 
 



}//end of else-----------------------

  //end--------------------------------------
}

The article was first published in hackster, April 30, 2021

cr: https://www.hackster.io/Mikiklopsiki/matrix-max7219-32x8-temperature-humidity-clock-982f3e

author: Mikiklopsiki

License
All Rights
Reserved
licensBg
0