สารบัญ:

อาร์เรย์เซ็นเซอร์เกษตร: 6 ขั้นตอน
อาร์เรย์เซ็นเซอร์เกษตร: 6 ขั้นตอน

วีดีโอ: อาร์เรย์เซ็นเซอร์เกษตร: 6 ขั้นตอน

วีดีโอ: อาร์เรย์เซ็นเซอร์เกษตร: 6 ขั้นตอน
วีดีโอ: โดรนเกษตร รุ่นใหม่ ใหญ่ที่สุด DJI T40 ส่งและสอนการใช้งานโดย KRCSHOP 2024, กรกฎาคม
Anonim
อาร์เรย์เซ็นเซอร์เกษตร
อาร์เรย์เซ็นเซอร์เกษตร

โครงการโดย Jackson Breakell, Tyler McCubbins และ Jakob Thaler สำหรับ EF 230

เกษตรกรรมเป็นปัจจัยสำคัญของการผลิตในสหรัฐอเมริกา พืชสามารถนำไปใช้เพื่อวัตถุประสงค์ที่แตกต่างกันได้หลากหลาย ตั้งแต่วัตถุดิบสำหรับการผลิตเสื้อผ้า ยา และวัตถุเจือปนอาหาร ไปจนถึงการบริโภคโดยตรงของส่วนต่างๆ ของพืช ซึ่งส่วนใหญ่มักจะเป็นผลไม้ที่งอก พืชผลส่วนใหญ่ในสหรัฐอเมริกาปลูกกลางแจ้ง ซึ่งสภาพอากาศหรืออุณหภูมิไม่สามารถควบคุมได้ในปริมาณมาก เมื่อพิจารณาจากสภาพอากาศที่ไม่เอื้ออำนวยอย่างมากสามารถส่งผลกระทบต่อการเจริญเติบโตของพืชผล ในทางกลับกัน ส่งผลกระทบต่อเศรษฐกิจของสหรัฐอเมริกา การตรวจสอบสภาพของทุ่งพืชผลจึงมีความสำคัญ

อุปกรณ์ของเรา นั่นคือกลุ่มเซ็นเซอร์เกษตร ช่วยให้เกษตรกรตรวจสอบสภาพของส่วนที่เลือกไว้ล่วงหน้าของพื้นที่ของตนโดยใช้เซ็นเซอร์ 4 ตัว ได้แก่ เซ็นเซอร์น้ำฝน เซ็นเซอร์ความชื้นในดิน เซ็นเซอร์อุณหภูมิ และเซ็นเซอร์ตาแมว การรวมกันของเซ็นเซอร์เหล่านี้ช่วยให้เกษตรกรสามารถวางแผนผลผลิตพืชผลตามฤดูกาลได้อย่างเพียงพอ ปรับปริมาณน้ำฝนน้อยเกินไปหรือมากเกินไป จัดการกับภัยพิบัติที่อาจฆ่าพืชผลได้ดีขึ้น และประหยัดเวลาและปัญหาจากการเก็บตัวอย่างดิน และใช้อุปกรณ์เซ็นเซอร์ที่มีราคาแพงกว่า ในคำแนะนำนี้ เราจะแนะนำคุณเกี่ยวกับการเดินสายไฟและการเข้ารหัสที่อยู่เบื้องหลังอาร์เรย์เซ็นเซอร์เกษตรของเรา เพื่อให้คุณสร้างของคุณเองได้เช่นกัน

ขั้นตอนที่ 1: รวบรวมวัสดุที่จำเป็น

รวบรวมวัสดุที่จำเป็น
รวบรวมวัสดุที่จำเป็น

ด้านล่างนี้คือรายการวัสดุที่จำเป็นสำหรับการเริ่มต้นใช้งาน"

1. บอร์ด Arduino โดยเฉพาะ Arduino Uno

2. เขียงหั่นขนมขั้นพื้นฐาน

3. ตัวต้านทาน 1x220 โอห์ม

4. สายไฟคละสีต่างๆ

5. สายไมโคร USB เป็น USB

6. ลำโพงติดบอร์ด

7. โฟโตอิเล็กทริคเซนเซอร์

8. เซ็นเซอร์อุณหภูมิ

9. เซ็นเซอร์น้ำฝน

10. เซ็นเซอร์ความชื้นในดิน

11. คอมพิวเตอร์ที่ติดตั้ง Matlab 2017 และ Arduino Support Package (แพ็คเกจสนับสนุนอยู่ในส่วนเสริม)

ขั้นตอนที่ 2: ต่อสายบอร์ดและเชื่อมต่อ

ต่อสายบอร์ดและเชื่อมต่อ
ต่อสายบอร์ดและเชื่อมต่อ

เริ่มต้นด้วยการเดินสายบอร์ดตามที่แสดงด้านบนหรือวิธีใดก็ตามที่เหมาะกับคุณที่สุด มีวิธีการเชื่อมต่อบอร์ดแบบไม่จำกัดอย่างแท้จริง ดังนั้นการกำหนดค่าที่แน่นอนจึงขึ้นอยู่กับคุณจริงๆ หลังจากต่อสายบอร์ดแล้ว ให้เริ่มติดเซ็นเซอร์ของคุณ เซ็นเซอร์ตรวจจับน้ำฝน ความชื้นในดิน และโฟโตอิเล็กทริกเป็นเอาต์พุตแบบแอนะล็อกทั้งหมด ดังนั้นตรวจสอบให้แน่ใจว่าได้ต่อสายเข้ากับส่วนอะนาล็อกใน Arduino ในทางกลับกัน เซ็นเซอร์อุณหภูมิเป็นเอาต์พุตดิจิตอล ดังนั้นตรวจสอบให้แน่ใจว่าได้ต่อสายเข้ากับอินพุตดิจิตอลที่พร้อมใช้งานบน Arduino ของคุณ Arduino ควรมีเอาต์พุตสำหรับ 3.3v และ 5v ดังนั้นตรวจสอบให้แน่ใจว่าเซ็นเซอร์เชื่อมต่อกับแรงดันไฟฟ้าที่เข้ากันได้

หลังจากที่คุณแน่ใจว่าบอร์ดได้ต่อสายอย่างถูกต้องแล้ว ให้เสียบสาย Micro USB เป็น USB จากคอมพิวเตอร์ของคุณเข้ากับพอร์ต Micro USB บนคอมพิวเตอร์ของคุณ และเปิด Arduino ของคุณ เปิด Matlab และตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Arduino Support Package ภายใต้ Add-Ons แล้ว ให้รันคำสั่ง "fopen(serial('nada')))" โดยไม่มี "ข้อผิดพลาดควรปรากฏขึ้น และข้อผิดพลาดควรแจ้ง คุณมี comport ที่พร้อมใช้งานพร้อมตัวเลข เรียกใช้คำสั่ง "a=arduino('comx', 'uno')" โดยที่ x คือหมายเลขของ comport ของคุณเพื่อจับคู่ Arduino ของคุณกับวัตถุ LED บน Arduino ควรกะพริบอย่างรวดเร็วเพื่อระบุว่าเชื่อมต่ออยู่

ขั้นตอนที่ 3: เขียนโค้ดโฟโตอิเล็กทริคและเซ็นเซอร์อุณหภูมิ

รหัสโฟโตอิเล็กทริคและเซ็นเซอร์อุณหภูมิ
รหัสโฟโตอิเล็กทริคและเซ็นเซอร์อุณหภูมิ

ก่อนที่คุณจะเริ่มการเข้ารหัส ให้จดบันทึกตำแหน่งที่เซ็นเซอร์ของคุณเชื่อมต่อกับ Arduino เนื่องจากจะมีความสำคัญสำหรับคำสั่ง readVoltage เริ่มต้นรหัสของคุณโดยการตั้งค่าตัวแปรแสงแดดให้เท่ากับคำสั่ง "readVoltage(a, 'X#')' โดยที่ X# คือพอร์ตที่คุณเชื่อมต่อ และ a คือเพียงเรียก Arduino ที่คุณจับคู่กับตัวแปรนั้น เริ่มต้นคำสั่ง if และตั้งค่าเงื่อนไขแรกสำหรับแสงแดด <3 ตั้งค่าเอาต์พุตเป็น "info. TOD='night'" เพื่อส่งออกช่วงเวลาของวันเป็นโครงสร้าง แล้วเพิ่มคำสั่ง else พร้อมเอาต์พุตเป็น "info. TOD=" วัน'" เนื่องจากนี่คือคำสั่ง else เราจึงไม่ต้องการเงื่อนไข เนื่องจากมันจะใช้ได้กับค่าอื่นๆ ทั้งหมดที่ไม่ได้กำหนดไว้ในคำสั่ง if ตรวจสอบให้แน่ใจว่าคุณเสร็จสิ้นคำสั่ง if ของคุณด้วยการสิ้นสุด และไปยังการเขียนโปรแกรม เซ็นเซอร์อุณหภูมิ

ตั้งค่าตัวแปรเทอร์โมให้เท่ากับคำสั่ง readVoltage อื่น คำสั่งคือ "readVoltage(a, 'X#')" ในกรณีของเรา อุณหภูมิจะต้องถูกแปลงจากหน่วยของแรงดันไฟเป็นเซลเซียส ดังนั้นสมการ "tempC=(thermo-.5).*100" เพื่อแปลงจากแรงดันไฟเป็นเซลเซียส เพื่อความสะดวก เราแปลงอุณหภูมิในเซลเซียสเป็นฟาเรนไฮต์ แต่นี่เป็นเพียงตัวเลือกเท่านั้น

รหัสสำหรับวางวัตถุประสงค์

แสงแดด = อ่านแรงดันไฟฟ้า (a, 'A1') ถ้าแสงแดด <3

info. TOD='คืน'

อื่น

info. TOD='วัน'

จบ

เทอร์โม = readVoltage (a, 'A3');

tempC=(thermo-.5).*100;

info.tempF=(9/5.*tempC)+32

ขั้นตอนที่ 4: เขียนโค้ดเซ็นเซอร์น้ำฝนและความชื้นในดิน

รหัสเซ็นเซอร์น้ำฝนและความชื้นในดิน
รหัสเซ็นเซอร์น้ำฝนและความชื้นในดิน

ตามที่ระบุไว้ในขั้นตอนสุดท้าย ตรวจสอบให้แน่ใจว่าคุณรู้ว่าพอร์ตใดที่เซ็นเซอร์ของคุณเสียบเข้ากับบอร์ด Arduino เนื่องจากจะทำให้ขั้นตอนนี้น่าหงุดหงิดน้อยลง เริ่มต้นด้วยเซ็นเซอร์น้ำฝน และเริ่มคำสั่ง if ตั้งค่าเงื่อนไขแรกสำหรับ "readVoltage(a, 'X#')>4" และตั้งค่าเอาต์พุตเป็น "info. Rain='no precipitation" เพิ่ม elseif และตั้งค่าเงื่อนไขเป็นคำสั่ง readVoltage ก่อน แต่ตั้งค่าเป็น >2 เพิ่ม "&&" เพื่อแสดงเงื่อนไขอื่นที่ต้องปฏิบัติตาม และตั้งค่าเป็นคำสั่ง readVoltage เหมือนเมื่อก่อน และตั้งค่าเป็น <=4 ผลลัพธ์จะเป็น "info. Rain='misting'" สุดท้าย เพิ่ม else และตั้งค่าเอาต์พุตเป็น "info. Rain='downpour'" คุณอาจต้องปรับค่าสำหรับเงื่อนไขตามความชื้นแวดล้อมของห้องที่คุณกำลังทำงานอยู่

ถัดไป เริ่มรหัสสำหรับเซ็นเซอร์ความชื้นในดิน และเริ่มต้นด้วยคำสั่ง if ตั้งค่าเงื่อนไขของคำสั่ง if เป็น "readVoltage(a, 'X#')>4 และเพิ่มเอาต์พุต "info.soil='dry'" เพิ่มคำสั่ง elseif และใช้คำสั่ง readVoltage ด้านบน ตั้งค่าสำหรับ > 2. เพิ่ม "&&" และตั้งค่าคำสั่ง readVoltage อื่นสำหรับ <=4 ตั้งค่าเอาต์พุตเป็น "info.soil='optimal saturation'" เพิ่มคำสั่ง else และตั้งค่าเอาต์พุตเป็น "info.soil='flood' " และอย่าลืมเพิ่มจุดสิ้นสุด

รหัสสำหรับวางวัตถุประสงค์

ถ้า readVoltage(a, 'A0')>4 info. Rain='no precipitation'

elseif readVoltage(a, 'A0')>2 && readVoltage(a, 'A0')<=4

info. Rain='หมอก'

อื่น

info. Rain='ฝนตก'

จบ

ถ้า readVoltage(a, 'A2')>4

info.soil='แห้ง'

elseif readVoltage(a, 'A2')>2 && readVoltage(a, 'A0')<=4

info.soil='ความอิ่มตัวที่เหมาะสมที่สุด'

อื่น

info.soil='น้ำท่วม'

จบ

ขั้นตอนที่ 5: การเข้ารหัสเอาต์พุตของลำโพงและกล่องข้อความ

การเข้ารหัสเอาต์พุตของลำโพงและกล่องข้อความ
การเข้ารหัสเอาต์พุตของลำโพงและกล่องข้อความ

เอาต์พุตสำหรับอุปกรณ์นี้สามารถแตกต่างกันอย่างมาก แต่ในกรณีนี้ เราจะแนะนำคุณผ่านเอาต์พุตของลำโพงที่ติดตั้งบนอุปกรณ์โดยตรงและเอาต์พุตของกล่องข้อความที่สามารถดูได้บนคอมพิวเตอร์ระยะไกล ลำโพงของเราได้รับการออกแบบให้มีความถี่ที่แตกต่างกัน ความหมายที่ต่ำกว่านั้นแย่กว่านั้น สำหรับอุณหภูมิพืชผลที่เหมาะสม แสงแดด ความชื้นในดิน และการตกตะกอน เริ่มต้นโค้ดเอาต์พุตของลำโพงด้วยคำสั่ง if และตั้งค่าเงื่อนไขเป็นคำสั่ง "readVoltage(a, 'X#')>4 || info.tempF=3 || readVoltage(a, 'A2')>2 && readVoltage('A0')<=4". เพิ่มคำสั่ง playTone เดียวกันกับที่แสดงด้านบน แต่เปลี่ยน 200 เป็น 1,000 เพื่อสร้างโทนเสียงที่สูงขึ้นและเป็นบวกมากขึ้น จากนั้น เพิ่มคำสั่งอื่น และเพิ่มคำสั่ง playTone เดิมอีกครั้ง แต่เปลี่ยน 1,000 เป็น 1500 โทนเสียงที่แตกต่างกันเหล่านี้บ่งบอกถึงความรุนแรงของสถานการณ์ในสนาม ตรวจสอบให้แน่ใจว่าคุณเพิ่มจุดสิ้นสุดเพื่อให้คำสั่ง if ของคุณสมบูรณ์

ส่วนสุดท้ายของรหัสของเราจะเป็นผลลัพธ์ที่สร้างกล่องข้อความ สร้างสตริงโดยใช้เครื่องหมาย ' ในวงเล็บ และแปลงส่วนต่างๆ ของโครงสร้างเป็นสตริงโดยใช้คำสั่ง "num2str(info.x)" โดยที่ x เป็นชื่อโครงสร้างย่อยในโครงสร้างข้อมูล ใช้ "string newline" เพื่อเพิ่มขึ้นบรรทัดใหม่ในกล่องข้อความของคุณ และพิมพ์ข้อความของคุณในข้อความโดยใช้เครื่องหมายอัญประกาศ เพิ่มค่าที่แท้จริงของฟิลด์ลงในสตริงโดยใช้คำสั่ง num2str ดังกล่าว สุดท้าย ด้วยการกำหนดสตริง ให้ใช้คำสั่ง "msgbox(string)" เพื่อแสดงข้อมูลเป็นกล่องข้อความบนจอภาพของคุณ

รหัสสำหรับวางวัตถุประสงค์

ถ้า readVoltage(a, 'A2')>4 || info.tempF<32 playTone(a, 'D9', 200, 1)

Elseif แสงแดด>=3 || readVoltage(a, 'A2')>2 && readVoltage(a, 'A0')<=4

playTone (a, 'D9', 1000, 3)

อื่น

playTone (a, 'D9', 1500, 5)

จบ

string = ['อุณหภูมิคือ (องศา F) ', num2str(info.tempF)]

string=[string ขึ้นบรรทัดใหม่ 'ดินคือ', num2str(info.soil)]

string=[string ขึ้นบรรทัดใหม่ 'การตกตะกอนภายนอกคือ ', num2str(info. Rain)]

string=[string ขึ้นบรรทัดใหม่ 'เวลาของวันคือ ', num2str(info. TOD)]

msgbox(สตริง)

ขั้นตอนที่ 6: บทสรุป

บทสรุป
บทสรุป

ในขณะที่โลกยังคงพึ่งพาทางเลือกสังเคราะห์มากขึ้นเรื่อยๆ เมื่อเทียบกับสินค้าที่เก็บเกี่ยวจากพืชผลก่อนหน้านี้ การเกษตรจะยังคงเป็นปัจจัยที่เกี่ยวข้องและสำคัญของเศรษฐกิจมาเป็นเวลานานอย่างแน่นอน การติดตามตรวจสอบพื้นที่เพาะปลูกอย่างเหมาะสมเป็นสิ่งสำคัญสำหรับเกษตรกรในการเก็บเกี่ยวผลผลิตของตนให้ได้มากที่สุด และด้วยอุปกรณ์ของเรา ไม่เพียงแต่จะสามารถตรวจสอบพื้นที่เพาะปลูกทั้งหมดจากระยะไกลเท่านั้น แต่ยังสามารถทำได้ในราคาถูกและง่ายอีกด้วย ติดตั้งและเชื่อถือได้ เราหวังว่าคู่มือนี้จะได้รับการพิสูจน์ว่าให้ข้อมูลและปฏิบัติตามได้ง่าย และเราหวังว่าอุปกรณ์ดังกล่าวจะเป็นประโยชน์สำหรับสิ่งที่คุณต้องการนำไปใช้หรือทดลองกับอุปกรณ์ดังกล่าว

มีความสุขในการเข้ารหัส

ทีมงานอาเรย์เซ็นเซอร์เกษตร

แนะนำ: