วันศุกร์ที่ 27 กรกฎาคม พ.ศ. 2561

Arduino 8

หรี่ความสว่างหลอดไฟ LED ด้วย Arduino ให้ลดแสงสว่างและประหยัดพลังงานกันเถอะ

เมื่อ 1 ปีที่ผ่านมา
โดย เจ้าของร้าน

หรี่หลอดไฟ LED ด้วย Arduino ให้ลดแสงสว่างและประหยัดพลังงานกันเถอะ
ก่อนอื่น มีน้องๆ เข้ามาปรึกษาโปรเจคเรื่องการเปิดปิด หลอดไฟ LED ที่เป็น DC ด้วย Arduino วันนี้ทางร้านเลยทำบทความ สนุกๆ เกี่ยวกับการใช้ PWM ส่งไปยัง Transistor เบอร์ BD139 เพื่อทำการเปิดปิดไฟ หรี่ไฟตามที่เราต้องการ เช่นหากเราทำการส่ง ค่า PWM ไปที่ 255 หลอดไฟจะสว่างสูงสุด การกินกระแสของหลอดไฟก็จะเยอะที่สุด (เปรียบเสมือนการเปิดก๊อกน้ำแบบ100 เปอร์เซ็นน้ำก็จะไหลได้เร็วและเยอะที่สุด) หากเราส่งค่า PWM ไปที่ 10 หลอดไฟจะสว่างน้อยมาก การกินกระแสก็จะน้อยตามลงไป หากส่งค่า PWM ไปที่ 0 หลอดไฟก็จะไม่สว่าง
เรามาดูวิธีการต่อวงจรกันเลย


การต่อวงจรนี้เราใช้แรงจ่ายไฟจาก ภายนอก 12V เพื่อป้อนให้กับ หลอดไฟ LED DC 
Code ของ Arduino
const int analogOutPin = 3;     //กำหนดใช้งานขา 3 ของ Arduino
void setup() {

}
void loop() {
     analogWrite(analogOutPin, 255);    //เลขสีแดงเราสามารถกำหนดค่าที่ต้องการได้ 0-255
}

Arduino 7

การใช้งานจอ Character LCD กับ Arduino แบบละเอียด

เมื่อ 2 ปีที่ผ่านมา
โดย เจ้าของร้าน

คำว่า LCD ย่อมาจากคำว่า Liquid Crystal Display ซึ่งเป็นจอที่ทำมาจากผลึกคริสตอลเหลว หลักการคือด้านหลังจอจะมีไฟส่องสว่าง หรือที่เรียกว่า Backlight อยู่ เมื่อมีการปล่อยกระแสไฟฟ้าเข้าไปกระตุ้นที่ผลึก ก็จะทำให้ผลึกโปร่งแสง ทำให้แสงที่มาจากไฟ Backlight แสดงขึ้นมาบนหน้าจอ ส่วนอื่นที่โดนผลึกปิดกั้นไว้ จะมีสีที่แตกต่างกันตามสีของผลึกคริสตอล เช่น สีเขียว หรือ สีฟ้า ทำให้เมื่อมองไปที่จอก็จะพบกับตัวหนังสือสีขาว แล้วพบกับพื้นหลังสีต่างๆกัน
จอ LCD จะแบ่งเป็น 2 แบบใหญ่ๆตามลักษณะการแสดงผลดังนี้
1. Character LCD เป็นจอที่แสดงผลเป็นตัวอักษรตามช่องแบบตายตัว เช่น จอ LCD ขนาด 16x2 หมายถึงใน 1 แถว มีตัวอักษรใส่ได้ 16 ตัว และมีทั้งหมด 2 บรรทัดให้ใช้งาน ส่วน 20x4 จะหมายถึงใน 1 แถว มีตัวอักษรใส่ได้ 20 ตัว และมีทั้งหมด 2 บรรทัด
2. Graphic LCD เป็นจอที่สามารถกำหนดได้ว่าจะให้แต่ละจุดบนหน้าจอกั้นแสง หรือปล่อยแสงออกไป ทำให้จอนี้สามารถสร้างรูปขึ้นมาบนหน้าจอได้ การระบุขนาดจะระบุในลักษณะของจำนวนจุด (Pixels) ในแต่ละแนว เช่น 128x64 หมายถึงจอที่มีจำนวนจุดตามแนวนอน 128 จุด และมีจุดตามแนวตั้ง 64 จุด
ในบทความนี้จะกล่าวถึง Character LCD เพียงอย่างเดียว เนื่องจากใช้งานได้ง่าย และนิยมใช้งานในโปรเจคทั่วๆไปมากกว่าครับ

การเชื่อมต่อกับจอ Character LCD

การเชื่อมต่อจะมีด้วยกัน 2 แบบ คือ
  • การเชื่อมต่อแบบขนาน - เป็นการเชื่อมต่อจอ LCD เข้ากับบอร์ด Arduino โดยตรง โดยจะแบ่งเป็นการเชื่อมต่อแบบ 4 บิต และการเชื่อมต่อแบบ 8 บิต ใน Arduino จะนิยมเชื่อมต่อแบบ 4 บิต เนื่องจากใช้สายในการเชื่อมต่อน้อยกว่า
  • การเชื่อมต่อแบบอนุกรม - เป็นการเชื่อต่อกับจอ LCD ผ่านโมดูลแปลงรูปแบบการเชื่อมต่อกับจอ LCD จากแบบขนาน มาเป็นการเชื่อมต่อแบบอื่นที่ใช้สายน้อยกว่า เช่น การใช้โมดูล I2C Serial Interface จะเป็นการนำโมดูลเชื่อมเข้ากับตัวจอ LCD แล้วใช้บอร์ด Arduino เชื่อมต่อกับบอร์ดโมดูลผ่านโปรโตคอล I2C ทำให้ใช่สายเพียง 4 เส้น ก็ทำให้หน้าจอแสดงผลข้อความต่างๆออกมาได้

การใช้งาน Character LCD กับ Arduino

การเชื่อมต่อแบบขนาน

การเชื่อมต่อแบบขนานแบบ 4 บิต สามารถต่อได้ตามวงจรด้านล่างนี้
เมื่อต่อวงจรเรียบร้อยแล้ว ต่อสาย USB เข้ากับบอร์ด Arduino จะเห็นกล่องสีเหลี่ยมทั้งหมด 16 ตัว (หากเป็นจอ 16x2) ในบรรทัดแรก หากไม่พบกล่อง ให้ปรับความชัดได้จาก VR ที่ต่ออยู่กับขา V0
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7

void setup() {
  lcd.begin(16, 2); // จอกว้าง 16 ตัวอักษร 2 บรรทัด
  lcd.print("LCDisplay"); // แสดงผลคำว่า Hello, world! ออกหน้าจอ
  lcd.setCursor(0, 1); // เลื่อนเคเซอร์ไปบรรทัดที่ 2 ลำดับที่ 0 (ก่อนหน้าตัวอักษรแรก)
  lcd.print("www.ioxhop.com"); // แสดงผลคำว่า www.ioxhop.com
  delay(3000); // หน่วงเวลา 3 วินาที
  lcd.clear(); // ล้างหน้าจอ
}

void loop() {
  lcd.setCursor(0, 0);
  lcd.print(" InFunction ");
  lcd.setCursor(0, 1);
  lcd.print(" void loop(){ ");
  delay(500); // หน่วงเวลา 0.5 วินาที
  lcd.clear(); // ล้างหน้าจอ
  delay(500); // หน่วงเวลา 0.5 วินาที
}

Arduino 6

สร้างนาฬิกาดิจิตอลด้วยบอร์ด Arduino





เป็นการประยุกต์ใช้โมดูลนับเวลา RTC และโมดูล Clock Display มาใช้ร่วมกัน ควบคุมด้วยบอร์ด Arduino หลักการทำงานเพียงแค่ใช้บอร์ด Arduino ในการเซ็ตค่าเวลาลงไปในโมดูล RTC จากนั้นโมดูล RTC จะนับเวลาไปเรื่อยๆ แล้วจึงให้ Arduino ดึงค่าเวลาออกมาจากโมดูล RTC แล้วนำไปแสดงผลที่โมดูล Clock Display
การตั้งเวลาจะทำผ่าน Serial Monitor เนื่องจากเป็นโค้ดง่ายๆ สำหรับเรียนรู้การใช้โมดูล RTC กับโมดูล Clock Display และเรียนรู้การอ่านข้อมูลที่ส่งผ่าน Serial

วงจร

 
ดูที่ต่อในวงจรอาจจะ งงๆ เพราะมันไม่เหมือนของจริงมากนัก แต่คล้ายๆ เอาเป็นว่าต่อตามนี้ได้เลยครับ
  • ต่อขา VCC ของ RTC เข้ากับ 5V ของ Arduino
  • ต่อขา GND ของ RTC เข้ากับ GND ของ Arduino
  • ต่อขา SCL ของ RTC เข้ากับ SCL หรือขา A5 ของ Arduino
  • ต่อขา SDA ของ RTC เข้ากับ SDA หรือขา A4 ของ Arduino
  • ต่อขา VCC ของโมดูล Clock Display เข้ากับ 5V ของ Arduino
  • ต่อขา GND ของโมดูล Clock Display เข้ากับ GND ของ Arduino
  • ต่อขา CLK ของโมดูล Clock Display เข้ากับ D2 ของ Arduino
  • ต่อขา DIO ของโมดูล Clock Display เข้ากับ D3 ของ Arduino

โค้ด

/* DigitalClockRTC1307 By IOXhop.com */

#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>
#include <TM1637Display.h>

// Module connection pins (Digital Pins)
#define CLK 2
#define DIO 3
unsigned long previousMillis;
bool showdot = false;
String SerialGET = "";

TM1637Display display(CLK, DIO);

void setup() {
  Serial.begin(9600);
}

void loop() {
  tmElements_t tm;
  if (!RTC.read(tm)) {
    tm.Hour = 0;
    tm.Minute = 0;
    tm.Second = 0;
    RTC.write(tm);
  }

  display.write(tm.Hour/10, 0);
  display.write(tm.Hour%10, 1);
  display.write(tm.Minute/10, 2);
  display.write(tm.Minute%10, 3);

  // Dot blink
  unsigned long currentMillis = millis();
  if (currentMillis-previousMillis>500){
    previousMillis = currentMillis;
    display.dotShow(showdot=!showdot);
  }

  while (Serial.available()) {
    char c = Serial.read();
    if (c == '\n') {
      int Hour, Min, Sec;
      if (sscanf(SerialGET.c_str(), "%d:%d:%d", &Hour, &Min, &Sec) == 3) {
        tm.Hour = Hour;
        tm.Minute = Min;
        tm.Second = Sec;
        RTC.write(tm);
        Serial.print("Set to ");
        Serial.print(Hour);
        Serial.print(":");
        Serial.print(Min);
        Serial.print(":");
        Serial.print(Sec);
        Serial.println();
      }else{
        Serial.println("Invalid format, Please enter Hour:Min:Sec");
      }
      SerialGET = "";
    }
    else
      SerialGET += c;
  }
}
หรือสามารถดาว์โหลดได้ที่ DigitalClockRTC1307.zip

ดาว์โหลดไลบารี่

คลายไฟล์ แล้วจึงนำไฟล์ไปใส่ในโฟลเดอร์ Documents\Arduino\libraries ปิดโปรแกรม Arduino แล้วเปิดขึ้นมาใหม่เพื่อให้โปรแกรมอัพเดทไลบารี่

การตั้งเวลา

หลังอัพโหลดโค้ดและต่อวงจรเรียบร้อยแล้ว เปิด Serial Monitor จากนั้นปรับตามรูป
กรอกชั่วโมง นาที และวินาที ตามรูปแบบดังนี้
ชั่วโมง:นาที:วินาที
เช่น
22:19:00
หากกรอกถูกรูปแบบ จะขึ้นว่า Set .... ตามรูป

Arduino 5

Code โปรเจค หุ่นยนต์หลบสิ่งกีดขวาง Arduino UNO + HY-SRF05


โปรเจค นี้จะเป็นการนำ Arduino UNO R3 + L298P Motor Shield และ เซ็นเซอร์วัดระยะทาง HY-SRF05 มาทำเป็น หุ่นยนต์หลบสิ่งกีดขวาง โดยให้หุ่นยนต์ตัดสินใจโดยอัตโนมัติ ด้วยการวัดระยะทาง จาก สิ่งกีดขวาง และ เมื่อมีสิ่งกีดขวางอยู่ในระยะที่กำหนดไว้ ในตัวอย่างคือ น้อยกว่า 20 เซ็นติเมตร ให้หุ่นยนต์ หยุด - ถอยหลัง แล้ว เลี้ยวซ้าย หลบสิ่งกีดขวางนั้นเสมอ โดยในขณะที่ทำงาน เมื่อมีสิ่งกีดขวางอยู่ในระยะน้อยกว่า 20 เซ็นติเมตร ให้ส่งเสียงเตือนจาก Buzzer ออดไฟฟ้า ของ L298P ออกมาด้วย


อุปกรณ์ที่ใช้

1. 2WD Smart Car Robot Chassis Kits
2. Arduino UNO R3 - Made in italy
3. L298P Motor Shield Board
4. Jumper (M2M) cable 20cm Male to Male
5. Jumper (F2M) cable 30cm Female to Male
6. สกรูหัวกลม+น็อตตัวเมีย ยาว 12 มม.
7. รางถ่าน 18650 แบบ 2 ก้อน
8. ถ่านชาร์จ 18650 Panasonic NCR18650B 3.7v  จำนวน 2 ก้อน
9. HY-SRF05 SRF05 Ultrasonic Distance Sensor
10. Mounting Bracket for HC-SR04 แบบสั้น



1. ประกอบหุ่นยนต์

เริ่มต้นด้วยการ ประกอบ หุ่นยนต์ Arduino UNO + L298P และ ทดสอบการเคลื่อนที่ของหุ่นยนต์ ตามลิงค์ บทความด้านล่าง

https://robotsiam.blogspot.com/2017/12/arduino-uno-l298p.html


2. ประกอบ HY-SRF05 Ultrasonic

เซ็นเซอร์วัดระยะทาง HY-SRF05
สำหรับเซ็นเซอร์วัดระยะทาง สามารถนำไปใช้ในการวัดขนาดสิ่งของ ตรวจจับสิ่งกีดขวางได้ โดยในด้าน Smart Farm มักนำไปใช้วัดระดับน้ำในถังน้ำ หรือนำไปใช้วัดระดับน้ำในบ่อน้ำ เพื่อให้แจ้งเตือน หรือเติมนำอัตโนมัติ สำหรับเซ็นเซอร์วัดระยะห่างจะมีทั้งแบบใช้แสง และใช้คลื่นเสียง

หลักการทำงานของ HY-SRF05
เซ็นเซอร์วัดระยะห่างรุ่น HY-SRF05 ใช้คลื่นเสียงในย่านอัลตร้าโซนิคในการทำงาน โดยหลักการคือตัวส่งเมื่อส่งเสียงออกไปแล้วเสียงไปกระทบกับวัตถุแล้วจะทำให้คลื่นนั้นสะท้อนกลับมาแล้วตัวรับทำหน้าที่รับเข้ามา ค่าเวลาที่วัดได้หลังส่งออกไปแล้วรับกลับมาจะถูกนำไปคำนวณโดยเทียบกับความเร็วเสียงทำให้ได้ระยะทางออกมา

การทำงานเริ่มจากเมื่อทริกสัญญาณเข้าที่ขา Trig ให้เป็น HIGH จะทำให้โมดูลเริ่มวัดระยะ แล้วส่งค่าที่วัดได้ออกมาเป็นความกว้างพัลส์ที่ขา Echo นำค่าเวลาความกว้างพัลส์ที่ส่งมาจากขา Echo เมื่อนำมาหาร 29 / 2 จะได้ค่าระยะออกมาเป็นเซ็นติเมตร โดยสามารถวัดระยะได้ตั้งแต่ 2 เซ็นติเมตร ไปจนถึง 4.5 เมตร ความผิดพลาดขึ้นอยู่กับระยะทางที่วัด

ใช้ จั้มเปอร์ ผู้-เมีย 30cm เชื่อมต่อ HY-SRF05 เข้ากับ L298P ตามรูปด้านล่าง 

SRF05 <-> L298P
VCC <-> 5VGND <-> GndTrig <-> D7Echo <-> D6



ใช้สาย USB เชื่อมต่อระหว่าง คอมพิวเตอร์ กับ Arduino UNO R3


เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3


const unsigned int TRIG_PIN=7;
const unsigned int ECHO_PIN=6;
const unsigned int BAUD_RATE=9600;


void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  Serial.begin(BAUD_RATE);
}


void loop() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  
 const unsigned long duration= pulseIn(ECHO_PIN, HIGH);
 int distance= duration/29/2;
 if(duration==0){
   Serial.println("Warning: no pulse from sensor");
   } 
  else{
      Serial.print("distance to nearest object:");
      Serial.println(distance);
      Serial.println(" cm");
  }
 delay(100);

 }



ไปที่ Tools > Board เลือกเป็น Arduino/Genuino UNO

ไปที่ Tools > Port แล้วเลือกพอร์ตที่ปรากฏ (กรณีใช้เครื่องคอมพิวเตอร์ที่มี COM Port มากกว่าหนึ่ง  ให้เลือกตัวอื่นที่ไม่ใช่ COM1)
ในตัวอย่างเลือกเป็น "COM14"
(ถ้ายังว่าง หรือ เป็น COM1 ให้ตรวจสอบการติดตั้งไดร์เวอร์ การต่อสาย USB ของ Arduino UNO)

(ถ้าไม่พบให้ทำการติดตั้งไดร์เวอร์ก่อน) การติดตั้งโปรแกรม Arduino (IDE) และ การติดตั้งไดร์เวอร์

กดปุ่ม  เพื่ออัพโหลด


หากสามารถอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จ จะแสดงคำว่า Done uploading. ที่แถบด้านล่าง

เปิดสวิตช์ไฟ จากรางถ่านเข้าสู่หุ่นยนต์
แล้วไปที่ Tools -> Serial Monitor

เลือก Both NL & CR และ เลือก 9600 baud
Serial Monitor จะแสดง ระยะทางที่ห่าง จาก สิ่งกีดขวาง มีหน่วยเป็น cm (เซนติเมตร)

แสดงว่า การเชื่อมต่อ SRF05 ของเรานั้นถูกต้อง และ พร้อมใช้งานแล้ว



3. ทดสอบการทำงาน

Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3



/*
    Obstacle Avoiding Robot with Arduino UNO + HY-SRF05    For more details visit:    https://robotsiam.blogspot.com/2017/12/arduino-uno-hy-srf05.html
*/
/*-------definning SRF05------*/
const unsigned int TRIG_PIN = 7;const unsigned int ECHO_PIN = 6;const unsigned int BAUD_RATE = 9600;
/*-------definning Outputs------*/
int MA1 = 12;     // Motor A1int MA2 =  3;     // Motor A2int PWM_A =  10;   // Speed Motor A
int MB1 =  13;     // Motor B1int MB2 =  8;     // Motor B2int PWM_B =  11;  // Speed Motor B
int SPEED = 200;  // Speed PWM สามารถปรับความเร็วได้ถึง 0 - 255
void setup() {
  pinMode(4, OUTPUT); //Buzzer
  //Setup Channel A  pinMode(12, OUTPUT); //Motor A1  pinMode(3, OUTPUT); //Motor A2  pinMode(10, OUTPUT); //Speed PWM Motor A
  //Setup Channel B  pinMode(13, OUTPUT);  //Motor B1  pinMode(8, OUTPUT);  //Motor B2  pinMode(11, OUTPUT); //Speed PWM Motor B
  pinMode(TRIG_PIN, OUTPUT);  pinMode(ECHO_PIN, INPUT);  Serial.begin(BAUD_RATE);
}
void loop() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);


  const unsigned long duration = pulseIn(ECHO_PIN, HIGH);
  int distance = duration / 29 / 2;
  if ((distance > 1) && (distance < 20))  {
    digitalWrite(4, HIGH);    Stop(500);    digitalWrite(4, LOW);    Backward(400);    turnLeft(400);    Serial.print("distance to nearest object:");    Serial.println(distance);    Serial.println(" cm");
  }
  else {
    digitalWrite(4, LOW);    Forward(10);    Serial.print("distance to nearest object:");    Serial.println(distance);    Serial.println(" cm");
  }
  delay(100);
}
void Backward(int time){  digitalWrite(MA1, LOW);  digitalWrite(MA2, HIGH);  analogWrite(PWM_A, SPEED);
  digitalWrite(MB1, HIGH);  digitalWrite(MB2, LOW);  analogWrite(PWM_B, SPEED);
  delay(time);}
void Forward (int time){  digitalWrite(MA1, HIGH);  digitalWrite(MA2, LOW);  analogWrite(PWM_A, SPEED);
  digitalWrite(MB1, LOW);  digitalWrite(MB2, HIGH);  analogWrite(PWM_B, SPEED);
  delay(time);}
void turnLeft(int time){  digitalWrite(MA1, HIGH);  digitalWrite(MA2, LOW);  analogWrite(PWM_A, SPEED);
  digitalWrite(MB1, LOW);  digitalWrite(MB2, LOW);  analogWrite(PWM_B, 0);
  delay(time);}
void turnRight(int time){  digitalWrite(MA1, LOW);  digitalWrite(MA2, LOW);  analogWrite(PWM_A, 0);
  digitalWrite(MB1, LOW);  digitalWrite(MB2, HIGH);  analogWrite(PWM_B, SPEED);
  delay(time);}
void Stop(int time){  digitalWrite(MA1, LOW);  digitalWrite(MA2, LOW);  analogWrite(PWM_A, 0);
  digitalWrite(MB1, LOW);  digitalWrite(MB2, LOW);  analogWrite(PWM_B, 0);
  delay(time);
}

วันศุกร์ที่ 13 กรกฎาคม พ.ศ. 2561

Arduino 4

โปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติ ด้วย Arduino ราคาถูก พร้อม Code ตัวอย่าง

โปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติ ด้วย Arduino ราคาถูก พร้อม Code 

ตัวอย่าง

ชุดรดน้ำอัตโนมัติด้วย Arduino เป็นต้นแบบให้น้องได้ศึกษาระบบ Smart Farm พื้นฐาน นำไปพัฒนาต่อในอนาคต โดยใช้ Arduino Uno R3 สามารถนำไปพัฒนาใน งาน IOT หรือจะพัฒนาใน แอพพลิเคชั่น Blynk ได้อีกด้วย (โปรเจคนี้จะอยู่ที่ประมาณ 500 บาท)
อุปกรณ์ที่ต้องใช้มีดังต่อไปนี้
สามารถซื้อชุด เซ็ต ได้ที่ 
ในส่วนของวงจรการต่อสายมีดังต่อไปนี้
วงจร รดน้ำต้นไม้อัตโนมัติ ด้วย Arduino
ในส่วนของโปรแกรมตัวอย่าง
const int analogInPin = A0;const int Relay = 2;
int sensorValue = 0;        // ตัวแปรค่า Analog
int outputValue = 0;        // ตัวแปรสำหรับ Map เพื่อคิด %
void setup() {
  Serial.begin(9600);  pinMode(Relay, OUTPUT);}
void loop() {
  sensorValue = analogRead(analogInPin);  outputValue = map(sensorValue, 0, 1023, 100, 0);
  Serial.print("Soil Moisture = ");
  Serial.print(outputValue);  Serial.println(" %");
  if (outputValue <= 40) {  //ตั้งค่า % ที่ต้องการจะรดน้ำต้นไม้
    digitalWrite(Relay, HIGH);  }  else {    digitalWrite(Relay, LOW);  }  delay(1000);}
หลักการทำงานของระบบรดน้ำต้นไม้อัตโนมัติ
โดยปกติแล้ว พืชจะต้องการความชื้นในดินอยู่ที่ประมาณ 40% (แล้วแต่พิชในแต่ละชนิดด้วยน่ะครับ) Sensor วัดความชื้นในดินจะทำการวัดค่าความชื้นในดิน โดยสัญญาณที่ได้ออกมาจะเป็นแบบ Analog ป้อนไปยัง Arduino เพื่อประมวลผล เมื่อ Arduino ได้ทำการวัดตรงตามเงือนไข ก็จะทำการส่ง Logic ไปยัง Relay เพื่อทำการเปิดปั้มน้ำไปรดน้ำต้นไม้ แค่นี้ก็จะได้ โปรเจครดน้ำต้นไม้แบบง่ายๆ

Internet of Things (IoT)

Internet of Things หรือ IoT Internet of Things (IoT)  คือ การที่อุปกรณ์อิเล็กทรอนิกส์ต่างๆ สามารถเชื่อมโยงหรือส่งข้อมูลถึงกันได้ด้วยอิน...