สารบัญ:

เคาน์เตอร์ Honey Bee: 4 ขั้นตอน (พร้อมรูปภาพ)
เคาน์เตอร์ Honey Bee: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เคาน์เตอร์ Honey Bee: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เคาน์เตอร์ Honey Bee: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Flow Hive honey harvesting 2024, ธันวาคม
Anonim
เคาน์เตอร์ผึ้ง
เคาน์เตอร์ผึ้ง
เคาน์เตอร์ผึ้ง
เคาน์เตอร์ผึ้ง
เคาน์เตอร์ผึ้ง
เคาน์เตอร์ผึ้ง

ที่ซึ่งการแบ่งงานของผึ้งมีความก้าวหน้าอย่างต่อเนื่องเป็นเวลา 25 ล้านปี… สิ่งมีชีวิตเหนือมนุษย์ของเรานั้นซับซ้อนและซับซ้อนมากขึ้นในทุกทิศทาง… ดังนั้นผึ้งเคาน์เตอร์… โดย: thomashudson.org

ดูการออกแบบที่ได้รับการปรับปรุงที่นี่: Honey Bee Counter II

4/28/19 - ฉันกำลังขุดโครงการนี้อีกครั้ง การออกแบบล่าสุดที่ฉันวางแผนจะปรับปรุงนั้นใช้เวลานานมาก ราคาของแผงวงจรพิมพ์ (PCB) ลดลงเล็กน้อย ดังนั้นฉันจึงสร้างบอร์ดเซ็นเซอร์ขนาดใหญ่ 24 เกท และยาวประมาณ 14.5" เพื่อข้ามไปจนสุดรัง และยังมีความกว้างประมาณ 1.5" ออก IR ใด ๆ จากดวงอาทิตย์ แจ้งให้เราทราบหากคุณมีคำถาม / ความคิดใด ๆ

ข้อมูลสดตั้งแต่ - 25 มิถุนายน 2555 ฉันได้ย้ายออกจากข้อมูลสด… เวอร์ชัน 2 ของฉันมีการ์ด SD และฉันกำลังร่วมมือกับมหาวิทยาลัยเพื่อทำวิจัยบางอย่าง… อย่าลังเลที่จะสร้างเครื่องตรวจจับฝูงที่เปิดใช้งาน WIFI ของคุณเอง และฉัน' ชอบที่จะเป็นหุ้นส่วนกับใครสักคนที่ต้องการขายให้คนทั่วไป

ขั้นตอนที่ 1: ประกาศ

แถลงการณ์
แถลงการณ์
แถลงการณ์
แถลงการณ์
แถลงการณ์
แถลงการณ์

Bee Counter - เวอร์ชัน 2, 14 ตุลาคม 2555 - การบันทึกข้อมูล micro SD - นาฬิกาเรียลไทม์ปิดเคาน์เตอร์ในเวลากลางคืนเพื่อลดพลังงาน - แยกไฟ LED ออกจากไมโครคอนโทรลเลอร์เพื่อลดพลังงานเฉลี่ยเป็น 6.6 ma เมื่อไม่ใช้งาน - แบตเตอรี่ขนาดเล็กจะมีอายุการใช้งาน เป็นเวลาหลายเดือน - พลังงานแสงอาทิตย์พร้อมใช้ - เซ็นเซอร์อุณหภูมิไม่จำกัด - สามารถประเมินขนาดของผึ้งได้ (คนงานเทียบกับโดรน) และตรวจสอบการทำงานของโดรน/คนงาน - รูปแบบการเลี้ยวหรือประตูที่พิมพ์ 3 มิติ - สำหรับการขายโดยไม่มีแบตเตอรี่ $400 หรือทำ เป็นเจ้าของ (ดูด้านล่าง) ต่อไปนี้คือข้อกำหนดสำหรับเวอร์ชัน 1 รายละเอียดที่สอนได้นี้เกี่ยวกับเวอร์ชัน 1 ซึ่งสามารถอัปเกรดเป็นเวอร์ชัน 2 ได้อย่างง่ายดาย แม้ว่าฉันไม่ได้จัดเตรียมแผนทั้งหมดไว้ - ความแม่นยำ 95% - ใช้พลังงานจาก USB - ควรมีฝาปิดด้านบนกันฝน - ผึ้งจะปรับตัวให้เข้ากับช่องเปิดใหม่ภายในไม่กี่นาที - การตรวจสอบแบบเรียลไทม์บน Google เอกสาร - การเชื่อมต่อ USB ถ่ายโอนข้อมูลไปยังไฟล์ข้อความแล็ปท็อปของคุณ นี่คือแผนงานที่จะสร้าง ของคุณเอง มีคำแนะนำทั่วไปสำหรับการสร้างต้นแบบ หรือคุณสามารถไปที่หน้าวงจรและคัดลอกบอร์ดและวงจรที่แน่นอนของฉัน 1. ซื้อเซ็นเซอร์อินฟราเรด (IR) สองสามตัว - Sparkfun: https://www.sparkfun.com/products/9542 - รับตัวต้านทาน 30K 50K และ 100K สำหรับทดสอบความไวอินพุตดิจิตอล.. - รับ 10, 20, และตัวต้านทาน 50 โอห์มสำหรับเปิดไฟ IR LED 2 สร้างต้นแบบชิ้นส่วนของคุณด้วย Arduino - ฉันใช้ผึ้งตายบนสายไฟ - มันเป็นวงจรที่ง่าย 3. เลือกไมโครคอนโทรลเลอร์… ฉันใช้ Teensy ++ - ส่วนต่อประสานผู้ใช้เดียวกันกับ Arduino. - มีอินพุต/เอาต์พุต 46 รายการ - ราคาถูก และ - ออกแบบเฉพาะที่นี่ในพอร์ตแลนด์.. 4. ออกแบบแผงวงจรพิมพ์ด้วย EAGLE ฟรี - ฉันเรียน 4 ชั่วโมงที่ dorkbotpdx.org ที่นี่ในพอร์ตแลนด์ ซอฟต์แวร์ฟรี - ให้พิมพ์ผ่าน dorkbot ในพอร์ตแลนด์ $45 สำหรับ 3 บอร์ด 5. ใส่ทุกอย่างเข้าด้วยกัน - ประสานส่วนประกอบของคุณบนบอร์ด - ปรับเทียบเซ็นเซอร์ของคุณ - ปรับแต่งการเขียนโปรแกรมของคุณ ค่าใช้จ่ายคร่าวๆ และส่วนประกอบสำหรับบอร์ดของฉัน ~ $110 - แผงวงจรพิมพ์ $45 - จำนวน (44) QRE1113 IR Sensors $33 - Teensy ++ $24 - ตัวต้านทานและหมุด $10 - เวลาของฉัน $ouch! ส่งข้อความถึงฉันหากคุณสนใจให้ฉันประกอบชุดคิท เพราะมันอาจจะเป็นเงิน 130 ดอลลาร์ ถ้าคุณอยากบัดกรีและยิงกาวร้อนด้วยตัวเอง!

ขั้นตอนที่ 2: วงจร

วงจร
วงจร
วงจร
วงจร
วงจร
วงจร

รายละเอียดเพิ่มเติมที่จะตามมาแต่เรียบง่ายสุดๆ…Sparkfun จำหน่ายเซ็นเซอร์อินฟราเรดหรือเซ็นเซอร์ IR มันคือ LED และเซ็นเซอร์! มีประโยชน์อย่างบ้าคลั่ง!. เมื่อผึ้งผ่านใต้ LED แสงจะสะท้อนกลับไปที่เซ็นเซอร์.. (เป็นทรานซิสเตอร์ภาพถ่าย) และทริกเกอร์อินพุตดิจิตอลไปยัง Arduino ฉันเรียงชิปสองตัวติดกัน… ขณะที่ผึ้งเดินผ่านประตูถ้ามันชนกับเซ็นเซอร์ด้านในก่อน… มันจะออกไป.. ถ้ามันกระทบกับเซ็นเซอร์ภายนอกก่อน มันจะเข้ามา เพิ่มเติมเกี่ยวกับการเขียนโปรแกรม… ดูแบบเต็ม แนบไฟล์แผนผังและ GERBER - ฉันใช้ LED 4 ดวงในซีรีย์โดยมีตัวต้านทาน 10 โอห์มหนึ่งตัวที่ส่วนท้าย.. ซึ่งเท่ากับ 1.2 โวลต์ลดลงต่อ LED - คุณสามารถตรวจสอบแรงดันไฟ LED ตกด้วยเครื่องมือเว็บออนไลน์แบบนี้ - หากคุณสร้างชุดเดียวกันกับฉัน คุณจะได้รับเซ็นเซอร์ IR ในราคาถูกกว่าเล็กน้อยผ่าน Digikey ที่นี่ - Pololu ยังจำหน่ายเซ็นเซอร์ IR แบบเดียวกันบนบอร์ด (อาร์เรย์) และมีโค้ดและตัวอย่างอยู่ที่นี่ - ตามแผนผังขนาดใหญ่ด้านล่าง ฉันใช้ตัวต้านทาน 100k ohm กับกราวด์ สิ่งนี้จะเพิ่มความไว หากคุณใช้ตัวต้านทานที่มีขนาดเล็กกว่า ตัวต้านทานจะมีความไวน้อยลง เป็นโฟโต้ทรานซิสเตอร์ NPN ราคาและส่วนประกอบคร่าวๆ สำหรับบอร์ดของฉัน ~ $110 - แผงวงจรพิมพ์ $45 - qty(44) QRE1113 IR Sensors $33 - Teensy ++ $24 - qty(11) ตัวต้านทาน 10 ohm 0805 - qty(44) 100k 0805 ตัวต้านทาน - 26 ส่วนหัวและ 26 หมุดสำหรับติด Teensy เข้ากับกระดาน $3 - เวลาของฉัน $ouch! ส่งข้อความหาฉันหากคุณสนใจให้ฉันประกอบชุดคิท เพราะมันอาจจะเป็นเงิน 150 ดอลลาร์ ถ้าคุณอยากบัดกรีและยิงกาวร้อนด้วยตัวเอง!

ขั้นตอนที่ 3: การเขียนโปรแกรม - Easy

การเขียนโปรแกรม - Easy
การเขียนโปรแกรม - Easy

Teensy ถูกตั้งโปรแกรมใน Arduino… หรือ C++ แต่ฉันค่อนข้างคุ้นเคยกับ Arduino… รหัสที่แนบมาด้านล่าง /* สำหรับสองเกตเวย์แรก: A และ B. */ // ค่าคงที่นี้จะไม่เปลี่ยนแปลง: const int ain = 44; //pin 44 เป็นอินพุตดิจิตอลตัวแรกสำหรับ Gate A const int aout = 45; // pin 45 เป็นอินพุตดิจิตอลตัวที่สองสำหรับ Gate A const int bin = 42; // เหมือนกันสำหรับ Gate B const int bout = 43; // เหมือนกันสำหรับ Gate B // ตัวแปรจะเปลี่ยน: int ins = 0; // นับเข้าและออก int outs = 0; int ai = 0; // สถานะขาที่ 1 ของเกต A int lai = 0; // Gate A สถานะสุดท้ายของพินที่ 1 int ao = 0; // ประตู A สถานะพินที่ 2 int lao = 0; // Gate A สถานะสุดท้ายของพินที่ 2 int bi = 0; int lbi = 0; int bo = 0; int lbo = 0; จำนวน int = 0; // นี่เป็นเพียงการทดสอบว่ามีการเปลี่ยนแปลงในการนับผึ้งของเราหรือไม่ int lcount = 0; การตั้งค่าเป็นโมฆะ () { // เริ่มต้นพินปุ่มเป็นอินพุต: pinMode (ain, INPUT); โหมดพิน (aout, INPUT); pinMode(ถัง, INPUT); pinMode (การแข่งขัน, INPUT); // เริ่มต้นการสื่อสารแบบอนุกรม: Serial.begin(38400); // แตกต่างจาก Arduino เล็กน้อยที่นี่…. 38400 } void loop () { // อ่านพินอินพุตของปุ่มกด: ai = digitalRead (ain); ao = digitalRead (ออก); bi = digitalRead (ถัง); บ่อ = digitalRead (การแข่งขัน); if (lai != ai){ // มีสถานะไหมถ้าพินที่ 1 เปลี่ยนไป? if (ai > ao) { // ถ้าใช่ ผึ้งจะเข้าหรือออก? อิน++; // ถ้ามันเข้าไป ให้เพิ่มผึ้งหนึ่งตัวเข้าไปใน ins }} if (lao != ao){ if (ao > ai) { outs++; }} if (lbi != bi){ if (bi > bo) { ins++; }} if (lbo != bo){ if (bo > bi) { outs++; }} lai = ai; // อัพเดทสถานะล่าสุด lao = ao; lbi = สอง; lbo = บ่อ; นับ = ins + outs; if (lcount != count){ // หากการนับมีการเปลี่ยนแปลง เราจะพิมพ์การนับใหม่ Serial.print("number In: "); Serial.println (อิน); Serial.print("หมายเลขออก: "); Serial.println(ลึกหนาบาง); lcount = นับ; } } ฉันเพิ่มลำดับ debeebouce นี่คือวิดีโอการปรับเทียบล่าสุดตั้งแต่วันนี้ 06/26/12 แม่นยำถึง 91% แต่ยังมีพื้นที่ให้ปรับปรุงเล็กน้อย:

ขั้นตอนที่ 4: การบันทึกข้อมูลบน Google เอกสาร

การบันทึกข้อมูลบน Google Docs
การบันทึกข้อมูลบน Google Docs
การบันทึกข้อมูลบน Google Docs
การบันทึกข้อมูลบน Google Docs
การบันทึกข้อมูลบน Google Docs
การบันทึกข้อมูลบน Google Docs

ฉันใช้การประมวลผลเพื่ออัปโหลดข้อมูลแบบเรียลไทม์ผ่านแล็ปท็อป…… นี่คือข้อมูลแรกที่ฉันได้รับ… - Live Date ตั้งแต่วันนี้ 25 มิถุนายน 2555 ค่าจะถูกอัปโหลดผ่านรหัสที่แนบมา แนวคิดทั่วไปคือการใช้ลิงก์ 'formkey' ที่เข้าถึงได้เมื่อกรอกแบบฟอร์มสำหรับ Google เอกสาร 1) เข้าสู่ google docs 2) สร้าง FORM ใหม่พร้อมอินพุตมากที่สุดเท่าที่คุณมีจุดข้อมูล 3) ไปที่ 'live form' และตรวจสอบซอร์สโค้ด… มองหา 'formkey' และตัวระบุอินพุต… นี่คือสิ่งที่ ฉันพบว่า: 4) มันง่ายที่จะเข้าใจเมื่อคุณได้รับซอร์สโค้ดและเริ่มตัดและวางค่าลงในเบราว์เซอร์ของคุณเพื่อทดสอบการยืนยันของคุณ… ลองใช้มันค่อนข้างทรงพลัง.. ในการประมวลผล (คุณอาจโพสต์ได้โดยตรงจาก Arduino แต่ ฉันคิดว่าฉันจะลองประมวลผล..) String docs = new String[8]; // 'สตริง' นี้เป็นเพียงการรวมส่วนของ URL ทั้งหมด 0 ถึง 7 หรือ 8 ทั้งหมด…. เอกสาร[0] = "https://docs.google.com/spreadsheet/formResponse?formkey=dHNHNWtZQ3lJSzFCZ1kyX0VVVmU0LUE6MQ&ifq&entry.0.single="; //นี่คือ formkey จาก FORM source code docs[1] = pairs[1]; //นี่คือจุดข้อมูลแรกของฉัน # ของผึ้ง IN เอกสาร[2] = "&entry.1.single="; // นี่บอก google doc ว่าตัวแปรตัวที่ 2 ตัวแรกของฉันมาถัดไป… ค้นหาซอร์สโค้ดเพื่อหาคำตอบ แต่จะดูคล้ายกัน… docs[3] = pairs[3]; //นี่คือตัวแปรที่สอง # ของผึ้ง OUT เอกสาร[4] = "&entry.2.single="; //สิ่งนี้บอก google doc ว่าตัวแปรตัวที่ 3 ของฉันมาถัดไป.. docs[5] = Delta_in; // จำนวนผึ้งลบด้วยจำนวนผึ้งสุดท้ายในเอกสาร[6] = "&entry.4.single="; เอกสาร[7] = Delta_out; สตริง docs2 = เข้าร่วม (เอกสาร, ""); loadStrings (docs2); //เมื่อคุณรวมบิตเหล่านี้เข้าด้วยกัน มันจะโพสต์สเปรดชีตของคุณ!!… ทดสอบบิตของคุณเองในเบราว์เซอร์ของคุณ… ฉันให้มันโพสต์ทุก 5-10 นาที… ฉันแนบรหัสการประมวลผล… ฉันยังต้องเปลี่ยนตัวแปร INT เป็น FLOAT เพราะหลังจากนั้นไม่กี่ชั่วโมง ค่าผึ้งก็เกิน 32,000 ตัว!!! อุ๊บส์..

แนะนำ: