Source Code Cho Arduino
Source Code Cho Arduino
h>
#include <RTClib.h>
#include <LiquidCrystal.h>
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = {
"Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat"
};
// temperature sensor
float sensorValue;
float voltageOut;
float temperatureC;
// esp8266
int a_year = 0;
int a_month = 0;
int a_day = 0;
int a_hour = 0;
int a_minute = 0;
int counter_at_alarm;
float l_temp;
int l_humidity;
float l_pressure;
float l_wind_speed;
// another devices
int buttonState = 0;
int oldButtonState = 0;
int counter = 0;
int tempPin = 0;
void setup() {
// DS1307
if (! rtc.begin()) {
while (1);
}
// other devices
pinMode(buzzerPin, OUTPUT);
pinMode(buttonPin, INPUT);
lcd.begin(16, 2);
void loop() {
handleReq(stmt);
buttonState = digitalRead(buttonPin);
if (buttonState != oldButtonState) {
oldButtonState = buttonState;
counter++;
delay(50);
} else if (counter % 3 == 0) {
lcd.setCursor(0,0);
lcd.print(now.year());
lcd.print('/');
lcd.print(now.month());
lcd.print('/');
lcd.print(now.day());
lcd.print(" (");
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.print(") ");
lcd.setCursor(0,1);
lcd.print(now.hour());
lcd.print(':');
lcd.print(now.minute());
lcd.print(':');
lcd.print(now.second());
} else if (counter % 3 == 1) {
lcd.setCursor(0,0);
lcd.setCursor(0,1);
lcd.print(getTemp());
lcd.print(" *C");
} else if (counter % 3 == 2) {
lcd.setCursor(0,0);
lcd.print("T: ");
lcd.print(l_temp);
lcd.print(" ");
lcd.print("H: ");
lcd.print(l_humidity);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("P: ");
lcd.print(l_pressure);
lcd.print(" ");
lcd.print("WS: ");
lcd.print(l_wind_speed);
// check alarm
if (now.year() == a_year && now.month() == a_month && now.day() == a_day && now.hour() ==
a_hour && now.minute() == a_minute) {
if (now.second() < 3) {
counter_at_alarm = counter;
if (counter_at_alarm == counter) {
tone(buzzerPin,220,125);
delay(125);
delay(1000);
lcd.clear();
char c = Wire.read();
stmt += c;
void requestEvent() {
if (stmt.length() != 0) {
Serial.println(stmt);
// Find the positions of spaces
// Extract substrings
if (action == "GET_WEATHER") {
} else {
// Extract year
// Extract month
// Extract day
// Extract hour
// Extract minute
if (action == "SET_ALARM") {
a_year = year;
a_month = month;
a_day = day;
a_hour = hour;
a_minute = minute;
stmt = "";
float getTemp() {
int val;
val = analogRead(tempPin);
float mv = (val/1023.0)*5000;
return cel;