โครงงานอาคารอัจฉริยะ

Code  คำสั่งในการทำโครงงานอาคารต้นแบบอัจฉริยะ

 

//  Thanapat Polruksa              //

//  RMUTT COMPUTER SCIENCE         //

//  ARDUINO UNO+ESP-01 WIFI-MODULE //

//  V 1.0                          //

 

int led8 =8;

int led9 =9;

int led2 =2;

int led3 =3;

int led4 =4;

int infrared1 =10;

int buzzer = 13;

 

#include <SoftwareSerial.h>

SoftwareSerial esp8266(7, 6);

#include <DS3231.h>

DS3231  rtc(SDA, SCL);

Time t;

 

void setup() {

  // Open serial communications and wait for port to open:

  pinMode(buzzer, OUTPUT);

  pinMode (led8,OUTPUT);

  pinMode (led9,OUTPUT);

  pinMode (led2,OUTPUT);

  pinMode (led3,OUTPUT);

  pinMode (led4,OUTPUT);

  pinMode(infrared1,INPUT);

  digitalWrite(infrared1,LOW);

  digitalWrite(buzzer,HIGH);

 

  Serial.begin(9600);       // Boudrate of Serial Setup to 9600

  esp8266.begin(9600);      //Boudrate of Esp8266 Setup to 9600

//  rtc.setDOW();     // Set Day-of-Week to SUNDAY

//  rtc.setTime(20, 59, 50);     //set the time to 12:00:00 (24hr format)

//  rtc.setDate(3, 7, 2018);   // Set the date to January 1st, 2014

  rtc.begin();

}

void loop(){

 

//   ConfigurationESP01();

//   delay(60000);

 

        ThinkSpeakSetup();                  //function for setup thinkspeak. it's scroll down for configuration.

        delay(300);                             //delay 300 ms not 3 second

 

}

 

 

void ThinkSpeakSetup() {

  esp8266.println("AT+CIPSTART="TCP","184.106.153.149",80");

  delay(100);

  esp8266.println("AT+CIPSEND=36");

  delay(100);

  esp8266.println("GET /channels/454105/fields/1/last");

  delay(100);

  printResponseThinkSpeak();

 

//  esp8266.println("AT+CIPSTART="TCP","184.106.153.149",80");

//  delay(100);

//  esp8266.println("AT+CIPSEND=36");

//  delay(100);

//  esp8266.println("GET /channels/443297/fields/2/last");

//  delay(100);

//  printResponseThinkSpeak();

}

 

void printResponseThinkSpeak() {

 

  while (esp8266.available()) {               // loop while for esp8266 available is true only

    //  Serial.println(esp8266.readStringUntil('n'));

    String IncomingString = "";

    boolean StringReady = false;

 

    IncomingString = esp8266.readString();

    StringReady = true;

 

    if (StringReady) {

        String TimeDetect = rtc.getTimeStr();

   

        Serial.println(TimeDetect);    

            Serial.println("ServerThingSpeak: " + IncomingString);        //print server port specification ที่กำหนดไว้

 

      //-------------------------------This is Configuration for Sensor.-----------------------------------------------//

      if (IncomingString.indexOf("LEDON") != -1) {

        digitalWrite(led2,HIGH);

        digitalWrite(led3,HIGH);

        digitalWrite(led4,HIGH);

      }

      if (IncomingString.indexOf("LEDOFF") != -1) {

        digitalWrite(led2,LOW);

        digitalWrite(led3,LOW);

        digitalWrite(led4,LOW);

      }

       

    if (TimeDetect.indexOf("04:30") != -1) {

        Serial.println("04:30");

        digitalWrite(led2,HIGH);

        digitalWrite(led3,HIGH);

        digitalWrite(led4,HIGH);

        digitalWrite(buzzer, LOW);

////        delay(10000);

//        digitalWrite(buzzer, LOW);

       

     } 

     if (TimeDetect.indexOf("05:00") != -1) {

        Serial.println("05:00");  

        digitalWrite(led2,LOW);

        digitalWrite(led3,LOW);

        digitalWrite(led4,LOW);

     

     }  if (TimeDetect.indexOf("18:00") != -1) {

        Serial.println("18:00");

        digitalWrite(led2,HIGH);

        digitalWrite(led3,HIGH);

        digitalWrite(led4,HIGH);

       

       }if (TimeDetect.indexOf("22:00") != -1) {

        Serial.println("22:00");

        digitalWrite(led2,LOW);

        digitalWrite(led3,LOW);

        digitalWrite(led4,LOW);

        digitalWrite(buzzer,LOW );

////        delay(10000);

//        digitalWrite(buzzer, LOW);  

       

     }

     if(digitalRead(infrared2)==1) {

      Serial.println(digitalRead(infrared2));

      digitalWrite(led9,HIGH);

     }else{

      digitalWrite(led9,LOW);

     }

   

//     if(digitalRead(infrared1)==HIGH)  {

//      Serial.println("Somebody is here.");

//       digitalWrite(led9,HIGH);

////        delay(60000);

//        digitalWrite(led9,LOW);

//    }

//    else  {

//      Serial.println("Nobody.");

//        digitalWrite(led8,LOW);    

//       

//   

  

    }

  }

}

 

void printResponseESP01() {

  while (esp8266.available()) {

    Serial.println(esp8266.readStringUntil('n'));

  }

}

 

 

void ConfigurationESP01() {

 

  esp8266.println("AT");

  delay(1000);

  printResponseESP01();

 

  esp8266.println("AT+CWMODE=1");

  delay(1000);

  printResponseESP01();

 

  esp8266.println("AT+CWJAP="Sa_network","12345678"");

  delay(1000);

  printResponseESP01();

  delay(5000);

  esp8266.println("AT+CIPMUX=0");

  delay(1000);

  printResponseESP01();

 

}