DISPLAY DHT22 AND RTC TO LED MATRIX

DHT 22 RTC matrix

The code can be downloaded at:

https://github.com/triantara/ARDUINO-TRIANTARA/blob/main/RTC%20DHT%20ON%20MATRIX.zip

#include <Wire.h>

#include “RTClib.h”

RTC_DS1307 RTC;

#include <MaxMatrix.h> //include matrix library

const float fVerNum = 0.03;

#include <avr/pgmspace.h>

#include <stdlib.h>

#include “DHT.h” //include the temp sensor library

#define DHTPIN 7 // what pin we’re connected to

#define DHTTYPE DHT22 // DHT 11 temp&humid sensor

DHT dht(DHTPIN, DHTTYPE);

const PROGMEM prog_uchar CH[] = {

3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space

1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !

3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // “

5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #

4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $

5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %

5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &

1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // ‘

3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (

3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )

5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *

5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +

2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,

4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // –

2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .

4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /

4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0

3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1

4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2

4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3

4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4

4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5

4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6

4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7

4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8

4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9

2, 8, B00100100, B00000000, B00000000, B00000000, B00000000, // :

2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;

3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <

3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =

3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >

4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?

5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @

4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A

4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B

4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C

4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D

4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E

4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F

4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G

4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H

3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I

4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J

4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K

4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L

5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M

5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N

4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O

4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P

4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q

4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R

4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S

5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T

4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U

5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V

5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W

5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X

5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y

4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z

2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [

4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash

2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]

3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat

4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _

2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `

4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a

4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b

4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c

4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d

4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e

3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f

4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g

4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h

3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i

4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j

4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k

3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l

5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m

4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n

4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o

4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p

4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q

4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r

4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s

3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t

4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u

5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v

5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w

5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x

4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y

3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z

3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {

1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |

3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }

4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~

};

int data = 12; // DIN pin of MAX7219 module

int load = 10; // CS pin of MAX7219 module

int clock = 11; // CLK pin of MAX7219 module

int maxInUse = 8; //change this variable to set how many MAX7219’s you’ll use

MaxMatrix m(data, load, clock, maxInUse); // define module

byte buffer[10];

void setup(){

//pinMode(2,INPUT); //button input

m.init(); // module initialize

m.setIntensity(0); // dot matix intensity 0-15

Serial.begin(9600); // serial communication initialize

Serial.println(“DHTxx test!”);

dht.begin();

Wire.begin();

RTC.begin();

if (! RTC.isrunning()) {

Serial.println(“RTC is NOT running!”);

// following line sets the RTC to the date & time this sketch was compiled

RTC.adjust(DateTime(__DATE__, __TIME__));

}

}

void loop(){

float t = dht.readTemperature();

float h = dht.readHumidity();

char temp[4];

char hum[4];

itoa(t,temp,10); //convert int to char!!!!

itoa(h,hum,10); //convert int to char!!!!

DateTime now = RTC.now();

int mt = (now.month());

int dy = (now.day());

int y = (now.year());

int jm = (now.hour());

int men = (now.minute());

int dt = (now.second());

char tahun[5];

char bulan[4];

char tanggal[4];

char jam[4];

char menit[4];

char detik[4];

itoa(mt,bulan,10); //convert int to char!!!!

itoa(dy,tanggal,10); //convert int to char!!!!

itoa(y,tahun,10); //convert int to char!!!!

itoa(jm,jam,10); //convert int to char!!!!

itoa(men,menit,10); //convert int to char!!!!

itoa(dt,detik,10); //convert int to char!!!!

if(now.dayOfTheWeek()==1){

printStringWithShift(“MONDAY”, 100);

}

if(now.dayOfTheWeek()==2){

printStringWithShift(“TUESDAY”, 100);

}

if(now.dayOfTheWeek()==3){

printStringWithShift(“WEDNESDAY”, 100);

}

if(now.dayOfTheWeek()==4){

printStringWithShift(“THURSDAY”, 100);

}

if(now.dayOfTheWeek()==5){

printStringWithShift(“FRIDAY”, 100);

}

if(now.dayOfTheWeek()==6){

printStringWithShift(“SATURDAY”, 100);

}

if(now.dayOfTheWeek()==0){

printStringWithShift(“SUNDAY”, 100);

}

printStringWithShift(” “, 100);

printStringWithShift(tanggal, 100);

printStringWithShift(“/”, 100);

printStringWithShift(bulan, 100);

printStringWithShift(“/”, 100);

printStringWithShift(tahun, 100);

printStringWithShift(” “, 100);

printStringWithShift(jam, 100);

printStringWithShift(“:”, 100);

printStringWithShift(menit, 100);

printStringWithShift(“:”, 100);

printStringWithShift(detik, 100);

printStringWithShift(” “, 100);

printStringWithShift(“temp: “, 100);

printStringWithShift(temp, 100);

printStringWithShift(” C “, 100);

printStringWithShift(“humidity: “, 100);

printStringWithShift(hum, 100);

printStringWithShift(” % “, 100);

printStringWithShift(” “, 100);

m.shiftLeft(false, true);

}

void printCharWithShift(char c, int shift_speed){

if (c < 32) return;

c -= 32;

memcpy_P(buffer, CH + 7*c, 7);

m.writeSprite(maxInUse*8, 0, buffer);

m.setColumn(maxInUse*8 + buffer[0], 0);

for (int i=0; i<buffer[0]+1; i++)

{

delay(shift_speed);

m.shiftLeft(false, false);

}

}

void printStringWithShift(char* s, int shift_speed){

while (*s != 0){

printCharWithShift(*s, shift_speed);

s++;

}

}

void printString(char* s)

{

int col = 0;

while (*s != 0)

{

if (*s < 32) continue;

char c = *s – 32;

memcpy_P(buffer, CH + 7*c, 7);

m.writeSprite(col, 0, buffer);

m.setColumn(col + buffer[0], 0);

col += buffer[0] + 1;

s++;

}

}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s