หน้าแรก ดูโปรเจกต์ทั้งหมด
Easy

โปรเจกต์ ระบบ Smart Garden IOT

ระบบ Smart Garden IOT ที่ประกอบด้วยระบบรดน้ำอัตโนมัติ ระบบ Smart Surveillance โดยใช้ PIR sensor และระบบ smart Gating โดยใช้ ultsonic

โปรเจกต์ ระบบ Smart Garden IOT

รายการอุปกรณ์และเครื่องมือ

1x LDR, 5 Mohm
-
1x Adafruit NeoPixel Digital RGB LED Strip 144 LED, 1m White
-
1x Grove - 4-Channel SPDT Relay
-
1x SparkFun Soil Moisture Sensor (with Screw Terminals)
-
1x PIR Motion Sensor (generic)
-
1x DHT11 Temperature & Humidity Sensor (3 pins)
-
1x ESP8266 ESP-01
-
1x Buzzer, Piezo
-
1x Ultrasonic Sensor - HC-SR04 (Generic)
-
1x SG90 Micro-servo motor
-
1x Arduino UNO
-
}

รายละเอียดและวิธีทำ

Code สำหรับ Wi-fi:

#include<Servo.h>

#include <dht.h>

dht DHT ;

#define DHT11_PIN 9

int sensor_pin = A0; // อินพุต Soil Sensor ที่ Analog PIN A0

int output_value ;

int Temp;

int Humidity;

int relayPin = A5;

Servo motor;

int pir;

int pirstate= LOW;

int ldr;

int trigPin =8;

int echoPin = 7;

//////////////////////////////////////////////

// รวม Library RemoteXY //

//////////////////////////////////////////////

// RemoteXY เลือกโหมดการเชื่อมต่อและรวม Library

#define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

#include <RemoteXY.h>

// การตั้งค่าการเชื่อมต่อ RemoteXY

#define REMOTEXY_SERIAL Serial

#define REMOTEXY_SERIAL_SPEED 115200

#define REMOTEXY_WIFI_SSID "Project Smart Garden"

#define REMOTEXY_WIFI_PASSWORD "12345678@"

#define REMOTEXY_SERVER_PORT 6377

// การกำหนดค่า RemoteXY

#pragma pack(push, 1)

uint8_t RemoteXY_CONF[] =

{ 255, 4, 0, 33, 0, 12, 1, 14, 24, 1,

2, 1, 3, 21, 22, 11, 1, 26, 31, 31,

79, 78, 0, 79, 70, 70, 0, 2, 1, 3,

45, 22, 11, 1, 26, 31, 31, 79, 78, 0,

79, 70, 70, 0, 2, 1, 36, 21, 22, 11,

1, 26, 31, 31, 79, 78, 0, 79, 70, 70,

0, 2, 1, 36, 45, 22, 11, 1, 26, 31,

31, 79, 78, 0, 79, 70, 70, 0, 129, 0,

7, 3, 49, 6, 31, 83, 77, 65, 82, 84,

32, 71, 65, 82, 68, 69, 78, 0, 129, 0,

1, 15, 25, 3, 31, 87, 97, 116, 101, 114,

105, 110, 103, 32, 83, 121, 115, 116, 101, 109,

0, 129, 0, 31, 15, 31, 3, 31, 83, 117,

114, 118, 101, 105, 108, 108, 97, 110, 99, 101,

32, 83, 121, 115, 116, 101, 109, 32, 0, 129,

0, 2, 39, 24, 4, 31, 83, 109, 97, 114,

116, 32, 76, 69, 68, 39, 115, 0, 129, 0,

32, 39, 28, 4, 31, 71, 97, 116, 105, 110,

103, 32, 83, 121, 115, 116, 101, 109, 0, 67,

5, 38, 68, 20, 5, 120, 26, 11, 67, 5,

38, 78, 20, 5, 120, 26, 11, 67, 5, 38,

88, 20, 5, 120, 26, 11, 129, 0, 2, 68,

28, 4, 31, 84, 101, 109, 112, 114, 97, 116,

117, 114, 101, 40, 67, 41, 0, 129, 0, 2,

78, 24, 4, 31, 72, 117, 109, 105, 100, 105,

116, 121, 40, 37, 41, 0, 129, 0, 2, 88,

23, 4, 31, 77, 111, 105, 115, 116, 117, 114,

101, 40, 37, 41, 0 };

// โครงสร้างนี้กำหนดตัวแปรและเหตุการณ์ทั้งหมดของ Control Interface ของคุณ

struct {

// ตัวแปรอินพุต

uint8_t switch_1; // =1 ถ้า Switch ON และ =0 ถ้า OFF

uint8_t switch_2; // =1 ถ้า Switch ON และ =0 ถ้า OFF

uint8_t switch_3; // =1 ถ้า Switch ON และ =0 ถ้า OFF

uint8_t switch_4; // =1 ถ้า Switch ON และ =0 ถ้า OFF

// ตัวแปรเอาต์พุต

char text_T[11]; // ข้อความ UTF8 ปิดท้ายด้วย zero

char text_H[11]; // ข้อความ UTF8 ปิดท้ายด้วย zero

char text_M[11]; // ข้อความ UTF8 ปิดท้ายด้วย zero

// ตัวแปรอื่นๆ

uint8_t connect_flag; // =1 ถ้าเชื่อมต่อแล้ว, มิเช่นนั้น =0

} RemoteXY;

#pragma pack(pop)

/////////////////////////////////////////////

// จบส่วนการรวม RemoteXY //

/////////////////////////////////////////////

#define PIN_SWITCH_1 A0

#define PIN_SWITCH_2 A1

#define PIN_SWITCH_3 10

#define PIN_SWITCH_4 6

void setup()

{

RemoteXY_Init ();

pinMode (PIN_SWITCH_1, OUTPUT);

pinMode (PIN_SWITCH_2, OUTPUT);

pinMode (PIN_SWITCH_3, OUTPUT);

pinMode (PIN_SWITCH_4, OUTPUT);

// TODO ใส่ Code setup ของคุณที่นี่

pinMode(A5, OUTPUT);

pinMode(9, INPUT);

pinMode(A4, OUTPUT);

pinMode(10, INPUT);

pinMode(A1, INPUT);

pinMode(5, OUTPUT);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

motor.attach(6);

motor.write(180);

pinMode(sensor_pin, INPUT);

pinMode(relayPin, OUTPUT);

// Serial.begin(9600);

}

void loop()

{

RemoteXY_Handler ();

digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);

digitalWrite(PIN_SWITCH_2, (RemoteXY.switch_2==0)?LOW:HIGH);

digitalWrite(PIN_SWITCH_3, (RemoteXY.switch_3==0)?LOW:HIGH);

digitalWrite(PIN_SWITCH_4, (RemoteXY.switch_4==0)?LOW:HIGH);

// DHT และ Soil Sensor พร้อม Pump

int chk = DHT.read11(DHT11_PIN);

Temp= DHT.temperature;

Humidity=DHT.humidity;

output_value= analogRead(sensor_pin);

dtostrf(Temp, 0, 1, RemoteXY.text_T);

dtostrf(Humidity, 0, 1, RemoteXY.text_H);

dtostrf(output_value, 0, 1, RemoteXY.text_M);

delay(2000);

if(output_value<30){

digitalWrite(relayPin, LOW);

}

else

{

digitalWrite(relayPin, HIGH);

}

delay(2500);

pir=digitalRead(10);

ldr=analogRead(A1);

// ระบบ Surveillance

// Serial.println(pir);

if(pir==1)

{

digitalWrite(A4, HIGH);

if(pirstate==LOW){

pirstate== HIGH;

}

}

else

{

digitalWrite(A4, LOW);

if(pirstate==HIGH){

pirstate== LOW;

}

}

delay(400);

// ระบบไฟอัตโนมัติ

//Serial.print("LDR");

//Serial.println(ldr);

if(ldr<50)

{

digitalWrite(5, LOW);

}

else

{

digitalWrite(5, HIGH);

}

delay(400);

// ประตูอัตโนมัติ

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration=pulseIn(echoPin, HIGH);

distance =duration*0.034/2;

//Serial.print(distance);

// Serial.println("CM");

delay(10);

if(distance<=100)

{

motor.write(180);

}

else

{

motor.write(90);

}

delay(400);

}

Code สำหรับ Serial monitor:

#include<Servo.h>

#include <dht.h>

dht DHT ;

#define DHT11_PIN 9

int sensor_pin = A0; // อินพุต Soil Sensor ที่ Analog PIN A0

int output_value ;

int Temp;

int Humidity;

int relayPin = A5;

Servo motor;

int pir;

int pirstate= LOW;

int ldr;

int trigPin =8;

int echoPin = 7;

void setup() {

pinMode(A5, OUTPUT);

pinMode(9, INPUT);

pinMode(A4, OUTPUT);

pinMode(10, INPUT);

pinMode(A1, INPUT);

pinMode(5, OUTPUT);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

motor.attach(6);

motor.write(180);

pinMode(sensor_pin, INPUT);

pinMode(relayPin, OUTPUT);

Serial.begin(9600);

}

void loop() {

pir=digitalRead(10);

ldr=analogRead(A1);

// DHT และ Soil Sensor พร้อม Pump

int chk = DHT.read11(DHT11_PIN);

Temp= DHT.temperature;

Humidity=DHT.humidity;

output_value= analogRead(sensor_pin);

output_value = map(output_value, 550, 10, 0, 100);

Serial.print("Temp: ");

Serial.print(Temp);

//Serial.print((char)223);

Serial.println("C");

Serial.print("Humidity: ");

Serial.print(Humidity);

Serial.println("%");

delay(1500);

Serial.print("Mositure: ");

Serial.print(output_value);

Serial.println("%");

delay(1500);

if(output_value<30){

digitalWrite(relayPin, LOW);

}

else

{

digitalWrite(relayPin, HIGH);

}

delay(2500);

// ระบบ Surveillance

Serial.print("PIR:");

Serial.println(pir);

if(pir==1)

{

digitalWrite(A4, HIGH);

if(pirstate==LOW){

pirstate== HIGH;

}

}

else

{

digitalWrite(A4, LOW);

if(pirstate==HIGH){

pirstate== LOW;

}

}

delay(400);

// ระบบไฟอัตโนมัติ

Serial.print("LDR:");

Serial.println(ldr);

if(ldr<50)

{

digitalWrite(5, LOW);

}

else

{

digitalWrite(5, HIGH);

}

delay(400);

// ประตูอัตโนมัติ

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration=pulseIn(echoPin, HIGH);

distance =duration*0.034/2;

Serial.print("UTSO:");

Serial.print(distance);

Serial.println("CM");

delay(10);

if(distance<=100)

{

motor.write(180);

}

else

{

motor.write(90);

}

delay(400);

}

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: smart-garden-iot-system-84fe13
699 บาท
PromptPay QR Code