Professional Documents
Culture Documents
h>
#include <DHT.h>
#include <Wire.h>
#include "RTClib.h"
//LCD Part
// DHT Part
DHT dht;
// RTC Part
RTC_DS3231 rtc;
int sensorValue1 = 0;
int sensorValue2 = 0;
void setup() {
pinMode(rw, OUTPUT);
digitalWrite(rw, LOW);
dht.setup(6);
lcd.begin(16, 2);
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(buttonPin4, INPUT_PULLUP);
#ifndef ESP8266
#endif
if (! rtc.begin()) {
lcd.setCursor(0, 0);
while (1);
if (rtc.lostPower()) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("RTC lost power");
lcd.setCursor(0, 1);
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// ------------------------------------------
// Main Program
void loop() {
//
// temp = getDayStr();
// temp1 = getTime();
// tempInt = getTemp();
// tempInt1 = getHum();
// sensorValue0 = analogRead(analogInPin0);
// sensorValue1 = analogRead(analogInPin1);
// lcd.clear();
// lcd.setCursor(0, 0);
// lcd.print(temp);
// lcd.setCursor(8, 0);
// lcd.print(temp1);
// lcd.setCursor(0, 0);
// lcd.print("Sens 1");
// lcd.setCursor(9, 0);
// lcd.print("Sens 2");
// lcd.setCursor(0, 1);
// lcd.print(millis() / 1000);
// lcd.setCursor(9, 1);
// lcd.print(sensorValue1);
// lcd.setCursor(8, 1);
// lcd.print(tempInt);
// lcd.setCursor(10, 1);
// lcd.print("C");
// lcd.setCursor(13, 1);
// lcd.print(tempInt1);
// lcd.setCursor(15, 1);
// lcd.print("%");
// delay(1);
// delay(2000);
// sendSms(true);
String returnData;
lcd.setCursor(0, 0);
Serial.println("AT");
while (Serial.available())
returnData.concat((char)Serial.read());
indexOk = returnData.indexOf("OK");
indexEnd = indexOk + 2;
lcd.setCursor(0, 0);
lcd.print("Modem Ready");
returnData = "";
delay(2000);
Serial.println("AT+CMGF=1");
while (Serial.available())
returnData.concat((char)Serial.read());
delay(500);
lcd.clear();
lcd.setCursor(0, 0);
returnData = "";
delay(1000);
Serial.print("AT+CMGS=");
Serial.write((byte)34);
Serial.print(phoneNumber);
Serial.write((byte)34);
Serial.println();
while (Serial.available())
returnData.concat((char)Serial.read());
delay(500);
Serial.print("Temp. ## C \n");
Serial.print("Kelembapan. ## % \n");
Serial.print("Suara. ## dB \n");
// Serial.print("Tanggal ");
// Serial.print(getDate());
// Serial.print("/n");
// Serial.print("Pukul ");
// Serial.print(getTime());
// Serial.print("Temp. ");
// Serial.print(getTemp());
// Serial.print(" C /n");
// Serial.print("Kelembapan ");
// Serial.print(getHum());
// Serial.print(" % /n");
// Serial.print("Suara ");
Serial.write((byte)26);
while (Serial.available())
returnData.concat((char)Serial.read());
delay(2000);
if (returnData.indexOf("ERROR") > 0) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SMS Gagal");
delay(5000);
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Done");
returnData = "";
delay(30000);
} else {
lcd.clear();
lcd.setCursor(0, 0);
delay(3000);
// END Program
// -------------------------------------------
String getTime() {
String result;
result.concat(now.hour());
result += ":";
result.concat(now.minute());
result += ":";
result.concat(now.second());
return result;
String getDayStr() {
String result;
result.concat(daysOfTheWeek[now.dayOfTheWeek()]);
return result;
String getDate() {
String result;
result.concat(now.day());
result += "/";
result.concat(now.month());
result += "/";
result.concat(now.year());
return result;
int getTemp() {
int result;
delay(dht.getMinimumSamplingPeriod());
return result;
}
int getHum() {
int result;
delay(dht.getMinimumSamplingPeriod());
return result;
int getLight() {
sensorValue1 = analogRead(sensorPin1);
sensorValue2 = analogRead(sensorPin2);
return result;
String returnData;
lcd.setCursor(0, 0);
Serial.println("AT");
while (Serial.available())
returnData.concat((char)Serial.read());
delay(1000);
indexOk = returnData.indexOf("OK");
indexEnd = indexOk + 2;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Modem Ready");
returnData = "";
delay(2000);
Serial.println("AT+CMGF=1");
while (Serial.available())
returnData.concat((char)Serial.read());
delay(500);
lcd.clear();
lcd.setCursor(0, 0);
returnData = "";
delay(1000);
Serial.print("AT+CMGS=");
Serial.write((byte)34);
Serial.print(phoneNumber);
Serial.write((byte)34);
Serial.println();
while (Serial.available())
returnData.concat((char)Serial.read());
delay(500);
if (flag == true) {
} else {
}
Serial.print("Tanggal ");
Serial.print(getDate());
Serial.print("/n");
Serial.print("Pukul ");
Serial.print(getTime());
Serial.print("Temp. ");
Serial.print(getTemp());
Serial.print(" C /n");
Serial.print("Kelembapan ");
Serial.print(getHum());
Serial.print(" % /n");
Serial.print("Suara ");
Serial.write((byte)26);
while (Serial.available())
returnData.concat((char)Serial.read());
delay(2000);
if (returnData.indexOf("ERROR") > 0) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SMS Gagal");
delay(5000);
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Done");
returnData = "";
delay(5000);
} else {
lcd.clear();
lcd.setCursor(0, 0);
delay(3000);