4 ก.พ. 2021 เวลา 12:30 • ไอที & แก็ดเจ็ต
การรดน้ำต้นไม้ออโต้นี่เราจะใช้ Arduinooo กันค้าาาาา
กล่าวถึงงงกันจ้ากกกโหน่ยยย >>Arduino คือ โครงการที่นำชิปไอซีไมโครคอนโทรลเลอร์ตระกูลต่างๆ มาใช้ร่วมกันในภาษา C ซึ่งภาษา C นี้เป็นลักษณะเฉพาะ คือมีการเขียนไลบารี่ของ Arduino ขึ้นมาเพื่อให้การสั่งงานไมโครคอนโทรลเลอร์ที่แตกต่างกัน สามารถใช้งานโค้ดตัวเดียวกันได้ โดยตัวโครงการได้ออกบอร์ดทดลองมาหลายๆรูปแบบ เพื่อใช้งานกับ IDE ของตนเอง สาเหตุหลักที่ทำให้ Arduino เป็นนิยมมาก เป็นเพราะซอฟแวร์ที่ใช้งานร่วมกันสามารถโหลดได้ฟรี และตัวบอร์ดทดลองยังถูกแจกแปลน ทำให้ผู้ผลิตจีนนำไปผลิตและขายออกตลาดมาในราคาที่ถูกมากๆ
พูดง่ายๆคือสมองของสายยางนั้นเอง
Auduino นั้นได้ใช้ชิป AVR เป็นหลักใน Auduino แทบรุ่น สาเหตุมาจากไมโครคอนโทรเลอร์ของตะกูล AVR นั้นมีความทันสมัย ในชิปในบางตัวสามารถเชื่อมต่อผ่าน USB ได้โดยตรง สามารถใช้กับคอมพิวเตอร์สมัยใหม่ได้เป็นอย่างดี และในไมโครคอนโทรเลอร์ตะกูล AVR ยังมีส่วนของโปรแกรมพิเศษที่เรียกว่า Bootloader อยู่ในระดับล่างกว่าส่วนโปรแกรมปกติ ซึ่งจะเป็นส่วนโปรแกรมที่จะถูกเรียกขึ้นมาก่อนการเรียกโปรแกรมปกติ ทำให้สามารถเขียนสั่งให้ทำงานใดๆก็ได้ ก่อนการเรียกโปรแกรมปกติ ทำให้ Arduino นั้นอาศัยส่วนโปรแกรมแกรมพิเศษนี้ในการทำให้ชิปสามารถโปรแกรมผ่านพอร์ตอนุกรมชนิด UART ได้ จึงทำให้การเขียนโปรแกรมลงไปในชิปใช้เพียง USB to UART ก็เพียงพอแล้ว แต่การโปรแกรมด้วยการใช้โปรโตคอล UART ก็มีข้อเสียตรงที่ต้องใช้เวลาในการบูตเข้าโปรแกรมปกติประมาณ 1 – 2 วินาที
พูดถึงหลักการทำงาน
การใช้งาน จะต้องเสียบแผ่น PCB สำหรับวัดลงดิน เพื่อให้วงจรแบ่งแรงดันทำงานได้ครบวงจร จากนั้นจึงใช้วงจรเปรียบเทียบแรงดันโดยใช้ไอซีออปแอมปเบอร์ LM393 เพื่อวัดแรงดันเปรียบเทียบกันระหว่างแรงดันดันที่วัดได้จากความชิ้นในดิน กับแรวดันที่วัดได้จากวงจรแบ่งแรงดันปรับค่าโดยใช้ Trimpot หากแรงดันที่วัดได้จากความชิ้นของดิน มีมากกว่า ก็จะทำให้วงจรปล่อยลอจิก 1 ไปที่ขา D0 แต่หากความชิ้นในดินมีน้อย ลอจิก 0 จะถูกปล่อยไปที่ขา D ขา A0 เป็นขาที่ต้อโดยตรงกับวงจรที่ใช้วงความชื้นในดิน ซึ่งให้ค่าแรงดันออกมาตั้งแต่ 0 – 5V (ในทางอุดมคติ) โดยหากความชิ้นในดินมีมาก แรงดันที่ปล่อยออกไปก็จะน้อยตามไปด้วย ในลักษณะของการแปรผันกลับ
>>>เอาง่ายๆที่เข้าใจได้ทุกคนก็คือเจ้าแผ่นที่ชื่อว่า PCB เนี่ยละเป็นตัววัดลงดินหาความชื่้นเมื่อดินชื้นมากน้ำจะไหลออกน้อย แต่ถ้าดินชื้นน้อยน้ำจะไหลออกมานั้นเองค่ะ
<เท่านี้เรากะจะได้การรดต้นไม้แบบอัตโนมัติแล้วค้าาาา แท๊นแทนนนนนนนนน>>>
แฮร่ๆๆ การทำก็ฝึกฝนกันต่อไปไอซ์ก็พึ่งได้มาจับ Arduino ยังมีงงๆบ้างพังบ้างแต่ดีที่มันไม่แพงมาก หาซื้อที่ Alibaba ได้นะคะ
สำหรับคนที่อยากได้ Soure Code ในการเอาไปทดลองนะคะอยู่ด้านล่างนี้เลยVVV
Source Code การทำงานของโปรแกรม Arduino สำหรับคนที่ต้องการไปทดลองเล่นนะคะ ใช้ภาษา C
ถ้าชอบเนื้อหาก็กดติดตามไว้เลยน้าค้าาาาาาเราจะได้เจอกันบ่อยๆ
ขอบคุณสำหรับการติดตามค้าาาาา
#include “LiquidCrystal_I2C.h”
#include “DHT.h”
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
int sensor_Pin = A0;
double sensor_Value = 0;
double moisture_Value = 0;
const int MOISTURE_LEVEL = 300;
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin();
pinMode(7, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
float t = dht.readTemperature(true);
sensor_Value = analogRead(sensor_Pin);
Serial.print(“Soil Moisture Sensor Value = “);
Serial.print(sensor_Value);
moisture_Value = (sensor_Value * 100) / 1000;
moisture_Value = 100 – moisture_Value;
Serial.print(” Soil Moisture Value = “);
Serial.print(moisture_Value);
Serial.println(” %”);
Serial.print(” Temp = “);
Serial.print(t);
Serial.println(” C”);
lcd.setCursor(0, 0);
lcd.print(“Temp=” + String(t) + ‘C’);
lcd.setCursor(0, 1);
lcd.print(“Moisture=” + String(moisture_Value) + ‘%’);
if(sensor_Value > MOISTURE_LEVEL){
digitalWrite(7,HIGH);
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
}
else {
digitalWrite(7,LOW);
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
}
delay(1000);
}
โฆษณา