#include <OneWire.h>
#include <DallasTemperature.h>

int sensorPin = 2;
OneWire oneWire(sensorPin);
DallasTemperature sensor(&oneWire);

const int stepPin = 25;
const int dirPin = 26;
const int enPin = 27;
const int step = 200;
int LED_STOP = 5;
const int limit = 4;

int LED_SKY = 12;
int LED_GREEN = 13;
int LED_YELLOW = 14;
int LED_ORENGE = 33;
int LED_RED = 32;

void setup() {

  Serial.begin(115200);
  Serial.println("Hello, ESP32!");
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(enPin, OUTPUT);
  digitalWrite(enPin, LOW);
  
  pinMode(limit, INPUT);
  pinMode(LED_STOP, OUTPUT);
  sensor.begin ();

  pinMode(LED_SKY, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(LED_YELLOW, OUTPUT);
  pinMode(LED_ORENGE, OUTPUT);
  pinMode(LED_RED, OUTPUT);
  
}

void loop() {
 
   const int Limit = digitalRead(limit);

      digitalWrite(dirPin, HIGH);
       for (int i = 0; i < step; i++) {  //รอบ*พัลส์ต่อรอบ
         digitalWrite(stepPin, HIGH);
         delayMicroseconds(5000);
         digitalWrite(stepPin, LOW);
         delayMicroseconds(5000);
         
       }
 

 if  ((Limit == HIGH)&&(Limit == 1)){
    motorstop(); 
    
  }
  
  while(Limit == HIGH){
    readPMS5003();
    
  }
  readPMS5003();
}



void motorstop(){
      digitalWrite(dirPin, HIGH);
      for (int i = 0; i < 0; i++) {  //รอบ*พัลส์ต่อรอบ
        digitalWrite(stepPin, HIGH);
        delayMicroseconds(5000);
        digitalWrite(stepPin, LOW);
        delayMicroseconds(5000); 
      }
      //delay(1000);
}
void motor(){
      {digitalWrite(dirPin, HIGH);
      for (int i = 0; i < 200; i++) {  //รอบ*พัลส์ต่อรอบ
        digitalWrite(stepPin, HIGH);
        delayMicroseconds(5000);
        digitalWrite(stepPin, LOW);
        delayMicroseconds(5000); 
      }
      }
      
}
void readPMS5003(){
   sensor.requestTemperatures ();
    float Temp = sensor.getTempCByIndex (0);
    Serial.print ("Temperature: ");
    Serial.print (Temp);
    Serial.println ("ºC");
    delay (1000);
    digitalWrite(LED_STOP, HIGH);
}
void readtemp() {
  float Temp = sensor.getTempCByIndex (0);
  //=============SKY================
 if ((Temp >= 0)&&(Temp <=15 )) {
        digitalWrite(LED_SKY, HIGH); 
        digitalWrite(LED_GREEN, LOW);
        digitalWrite(LED_YELLOW, LOW);
        digitalWrite(LED_ORENGE, LOW);
        digitalWrite(LED_RED, LOW);
     

  }
  //=============GREEN================
  if ((Temp >= 16)&&(Temp <=25 )) {
        digitalWrite(LED_SKY, LOW); 
        digitalWrite(LED_GREEN, HIGH);
        digitalWrite(LED_YELLOW, LOW);
        digitalWrite(LED_ORENGE, LOW);
        digitalWrite(LED_RED, LOW);
        
      
        digitalWrite(dirPin, HIGH);
      for (int i = 0; i < 2*200; i++) {  //รอบ*พัลส์ต่อรอบ
        digitalWrite(stepPin, HIGH);
        delayMicroseconds(5000);
        digitalWrite(stepPin, LOW);
        delayMicroseconds(5000);
        
      }
      
      
  }




  //============YELLOW================
  if ((Temp >= 26)&&(Temp <= 37)) {
        digitalWrite(LED_SKY, LOW); 
        digitalWrite(LED_GREEN, LOW);
        digitalWrite(LED_YELLOW, HIGH);
        digitalWrite(LED_ORENGE, LOW);
        digitalWrite(LED_RED, LOW);
        
        
  }
  //=============ORENGE================
  if ((Temp >= 38)&&(Temp <= 75)) {
        digitalWrite(LED_SKY, LOW); 
        digitalWrite(LED_GREEN, LOW);
        digitalWrite(LED_YELLOW, LOW);
        digitalWrite(LED_ORENGE, HIGH);
        digitalWrite(LED_RED, LOW);
        
        
      }
  //==============RED===================
  if (Temp >= 76) {
        digitalWrite(LED_SKY, LOW); 
        digitalWrite(LED_GREEN, LOW);
        digitalWrite(LED_YELLOW, LOW);
        digitalWrite(LED_ORENGE, LOW);
        digitalWrite(LED_RED, HIGH);
        digitalWrite(dirPin, HIGH);

      
  }
 delay(10000);

}
$abcdeabcde151015202530354045505560fghijfghij
A4988