Anda di halaman 1dari 7

Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

1 if (detikSebelumnya != now.second() )
2 {
3 detikSebelumnya = now.second();
4 bacaSensor();
5 }

1 dari 7 16/03/2024 22:00


Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

1 if (!(now.second() % periodaBacaSensor)
2 {
3 bacaSensor();
4 }

1 if ((now.hour() >= 20) || (now.hour() <


2 {
3 bacaSensor();
4 }

1 if (now.getEpoch() == databaseJadwal[i].
2 {
3 bacaSensor();
4 }

1 #define pinSensor A0
2

2 dari 7 16/03/2024 22:00


Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

3 #include <Wire.h>
4 #include "Sodaq_DS3231.h"
5
6 DateTime set = {2020, 2, 22, 7, 0, 0, 1};
7 DateTime now;
8 DateTime databaseJadwal[] = {
9 {2020, 2, 22, 7, 0, 3, 1},
10 {2020, 2, 23, 7, 0, 0, 1},
11 {2020, 2, 24, 7, 0, 0, 1},
12 {2020, 2, 25, 7, 0, 0, 1},
13 {2020, 2, 26, 7, 0, 0, 1},
14 {2020, 2, 27, 7, 0, 0, 1},
15 };
16 byte detikSebelumnya;
17 byte menitSebelumnya;
18
19 #define periodaBacaSensor 5//detik
20
21 void bacaSensor()
22 {
23 analogRead(pinSensor);
24 }
25
26 void setup() {
27 Serial.begin(9600);
28 Serial.println("Penjadwalan pembacaan sen
29 Serial.println("https://www.project.semes
30 Serial.println();
31
32 Wire.begin();
33 rtc.begin();
34 now = rtc.now();
35 // if (now.year() == 2000)
36 {
37 rtc.setDateTime(set);
38 }
39 }
40
41 void loop() {
42 now = rtc.now();
43
44 if (detikSebelumnya != now.second() )
45 {
46
47 char bufWaktu[32];
48 sprintf(bufWaktu, "%02d:%02d:%02d %02d‐
49 Serial.println(bufWaktu);
50
51 //pembacaan setiap detik
52 detikSebelumnya = now.second();
53 Serial.println("setiap detik");
54 bacaSensor();
55
56

3 dari 7 16/03/2024 22:00


Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

57 //pembacaan setiap 2 detik


58 if (now.second() % 2)
59 {
60 Serial.println("setiap 2 detik");
61 bacaSensor();
62 }
63
64 //pembacaan setiap detik ke‐5
65 if (now.second() == 5)
66 {
67 Serial.println("setiap detik ke‐5");
68 bacaSensor();
69 }
70
71 //pembacaan setiap n detik (n 1..60)
72 if (!(now.second() % periodaBacaSensor)
73 {
74 Serial.println("setiap n detik");
75 bacaSensor();
76 }
77
78 //pembacaan setiap 937 detik (berlaku u
79 if (!(now.getEpoch() % 937) )
80 {
81 Serial.println("setiap 937 detik");
82 bacaSensor();
83 }
84
85 //pembacaan setiap menit
86 if (menitSebelumnya != now.minute() )
87 {
88 Serial.println("setiap menit");
89 menitSebelumnya = now.minute();
90 bacaSensor();
91 }
92
93 //pembacaan setiap 3 jam = 00:00, 03:00
94 if (!(now.hour() % 3) && !now.minute()
95 {
96 Serial.println("setiap 3 jam");
97 bacaSensor();
98 }
99
100 //pembacaan dalam rentang waktu
101 if ((now.hour() >= 7) && (now.hour() <
102 {
103 Serial.println("pembacaan dalam renta
104 bacaSensor();
105 }
106 else if ((now.hour() >= 11) && (now.hou
107 {
108 Serial.println("pembacaan dalam renta
109 bacaSensor();
110 }

4 dari 7 16/03/2024 22:00


Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

111 else if ((now.hour() >= 20) || (now.hou


112 {
113 Serial.println("pembacaan dalam renta
114 bacaSensor();
115 }
116
117 //pembacaan berdasarkan tabel waktu
118 for (byte i = 0; i < sizeof(databaseJad
119 {
120 if (now.getEpoch() == databaseJadwal[
121 {
122 Serial.print("tabel waktu = ");
123 Serial.println(i);
124 bacaSensor();
125 }
126 }
127 }
128
129 }


5 dari 7 16/03/2024 22:00


Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

6 dari 7 16/03/2024 22:00


Penjadwalan pembacaan sensor berbasis RTC DS3231 – Semesin https://www.project.semesin.com/2020/02/22/penjadwalan-pembacaan-s...

7 dari 7 16/03/2024 22:00

Anda mungkin juga menyukai