เครื่องวัดความเร็วลมแบบ Do-it-yourself (สำหรับเด็กในกลุ่มเตรียมการ) เครื่องวัดความเร็วลมแบบโฮมเมด

มีภารกิจในการประกอบเครื่องวัดความเร็วลมสำหรับโครงการหนึ่งเพื่อให้สามารถนำข้อมูลบนคอมพิวเตอร์ผ่านอินเทอร์เฟซ USB ได้ บทความนี้จะเน้นที่เครื่องวัดความเร็วลมมากกว่าระบบประมวลผลข้อมูล:

1. ส่วนประกอบ

ดังนั้นสำหรับการผลิตผลิตภัณฑ์จึงจำเป็นต้องมีส่วนประกอบต่อไปนี้:
Mitsumi ball mouse - 1 ชิ้น
ลูกปิงปอง — 2 ชิ้น
ลูกแก้วขนาดพอเหมาะ
ลวดทองแดงที่มีหน้าตัด 2.5 mm2 - 3 cm
ปากกาลูกลื่นแบบเติม — 1 ชิ้น
Chupa Chups ลูกอมแท่ง - 1 ชิ้น.
คลิปหนีบสายไฟ — 1 ชิ้น
กระบอกทองเหลืองกลวง 1 ชิ้น

2. การทำใบพัด

ลวดทองแดง 3 ชิ้น ยาว 1 ซม. แต่ละเส้นทำมุม 120 องศา บัดกรีด้วยถังทองเหลือง ในรูของกระบอกปืน ฉันบัดกรีขาตั้งของผู้เล่นชาวจีนด้วยด้ายที่ปลาย

ฉันตัดหลอดจากขนมออกเป็น 3 ส่วนยาวประมาณ 2 ซม.

ฉันผ่าครึ่งลูก 2 ลูกและใช้สกรูขนาดเล็กจากผู้เล่นคนเดียวกันและกาวโพลีสไตรีน (ด้วยปืนกาว) แนบครึ่งหนึ่งของลูกบอลเข้ากับหลอดอมยิ้ม

ฉันวางท่อที่มีลูกบอลครึ่งหนึ่งไว้บนชิ้นลวดที่บัดกรีแล้วยึดทุกอย่างไว้ด้านบนด้วยกาว

3. การผลิตชิ้นส่วนหลัก

องค์ประกอบแบริ่งของเครื่องวัดความเร็วลมคือแท่งโลหะจากปากกาลูกลื่น ในส่วนล่างของแกน (ที่เสียบจุกไม้ก๊อก) ฉันใส่ดิสก์จากเมาส์ (ตัวเข้ารหัส) ในการออกแบบตัวเมาส์เอง ส่วนล่างของตัวเข้ารหัสวางชิดกับตัวเมาส์ ทำให้เกิดจุดยึด มีจาระบี ดังนั้นตัวเข้ารหัสจึงหมุนได้ง่าย แต่จำเป็นต้องแก้ไขส่วนบนของแท่งเหล็กด้วยเหตุนี้ ฉันจึงหยิบชิ้นส่วนพลาสติกที่เหมาะสมซึ่งมีรูที่มีขนาดเส้นผ่านศูนย์กลางของแท่งพอดี (ชิ้นส่วนดังกล่าวถูกตัดออกจากระบบขยายแคร่ CD-ROMa) ยังคงต้องแก้ปัญหาเพื่อไม่ให้แกนเอ็นโค้ดเดอร์หลุดออกจากจุดแบริ่ง ดังนั้นฉันจึงบัดกรีบัดกรีสองสามหยดบนแกนตรงที่ด้านหน้าของส่วนประกอบยึด ดังนั้นแกนหมุนอย่างอิสระในโครงสร้างยึด แต่ไม่หลุดออกจากตลับลูกปืน

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

4. การทดสอบและสอบเทียบ

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

สถานีตรวจอากาศสำหรับใช้ในครัวเรือนทั่วไปหรือแบบทำเองสามารถวัดอุณหภูมิความชื้นได้สองแบบ (ในห้องและภายนอก) ความกดอากาศและมีนาฬิกาพร้อมปฏิทินเพิ่มเติม อย่างไรก็ตาม สถานีตรวจอากาศจริงยังมีอะไรอีกมาก - เซ็นเซอร์วัดรังสีแสงอาทิตย์ มาตรวัดปริมาณน้ำฝน และทั้งหมดนั้นโดยทั่วไปแล้ว จำเป็นสำหรับวัตถุประสงค์ทางวิชาชีพเท่านั้น ยกเว้นเพียงข้อเดียว เครื่องวัดลม (ความเร็วและที่สำคัญที่สุดคือทิศทาง) เป็นส่วนเสริมที่มีประโยชน์มากสำหรับบ้านในชนบท นอกจากนี้ เซ็นเซอร์วัดแรงลมของแบรนด์มีราคาค่อนข้างแพงแม้แต่ใน Ali Baba และควรพิจารณาวิธีแก้ปัญหาแบบทำเองที่บ้าน

ฉันต้องบอกทันทีว่าหากฉันรู้ล่วงหน้าว่าการทำงานและเงินที่ใช้ไปกับการทดลองกับความคิดของฉันจะส่งผลมากน้อยเพียงใด บางทีฉันอาจจะยังไม่ได้เริ่มต้น แต่ความอยากรู้มีมากกว่า และผู้อ่านบทความนี้มีโอกาสที่จะหลีกเลี่ยงหลุมพรางที่ฉันต้องสะดุดล้ม

สำหรับ การวัดความเร็วลม(anemometry) มีหลายร้อยวิธีซึ่งหลัก ๆ คือ:

ลวดร้อน,
- กลไก - ด้วยใบพัด (แม่นยำกว่าคือใบพัด) หรือใบพัดแนวนอนถ้วย (เครื่องวัดความเร็วลมแบบถ้วยคลาสสิก) การวัดความเร็วในกรณีเหล่านี้เทียบเท่ากับการวัดความเร็วในการหมุนของแกนที่ใบพัดหรือใบพัดได้รับการแก้ไข
- เช่นเดียวกับอัลตราโซนิกซึ่งรวมการวัดความเร็วและทิศทาง
สำหรับ การวัดทิศทางวิธีน้อยลง:
- อัลตราโซนิกที่กล่าวถึง;
- ใบพัดสภาพอากาศแบบกลไกพร้อมการลบมุมการหมุนแบบอิเล็กทรอนิกส์ มีหลายวิธีในการวัดมุมของการหมุน: ออปติคัล ตัวต้านทาน แม่เหล็ก อุปนัย เชิงกล อย่างไรก็ตาม คุณสามารถติดตั้งเข็มทิศอิเล็กทรอนิกส์บนเพลาใบพัดสภาพอากาศได้ ซึ่งเป็นวิธีที่เชื่อถือได้และเรียบง่าย (สำหรับการทำซ้ำ "เข่า") ในการอ่านค่าจากแกนที่หมุนอย่างโกลาหล ดังนั้นเราจึงเลือกวิธีการออปติคัลแบบเดิมเพิ่มเติม

เมื่อทำซ้ำวิธีการเหล่านี้ด้วยตัวเอง คุณควรคำนึงถึงข้อกำหนดสำหรับการใช้พลังงานน้อยที่สุดและการได้รับแสงแดดและฝนตลอดเวลา (หรืออาจตลอดทั้งปี?) ไม่สามารถวางเซ็นเซอร์วัดลมใต้หลังคาในที่ร่มได้ ในทางกลับกัน เซ็นเซอร์ควรอยู่ห่างจากปัจจัยรบกวนทั้งหมดให้มากที่สุดเท่าที่จะเป็นไปได้ และ "เปิดต่อลมทั้งหมด" ตำแหน่งที่เหมาะสมที่สุดคือสันหลังคาบ้านหรือที่แย่ที่สุดคือโรงนาหรือศาลาซึ่งอยู่ห่างไกลจากอาคารและต้นไม้อื่นๆ ข้อกำหนดดังกล่าวบ่งบอกถึงแหล่งจ่ายไฟอิสระและเห็นได้ชัดว่าเป็นช่องทางการส่งข้อมูลแบบไร้สาย ข้อกำหนดเหล่านี้เกิดจาก "เสียงระฆังและนกหวีด" ของการออกแบบ ซึ่งอธิบายไว้ด้านล่าง

เกี่ยวกับการใช้พลังงานขั้นต่ำ

สรุปกินไฟขั้นต่ำเท่าไหร่คะ? เมื่อใช้แบตเตอรี่ AA ทั่วไป การบริโภคเฉลี่ยของวงจรไม่ควรเกิน 1-2 mA คำนวณด้วยตัวคุณเอง: ความจุของเซลล์อัลคาไลน์ AA ที่เหมาะสมคือ 2.5-3 Ah นั่นคือวงจรที่มีปริมาณการใช้ที่ระบุจะทำงานจากเซลล์นั้นประมาณ 1500-2500 ชั่วโมงหรือ 2-3 เดือน โดยหลักการแล้ว สิ่งนี้ไม่มากนักแต่ค่อนข้างยอมรับได้ - คุณไม่สามารถทำได้น้อยกว่านี้: แบตเตอรี่หมดหรือคุณจะต้องใช้แบตเตอรี่ที่จะต้องชาร์จบ่อยกว่าการเปลี่ยนแบตเตอรี่ ด้วยเหตุผลนี้ เมื่อวาดวงจรดังกล่าว เราจำเป็นต้องจับเศษเล็กเศษน้อย: โหมดประหยัดพลังงานที่จำเป็น วงจรที่คิดอย่างรอบคอบ และลำดับของการกระทำในโปรแกรม นอกจากนี้ เราจะเห็นว่าในการออกแบบขั้นสุดท้าย ฉันยังมีคุณสมบัติไม่ตรงตามข้อกำหนดที่จำเป็นและต้องใช้พลังงานแบตเตอรี่


เรื่องราวที่ให้ข้อมูลเกี่ยวกับวิธีที่ฉันพยายามทำซ้ำวิธีการที่ทันสมัยและก้าวหน้าที่สุด - อัลตราซาวนด์และล้มเหลวฉันจะบอกอีกครั้ง วิธีการอื่นๆ ทั้งหมดเกี่ยวข้องกับการวัดความเร็วและทิศทางที่แยกจากกัน ดังนั้นเราจึงต้องบล็อกเซ็นเซอร์สองตัว เมื่อศึกษาเทอร์โมมิเตอร์วัดความเร็วลมตามทฤษฎีแล้ว ฉันก็ตระหนักว่าเราไม่สามารถซื้อองค์ประกอบที่ละเอียดอ่อนระดับมือสมัครเล่นได้ (มีวางจำหน่ายในตลาดตะวันตก!) แต่เพื่อประดิษฐ์ขึ้นเอง - เพื่อเข้าร่วมในการวิจัยและพัฒนาครั้งต่อไป ด้วยการเสียเวลาและเงินที่สอดคล้องกัน ดังนั้น หลังจากคิดมาบ้างแล้ว ฉันจึงตัดสินใจออกแบบเซ็นเซอร์ทั้งสองแบบรวมเป็นหนึ่งเดียว: เครื่องวัดความเร็วลมแบบถ้วยที่มีการวัดความเร็วการหมุนด้วยแสงและใบพัดสภาพอากาศพร้อมการอ่านค่ามุมของการหมุนแบบอิเล็กทรอนิกส์โดยอิงจากดิสก์ตัวเข้ารหัส (ตัวเข้ารหัส)

การออกแบบเซนเซอร์

ข้อดีของเซนเซอร์แบบกลไกคือไม่ต้องมีการวิจัยและพัฒนา หลักการนั้นเรียบง่ายและชัดเจน และคุณภาพของผลลัพธ์ขึ้นอยู่กับความแม่นยำของการออกแบบอย่างรอบคอบเท่านั้น

ดังนั้นจึงดูเหมือนในทางทฤษฎี ในทางปฏิบัติทำให้เกิดงานทางกลจำนวนมาก ซึ่งบางส่วนต้องได้รับคำสั่งจากด้านข้าง เนื่องจากไม่มีเครื่องกลึงและเครื่องกัดอยู่ในมือ ฉันต้องบอกทันทีว่าฉันไม่เคยเสียใจเลยตั้งแต่แรกเริ่ม ฉันพึ่งวิธีทุนและไม่ได้สร้างรั้วจากวัสดุชั่วคราว

สำหรับใบพัดสภาพอากาศและเครื่องวัดความเร็วลม จำเป็นต้องใช้ชิ้นส่วนต่อไปนี้ ซึ่งต้องสั่งซื้อจากช่างกลึงและโรงสี (ระบุปริมาณและวัสดุสำหรับเซ็นเซอร์ทั้งสองพร้อมกัน):

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

เซ็นเซอร์ทิศทางลมแบบกลไก - ใบพัดสภาพอากาศแบบอิเล็กทรอนิกส์

พื้นฐานของใบพัดสภาพอากาศ (เช่นเดียวกับเซ็นเซอร์ความเร็วด้านล่าง) คือตัวยึดรูปตัวยูที่ทำจาก D-16 duralumin ดังแสดงในภาพวาดที่ด้านบนซ้าย ชิ้นส่วนของ PTFE ถูกกดเข้าไปในช่องด้านล่าง ซึ่งจะทำร่องแบบขั้นบันไดอย่างต่อเนื่องด้วยดอกสว่านขนาด 2 และ 3 มม. แกนถูกแทรกเข้าไปในช่องนี้ด้วยปลายแหลม (สำหรับใบพัดสภาพอากาศ - ทำจากทองเหลือง) จากด้านบน จะทะลุผ่านรูขนาด 8 มม. ได้อย่างอิสระ เหนือรูนี้ มีการติดชิ้นสี่เหลี่ยมของฟลูออโรพลาสติกชนิดเดียวกันที่มีความหนา 4 มม. เข้ากับโครงยึดด้วยสกรู M2 เพื่อให้ซ้อนทับรู รูทำขึ้นใน PTFE ตามแนวเส้นผ่านศูนย์กลางของแกน 6 มม. (อยู่ตรงแนวแกนทั่วไปของรูพอดี - ดูภาพวาดการประกอบด้านล่าง) ฟลูออโรเรซิ่นที่ด้านบนและด้านล่างมีบทบาทเป็นตลับลูกปืนธรรมดา


แกนที่จุดเสียดสีกับโฟโตพลาสติกสามารถขัดเงาได้ และพื้นที่การเสียดสีสามารถลดลงได้โดยการเจาะรูในฟลูออโรเรซิ่น ( ดูในหัวข้อนี้ด้านล่าง UPD ตั้งแต่ 09/13/18 และ 06/05/19). สำหรับใบพัดสภาพอากาศ สิ่งนี้ไม่ได้มีบทบาทพิเศษ - "การชะลอ" บางอย่างยังมีประโยชน์สำหรับเขา และสำหรับเครื่องวัดความเร็วลม คุณจะต้องพยายามลดแรงเสียดทานและความเฉื่อยให้เหลือน้อยที่สุด

ตอนนี้เกี่ยวกับการกำจัดมุมการหมุน ตัวเข้ารหัสสีเทาแบบคลาสสิก 16 ตำแหน่งที่สัมพันธ์กับกรณีของเรามีลักษณะดังนี้:

ขนาดดิสก์ถูกเลือกตามสภาวะของการแยกทางแสงที่เชื่อถือได้ของคู่ตัวส่ง-ตัวรับจากกันและกัน ด้วยการกำหนดค่านี้ ร่องกว้านกว้าง 5 มม. ยังเว้นระยะห่าง 5 มม. และคู่ออปติคัลจะเว้นระยะห่าง 10 มม. พอดี ขนาดของโครงยึดที่ติดตั้งใบพัดสภาพอากาศนั้นคำนวณได้อย่างแม่นยำโดยใช้เส้นผ่านศูนย์กลางของดิสก์ 120 มม. ทั้งหมดนี้สามารถลดลงได้ (โดยเฉพาะถ้าคุณเลือก LED และ photodetectors ที่มีเส้นผ่านศูนย์กลางเล็กที่สุดเท่าที่จะเป็นไปได้) แต่ความซับซ้อนของการผลิตตัวเข้ารหัสถูกนำมาพิจารณาด้วย: ปรากฎว่าโรงสีไม่ได้ทำงานที่ละเอียดอ่อนเช่นนี้ ต้องตัดด้วยมือด้วยตะไบเข็ม และยิ่งขนาดที่ใหญ่ขึ้น ผลลัพธ์ก็จะยิ่งน่าเชื่อถือมากขึ้น และความยุ่งยากน้อยลง

ภาพวาดการประกอบด้านบนแสดงวิธีการติดดิสก์เข้ากับเพลา ดิสก์ที่อยู่ตรงกลางอย่างระมัดระวังถูกยึดด้วยสกรู M2 กับปลอกหุ้มคาโปรลอน บุชชิ่งถูกวางบนแกนเพื่อให้ช่องว่างที่ด้านบนน้อยที่สุด (1-2 มม.) - เพื่อให้แกนหมุนได้อย่างอิสระในตำแหน่งปกติ และเมื่อพลิกกลับ ปลายจะไม่หลุดออกจากซ็อกเก็ตที่ ล่าง. บล็อกของตัวตรวจจับแสงและตัวปล่อยจะติดอยู่กับโครงยึดที่ด้านบนและด้านล่างของดิสก์ โดยเฉพาะอย่างยิ่งเกี่ยวกับการออกแบบด้านล่าง

โครงสร้างทั้งหมดอยู่ในกล่องพลาสติก (ABS หรือโพลีคาร์บอเนต) 150×150×90 มม. เมื่อประกอบแล้ว (ไม่มีฝาปิดและใบพัดสภาพอากาศ) เซ็นเซอร์ทิศทางจะมีลักษณะดังนี้:

โปรดทราบว่าทิศเหนือที่เลือกไว้จะมีลูกศรกำกับไว้ และจะต้องปฏิบัติตามเมื่อติดตั้งเซ็นเซอร์ใหม่

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

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

เซ็นเซอร์ความเร็วลม - เครื่องวัดความเร็วลมแบบถ้วยทำเอง

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

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

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

คำถามของคำถามในเวลาเดียวกัน: วิธีการส่งการอ่านจากเซ็นเซอร์ที่สุ่มหมุนรอบแกนแนวตั้ง? ฉันไม่สามารถแก้ปัญหาได้ และตัดสินจากความจริงที่ว่าการออกแบบถ้วยแบบมืออาชีพยังคงแพร่หลายอยู่ มันไม่ได้แก้ปัญหาด้วยการเตะครึ่งเลย (เราไม่ได้คำนึงถึงเครื่องวัดความเร็วลมแบบมือถือ - พวกมันปรับตามอากาศด้วยมือ) ไหล).

เครื่องวัดความเร็วลมแบบถ้วยของฉันใช้แผ่นดิสก์เลเซอร์ มุมมองด้านบนและด้านล่างจะแสดงในรูปภาพ:



ถ้วยทำมาจากก้นขวดน้ำเด็ก "Agusha" ด้านล่างถูกตัดออกอย่างระมัดระวังและทั้งสาม - ในระยะทางเดียวกันเพื่อให้พวกเขามีน้ำหนักเท่ากันอุ่นขึ้นเฉพาะที่ตรงกลาง (ไม่ว่าในกรณีใดอย่าให้ความร้อนทั้งหมด - มันจะบิดเบี้ยวอย่างไม่สามารถย้อนกลับได้!) และด้านหลัง ของด้ามไม้จากตะไบโค้งออกไปด้านนอกเพื่อให้คล่องตัวขึ้น คุณจะทำซ้ำ - ตุนขวดขนาดใหญ่ขึ้น จากห้าหรือหกชิ้นคุณอาจจะสามารถทำถ้วยที่เหมือนกันมากหรือน้อยได้สามใบ ในถ้วยที่ผลิตขึ้นนั้นจะทำช่องด้านข้างและยึดตามแนวขอบของดิสก์ที่ 120 °ซึ่งสัมพันธ์กันโดยใช้กาวปิดผนึกกันน้ำ ดิสก์มีศูนย์กลางที่สัมพันธ์กับแกนอย่างเคร่งครัด (ฉันทำสิ่งนี้โดยใช้แหวนรองโลหะแบบปิด) และยึดเข้ากับปลอก caprolon ด้วยสกรู M2

การออกแบบทั่วไปและการติดตั้งเซ็นเซอร์

เซนเซอร์ทั้งสองตามที่กล่าวไปแล้วนั้นถูกวางในกล่องพลาสติกขนาด 150×150×90 มม. การเลือกใช้วัสดุเคสต้องพิจารณาอย่างรอบคอบ: ABS หรือโพลีคาร์บอเนตมีความทนทานต่อสภาพอากาศเพียงพอ แต่โพลีสไตรีน ลูกแก้ว และโพลีเอทิลีนที่มากกว่านั้นจะไม่ทำงานที่นี่ (และจะทาสีได้ยากเพื่อป้องกันแสงแดด ). หากไม่สามารถซื้อกล่องที่มีตราสินค้าได้ จะดีกว่าถ้าบัดกรีเคสจากฟอยล์ไฟเบอร์กลาสด้วยตัวเองแล้วทาสีเพื่อป้องกันการกัดกร่อนและให้รูปลักษณ์ที่สวยงาม

ทำรูขนาด 8-10 มม. ที่จุดที่แกนออกซึ่งกรวยพลาสติกติดกาวด้วยวัสดุยาแนวเดียวกันตัดจากรางน้ำจากกระป๋องสเปรย์ด้วยวัสดุเคลือบหลุมร่องฟันอาคารหรือกาว:

หากต้องการให้กรวยอยู่ตรงกลางตามแนวแกน ให้ยึดชิ้นไม้จากด้านล่างของฝาปิดด้วยแคลมป์ ทำเครื่องหมายที่จุดศูนย์กลางที่แน่นอนบนนั้นแล้วเจาะลึกลงไปอีกเล็กน้อยด้วยสว่านจอบขนาด 12 มม. ทำให้เว้าเป็นรูปวงแหวนรอบรู กรวยต้องเข้าไปที่นั่นหลังจากนั้นจึงจะสามารถเคลือบด้วยกาวได้ คุณสามารถแก้ไขเพิ่มเติมในแนวตั้งสำหรับเวลาที่แข็งตัวด้วยสกรู M6 พร้อมน็อต

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

สายไฟจากออปโตคัปเปลอร์เชื่อมต่อกับขั้วต่อ D-SUB แยกต่างหาก (ดูรูปของเซ็นเซอร์ทิศทางด้านบน) ส่วนการผสมพันธุ์กับสายเคเบิลนั้นสอดเข้าไปในรูสี่เหลี่ยมที่ฐานของเคส จากนั้นปิดรูด้วยฝาปิดที่มีช่องเสียบสายเคเบิล ซึ่งช่วยให้ขั้วต่อหลุดออกมา ตัวยึด Dural ถูกขันเข้ากับฐานของเคสเพื่อยึดเข้าที่ การกำหนดค่าขึ้นอยู่กับตำแหน่งของเซ็นเซอร์

เมื่อประกอบเข้าด้วยกัน เซ็นเซอร์ทั้งสองจะมีลักษณะดังนี้:

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

ชิ้นส่วนอิเล็กทรอนิกส์

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

โมดูลระยะไกลและวงจรการวัดของเซ็นเซอร์ลม

AL-107B IR LEDs ได้รับเลือกให้เป็นโฟโตอิมิตเตอร์ แน่นอนว่า LED แบบวินเทจเหล่านี้ไม่ใช่ไฟที่ดีที่สุดในระดับเดียวกัน แต่มีตัวกล้องขนาดเล็กที่มีเส้นผ่านศูนย์กลาง 2.4 มม. และสามารถส่งกระแสไฟได้สูงถึง 600 mA ต่อพัลส์ ในระหว่างการทดสอบ ปรากฏว่าตัวอย่างของ LED ที่ผลิตขึ้นเมื่อราวปี 1980 (ในกรณีสีแดง) มีประสิทธิภาพประมาณสองเท่า (แสดงอยู่ในช่วงการทำงานที่เชื่อถือได้ของเครื่องตรวจจับแสง) เมื่อเทียบกับชิ้นงานสมัยใหม่ที่ซื้อที่ Chip-Deep (มีลำตัวสีเขียวอมเหลืองโปร่งใส) ไม่น่าเป็นไปได้ที่คริสตัลจะดีกว่าในปี 1980 กว่าที่เป็นอยู่ตอนนี้แม้ว่าอะไรจะไม่ใช่เรื่องล้อเล่น? อย่างไรก็ตาม บางที เรื่องนี้อาจอยู่ในมุมกระเจิงที่ต่างกันในทั้งสองแบบ

กระแสตรงประมาณ 20 mA ถูกส่งผ่าน LED ในเซ็นเซอร์ความเร็ว (ตัวต้านทาน 150 โอห์มเมื่อขับเคลื่อน 5 โวลต์) และในเซ็นเซอร์ทิศทาง - กระแสพัลซิ่ง (คดเคี้ยวที่มีรอบการทำงาน 2) กระแสประมาณ 65 mA ( เท่ากับ 150 โอห์ม เมื่อจ่ายไฟ 12 โวลต์) กระแสเฉลี่ยผ่าน LED หนึ่งดวงของเซ็นเซอร์ทิศทางอยู่ที่ประมาณ 33 mA รวมเป็นสี่ช่องสัญญาณ - ประมาณ 130 mA

ในฐานะเครื่องตรวจจับแสง โฟโตทรานซิสเตอร์ L-32P3C ถูกเลือกในบรรจุภัณฑ์ที่มีขนาดเส้นผ่าศูนย์กลาง 3 มม. สัญญาณถูกนำมาจากตัวสะสมที่โหลดตัวต้านทาน 1.5 หรือ 2 kOhm จากแหล่งจ่าย 5 V พารามิเตอร์เหล่านี้ได้รับเลือกเพื่อให้ระยะห่างระหว่าง ~ 20 มม. ระหว่างตัวส่งภาพถ่ายและเครื่องรับ สัญญาณลอจิกขนาดเต็มที่ 5 ระดับ -volt ที่ไม่มีการขยายเพิ่มเติมจะมาถึงอินพุตของคอนโทรลเลอร์ทันที กระแสที่คำนวณที่นี่อาจดูไม่สมส่วนสำหรับคุณ โดยอิงจากข้อกำหนดการใช้พลังงานขั้นต่ำที่กล่าวถึงข้างต้น แต่อย่างที่คุณเห็น กระแสเหล่านี้จะปรากฏในแต่ละรอบการวัดเป็นเวลาสูงสุดสองสามมิลลิวินาที เพื่อให้ปริมาณการใช้ไฟฟ้าทั้งหมดยังคงน้อย

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

แผนภูมิวงจรรวมหน่วยประมวลผลเซ็นเซอร์ลมมีลักษณะดังนี้:

เกี่ยวกับที่มาของพลังงาน 12-14 โวลต์ ดูด้านล่าง นอกจากส่วนประกอบที่ระบุในแผนภาพแล้ว หน่วยระยะไกลยังมีเซ็นเซอร์ความชื้น-อุณหภูมิ ซึ่งไม่แสดงในแผนภาพ ตัวแบ่งแรงดันไฟที่เชื่อมต่อกับขั้ว A0 ของคอนโทรลเลอร์ออกแบบมาเพื่อควบคุมแรงดันไฟฟ้าของแหล่งจ่ายไฟเพื่อเปลี่ยนทดแทนในเวลาที่เหมาะสม ไฟ LED ที่เชื่อมต่อกับพิน 13 แบบดั้งเดิม (พิน 19 ของเคส DIP) นั้นสว่างมาก สำหรับการเรืองแสงปกติที่ไม่กะพริบ เศษเสี้ยวของมิลลิแอมป์ของกระแสไฟก็เพียงพอแล้ว ซึ่งรับประกันได้ด้วยค่า 33 ที่สูงผิดปกติ ตัวต้านทาน kΩ

วงจรนี้ใช้คอนโทรลเลอร์ Atmega328 เปล่าในแพ็คเกจ DIP ซึ่งตั้งโปรแกรมผ่าน Uno และติดตั้งบนซ็อกเก็ต คอนโทรลเลอร์ดังกล่าวที่มี Arduino bootloader ที่เขียนไว้แล้วจะขายใน Chip-Dip (หรือคุณจะเขียน bootloader เองก็ได้) สะดวกในการตั้งโปรแกรมคอนโทรลเลอร์ในสภาพแวดล้อมที่คุ้นเคย แต่หากไม่มีส่วนประกอบบนบอร์ด ประการแรก ประหยัดกว่า และประการที่สอง ใช้พื้นที่น้อยลง โหมดประหยัดพลังงานที่สมบูรณ์สามารถรับได้โดยการกำจัด bootloader ด้วย (และโดยทั่วไปแล้วจะเขียนโค้ดทั้งหมดในแอสเซมเบลอร์ :) แต่ที่นี่ไม่เกี่ยวข้องมากนัก และการเขียนโปรแกรมก็ซับซ้อนโดยไม่จำเป็น

ในแผนภาพ สี่เหลี่ยมสีเทาล้อมรอบส่วนประกอบที่เกี่ยวข้องกับช่องความเร็วและทิศทางแยกกัน พิจารณาการดำเนินงานของโครงการโดยรวม

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

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

#รวม #รวม #รวม . . . . . #define ledPin 13 //LED pin (PB5 pin 19 ATmega) #define IR_Pin 10 //IRLU transistor control (PB2 pin 16 Atmega) #define in_3p 9 //Receiver input bit 3 #define in_2p 8 //Receiver input bit 2 # กำหนด in_1p 7 // บิตอินพุตของตัวรับสัญญาณ 1 #define in_0p 6 // บิตอินพุตของตัวรับสัญญาณ 0 #define IR_PINF 5 // (PD5,11) เอาต์พุตสำหรับความถี่ IR LED #define IN_PINF 4 // (PD4,6) อินพุตการตรวจจับความถี่ที่ระเหยได้ ttime ยาวที่ไม่ได้ลงนาม = 0; //ระยะเวลาเปิดใช้งานเซนเซอร์ float ff; // ค่าความถี่เซ็นเซอร์ความเร็วสำหรับค่าเฉลี่ย char msg; // ส่งข้อความจำนวนไบต์ = 0; // เคาน์เตอร์ int batt; // เพื่อเฉลี่ยไบต์แบตเตอรี่ wDir; // อาร์เรย์ของทิศทางลม ไบต์ wind_Gray=0; // รหัสทิศทางลม byte
ขั้นตอนต่อไปนี้ใช้เพื่อเริ่มต้นโหมดสลีปและ WDT (ปลุกทุก 4 วินาที):

// ทำให้ระบบเข้าสู่โหมดสลีปเป็นโมฆะ system_sleep() ( ADCSRA &= ~(1<< ADEN); //экв. cbi(ADCSRA,ADEN); выключим АЦП set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна sleep_mode(); // система засыпает sleep_disable(); // система продолжает работу после переполнения watchdog ADCSRA |= (1 << ADEN); /экв. sbi(ADCSRA,ADEN); включаем АЦП } //**************************************************************** // ii: 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec void setup_watchdog(int ii) { byte bb; if (ii >9) ii=9; bb=ii & 7; ถ้า (ii > 7) bb|= (1<<5); //в bb - код периода bb|= (1<เซ็นเซอร์ความเร็วจะส่งสัญญาณความถี่การหยุดชะงักของช่องสัญญาณออปติคัล ลำดับความสำคัญคือหน่วย - สิบเฮิรตซ์ ประหยัดกว่าและเร็วกว่าในการวัดค่าดังกล่าวหลังจากช่วงเวลาหนึ่ง (นี่เป็นหัวข้อของสิ่งพิมพ์ของผู้เขียน "การประเมินวิธีการวัดความถี่ต่ำบน Arduino") ที่นี่ จะเลือกวิธีการผ่านฟังก์ชันที่แก้ไขแล้ว pulseInLong() ซึ่งไม่ได้ผูกการวัดกับเอาต์พุตของคอนโทรลเลอร์บางตัว (ข้อความของฟังก์ชัน periodInLong() สามารถพบได้ในเอกสารที่ระบุ)

ในฟังก์ชัน setup() มีการประกาศทิศทางของพิน ไลบรารีตัวส่งสัญญาณ 433 MHz และตัวจับเวลาจ้องจับผิดถูกเตรียมใช้งาน (โดยหลักการแล้วบรรทัดสำหรับ IN_PINF ไม่จำเป็น และถูกใส่เข้าไปสำหรับหน่วยความจำ):

การตั้งค่าเป็นโมฆะ () ( pinMode (IR_PINF, OUTPUT); // เพื่อส่งออก pinMode (IN_PINF, INPUT); // การตรวจจับความถี่เอาต์พุตไปยังอินพุต pinMode (13, OUTPUT); // LED vw_setup (1200); // ความเร็วในการเชื่อมต่อ VirtualWire vw_set_tx_pin(2); //D2, PD2(4) VirtualWire transfer pin // Serial.begin(9600); // พอร์ตอนุกรมที่จะตรวจสอบเมื่อทำการดีบัก setup_watchdog(8) // WDT ระยะเวลา 4 c wdt_reset(); )
สุดท้าย ในลูปหลักของโปรแกรม ก่อนอื่นเราจะอ่านแรงดันไฟฟ้าทุกครั้งที่ตื่นขึ้น (ทุกๆ 4 วินาที) และคำนวณความถี่ของเซ็นเซอร์ความเร็วลม:

Void loop() ( wdt_reset(); // รีเซ็ตตัวจับเวลา digitalWrite (ledPin, HIGH); // เปิด LED เพื่อควบคุม batt=analogRead(0); // อ่านและบันทึกรหัสแบตเตอรี่ปัจจุบัน /*=== ความถี่ === = */ digitalWrite(IR_PINF, HIGH); //เปิด IR LED ของเซ็นเซอร์ความเร็ว f=0; //ตัวแปรสำหรับความถี่ ttime=periodInLong(IN_PINF, LOW, 250000); //รอ 0.25 วินาที // Serial. println(ttime); // สำหรับการควบคุมระหว่างการดีบัก if (ttime!=0) (//ในกรณีที่ไม่มีความถี่ f = 1000000/float(ttime);) // คำนวณความถี่สัญญาณเป็น Hz digitalWrite (IR_PINF, LOW); / / ปิด IR LED ff=f; // บันทึกค่าที่คำนวณได้ในอาร์เรย์ . . . .
เวลาการเผาไหม้ของ LED IR (ฉันขอเตือนคุณว่า 20 mA) ที่นี่อย่างที่คุณเห็นจะสูงสุดในกรณีที่ไม่มีการหมุนของดิสก์เซ็นเซอร์และประมาณ 0.25 วินาทีภายใต้เงื่อนไขนี้ ความถี่ที่วัดได้ต่ำสุดจะเป็น 4 Hz (หนึ่งในสี่ของการปฏิวัติแผ่นดิสก์ต่อวินาทีที่มี 16 รู) เมื่อมันปรากฏออกมาเมื่อทำการปรับเทียบเซ็นเซอร์ (ดูด้านล่าง) สิ่งนี้สอดคล้องกับความเร็วลมประมาณ 0.2 m/s เราเน้นว่านี่คือค่าความเร็วลมขั้นต่ำที่วัดได้ จะสูงขึ้นมาก) เมื่อมีความถี่ (นั่นคือเมื่อเซ็นเซอร์หมุน) เวลาในการวัด (และดังนั้นเวลาในการเผาไหม้ LED ซึ่งก็คือการบริโภคในปัจจุบัน) จะลดลงตามสัดส่วนและความละเอียดจะเพิ่มขึ้น

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

// ทุกๆ 16 วินาที เราเฉลี่ยแบตเตอรี่และกำหนดค่าสูงสุด // ค่าความถี่จาก 4 ค่า: if (count==3)( f=0; //frequency value for (byte i=0; i<4; i++) if (fถัดไปเป็นคำจำกัดความของรหัสสีเทาของทิศทาง ที่นี่ เพื่อลดการบริโภค แทนที่จะใช้ IR LED ตลอดเวลา ความถี่ 5 kHz จะถูกนำไปใช้กับทั้งสี่ช่องพร้อมกันผ่านทรานซิสเตอร์เอฟเฟกต์ฟิลด์หลักโดยใช้ฟังก์ชันโทน () การตรวจจับความถี่ในแต่ละหลัก (พิน in_0p - in_3p) ดำเนินการโดยวิธีการที่คล้ายกับการป้องกันการสะท้อนกลับเมื่ออ่านการบ่งชี้ของปุ่มที่กด อันดับแรก ในลูป เรารอดูว่าเอาต์พุตสูงหรือไม่ จากนั้นเราจะตรวจสอบหลังจาก 100 µs 100 µs คือครึ่งคาบของความถี่ 5 kHz นั่นคือถ้ามีความถี่เป็นอย่างน้อยจากครั้งที่สอง เราก็จะได้ระดับสูงอีกครั้ง (เผื่อว่าเราจะทำซ้ำสี่ครั้ง) และนี่หมายความว่า มันอยู่ที่นั่นอย่างแน่นอน เราทำซ้ำขั้นตอนนี้สำหรับโค้ดสี่บิตแต่ละอัน:

/* ===== Wind Grey ==== */ //direction: tone(IR_Pin,5000);//frequency 5 kHz to transistor boolean yes = false; ไบต์ i=0; while(!yes)( //digit 3 i++; boolean state1 = (digitalRead(in_3p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_3p)); if (i> 4 ) แตก; //ลองสี่ครั้ง) ถ้า (ใช่) wDir=1; อย่างอื่น wDir=0; ใช่ = เท็จ; ผม=0; while(!yes)( //digit 2 i++; boolean state1 = (digitalRead(in_2p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_2p)); if (i> 4 ) แตก; //ลองสี่ครั้ง) ถ้า (ใช่) wDir=1; อย่างอื่น wDir=0; ใช่ = เท็จ; ผม=0; while(!yes)( //bit 1 i++; boolean state1 = (digitalRead(in_1p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_1p)); if (i> 4) ) แตก; //ลองสี่ครั้ง) ถ้า (ใช่) wDir=1; อย่างอื่น wDir=0; ใช่ = เท็จ; ผม=0; while(!yes)( //bit 0 i++; boolean state1 = (digitalRead(in_0p)&HIGH); delayMicroseconds(100); // 100 microsecond delay yes=(state1 & !digitalRead(in_0p)); if (i> 4 ) แตก; //ลองสี่ครั้ง) ถ้า (ใช่) wDir=1; อย่างอื่น wDir=0; noTone(IR_Pin); //ปิดความถี่ //รวบรวมเป็นไบต์ในโค้ดสีเทา: wind_Gray=wDir+wDir*2+wDir*4+wDir*8; // แปลโดยตรงเป็นไบนารี รหัส int wind_G=wind_Gray*10+1000; // บวกได้ 4 des. ปล่อย . . . .
ระยะเวลาสูงสุดของขั้นตอนหนึ่งจะไม่มีความถี่ในเครื่องรับและเท่ากับ 4 × 100 = 400 ไมโครวินาที เวลาการเผาไหม้สูงสุดของ LED 4 ทิศทางจะเป็นเมื่อไม่มีตัวรับสว่าง นั่นคือ 4 × 400 = 1.6 มิลลิวินาที อย่างไรก็ตาม อัลกอริธึมจะทำงานในลักษณะเดียวกัน หากคุณเพียงแค่ใช้ระดับสูงคงที่กับ LED แทนที่จะใช้ความถี่ที่มีคาบเวลาเป็นทวีคูณของ 100 μs เมื่อมีทางคดเคี้ยวแทนที่จะเป็นระดับคงที่ เราก็ประหยัดอาหารได้ครึ่งหนึ่ง เราสามารถประหยัดได้มากขึ้นหากเราเรียกใช้ IR LED แต่ละเส้นผ่านสายแยก (ตามลำดับ ผ่านเอาต์พุตคอนโทรลเลอร์ที่แยกจากกันที่มีทรานซิสเตอร์หลักของตัวเอง) แต่สิ่งนี้จะทำให้วงจร การเดินสายและการควบคุมซับซ้อน และกระแส 130 mA เป็นเวลา 2 มิลลิวินาทีทุกๆ 16 วินาที - คุณเห็นไหมว่าเล็กน้อย

ในที่สุด, การรับส่งข้อมูลแบบไร้สาย. เลือกวิธีการที่ง่าย ถูกที่สุด และน่าเชื่อถือที่สุดในการส่งข้อมูลจากตำแหน่งของเซ็นเซอร์ไปยังหน้าจอสถานีตรวจอากาศ: คู่ตัวส่ง/ตัวรับที่ความถี่ 433 MHz ฉันยอมรับว่าวิธีการนี้ไม่ใช่วิธีที่สะดวกที่สุด (เนื่องจากอุปกรณ์ได้รับการออกแบบมาเพื่อถ่ายโอนลำดับบิตและไม่ใช่ทั้งไบต์ คุณต้องเป็นเลิศในการแปลงข้อมูลระหว่างรูปแบบที่ต้องการ) และฉันแน่ใจว่าหลาย ๆ คนจะต้องการ ที่จะโต้แย้งกับฉันในแง่ของความน่าเชื่อถือ คำตอบสำหรับการคัดค้านสุดท้ายนั้นง่ายมาก: “คุณแค่ไม่รู้วิธีทำอาหาร!”

ความลับก็คือว่ามักจะอยู่เบื้องหลังคำอธิบายต่างๆ ของการแลกเปลี่ยนข้อมูลผ่านช่องสัญญาณ 433 MHz: เนื่องจากอุปกรณ์เหล่านี้เป็นแอนะล็อกล้วนๆ กำลังของเครื่องรับจะต้องได้รับการทำความสะอาดอย่างดีจากระลอกคลื่นภายนอกใดๆ ไม่ว่าในกรณีใดๆ ตัวรับสัญญาณไม่ควรได้รับพลังงานจากตัวควบคุม 5V ภายในของ Arduino! การติดตั้งตัวควบคุมตัวรับสัญญาณพลังงานต่ำแยกต่างหาก (LM2931, LM2950 หรือใกล้เคียง) ข้างๆ เอาต์พุต พร้อมวงจรกรองอินพุตและเอาต์พุตที่เหมาะสม ช่วยเพิ่มระยะการส่งและความน่าเชื่อถือได้อย่างมาก

ในกรณีนี้เครื่องส่งสัญญาณทำงานโดยตรงจากแรงดันแบตเตอรี่ 12 V เครื่องรับและเครื่องส่งสัญญาณได้รับการติดตั้งเสาอากาศแบบโฮมเมดมาตรฐานในรูปแบบของชิ้นส่วนลวดยาว 17 ซม. (ฉันขอเตือนคุณว่ามีเพียงแกนเดียวเท่านั้น ลวดเหมาะสำหรับเสาอากาศและจำเป็นต้องวางเสาอากาศในพื้นที่ขนานกัน) ชุดข้อมูลยาว 24 ไบต์ (โดยคำนึงถึงความชื้นและอุณหภูมิ) โดยไม่มีปัญหาใด ๆ ถูกส่งผ่านอย่างมั่นใจด้วยความเร็ว 1200 bps ตามแนวทแยงมุม แปลงสวนขนาด 15 เอเคอร์ (ประมาณ 40-50 เมตร) จากนั้นผ่านผนังไม้สามท่อนเข้าไปในห้อง ( ซึ่งตัวอย่างเช่นสัญญาณมือถือได้รับด้วยความยากลำบากและไม่ใช่ทุกที่) สภาวะที่ไม่สามารถบรรลุได้จริงสำหรับวิธี 2.4 GHz มาตรฐานใดๆ (เช่น Bluetooth, Zig-Bee และแม้แต่ Wi-Fi สมัครเล่น) แม้ว่าการใช้เครื่องส่งสัญญาณที่นี่จะน่าสังเวช 8 mA และเฉพาะในเวลาที่มีการส่งจริงเท่านั้น เวลาที่เหลือที่เครื่องส่งสัญญาณใช้เงินจริง ตัวส่งสัญญาณถูกวางไว้อย่างมีโครงสร้างภายในยูนิตรีโมท เสาอากาศจะยื่นออกมาในแนวนอนจากด้านข้าง

เรารวมข้อมูลทั้งหมดไว้ในแพ็กเก็ตเดียว (ในสถานีจริง อุณหภูมิและความชื้นจะถูกเพิ่มเข้าไป) ประกอบด้วยชิ้นส่วนขนาด 4 ไบต์ที่สม่ำเสมอและนำหน้าด้วยลายเซ็น "DAT" ส่งไปยังเครื่องส่งและดำเนินการตามรอบทั้งหมด:

/*=====เครื่องส่งสัญญาณ======*/ สตริง strMsg="DAT"; // ลายเซ็น - ข้อมูล strMsg+=volt; //แนบแบตเตอรี่ 4 หลัก strMsg+=wind_G; //แนบลม 4 บิต strMsg+=fi; //แนบความถี่ 4 บิต strMsg.toCharArray(msg,16); //แปลสตริงเป็นอาร์เรย์ // Serial.println(msg); //เพื่อควบคุม vw_send((uint8_t *)msg, strlen(msg)); // ส่งข้อความ vw_wait_tx(); //รอโอนให้เสร็จ - ห้ามพลาด! ล่าช้า (50); //+ เผื่อว่า delay count=0; //รีเซ็ตตัวนับ )//end count==3 else count++; digitalWrite (ledPin ต่ำ); //เราปิดสัญญาณ LED system_sleep(); //ระบบ - เข้าสู่โหมดสลีป) //สิ้นสุดลูป
ขนาดแพ็กเก็ตสามารถลดลงได้หากความต้องการแสดงค่าแต่ละประเภทในรูปแบบรหัส 4 ไบต์แบบสม่ำเสมอถูกยกเลิก (เช่น สำหรับโค้ดสีเทา แน่นอนว่า 1 ไบต์ก็เพียงพอแล้ว) แต่เพื่อประโยชน์ของการทำให้เป็นสากล ฉันปล่อยให้ทุกอย่างเป็นไปตามที่เป็นอยู่

คุณสมบัติแหล่งจ่ายไฟและการออกแบบของรีโมทยูนิต. การบริโภคของหน่วยระยะไกลคำนวณดังนี้:

20 mA (อีซีแอล) + ~20 mA (คอนโทรลเลอร์พร้อมวงจรเสริม) ประมาณ 0.25 วินาทีทุก ๆ สี่วินาที - 40/16 = ค่าเฉลี่ย 2.5 mA
- 130 mA (หม้อน้ำ) + ~20 mA (คอนโทรลเลอร์พร้อมวงจรเสริม) ประมาณ 2 ms ทุก 16 วินาที - โดยเฉลี่ย 150/16/50 ≈ 0.2 mA

การคำนวณการใช้คอนโทรลเลอร์เมื่ออ่านข้อมูลจากเซ็นเซอร์อุณหภูมิความชื้นและระหว่างการทำงานของเครื่องส่งสัญญาณเรากล้าที่จะนำการบริโภคเฉลี่ยไปที่ 4 mA (สูงสุดประมาณ 150 mA คิด!) แบตเตอรี่ (ซึ่งต้องใช้มากถึง 8 ชิ้นในการจ่ายไฟให้กับเครื่องส่งสัญญาณที่มีแรงดันไฟฟ้าสูงสุด!) จะต้องเปลี่ยนบ่อยเกินไป ดังนั้นแนวคิดนี้จึงเกิดขึ้นเพื่อจ่ายไฟให้กับหน่วยระยะไกลจากแบตเตอรี่ 12 โวลต์สำหรับไขควง - ฉันมีเพียงสองคนพิเศษ ความจุของพวกมันยังน้อยกว่าจำนวนแบตเตอรี่ AA ที่ตรงกัน - เพียง 1.3 A ชั่วโมง แต่ไม่มีใครรบกวนการเปลี่ยนแปลงเมื่อใดก็ได้ ทำให้การชาร์จก้อนที่สองพร้อม ด้วยปริมาณการใช้ที่ระบุ 4 mA ความจุ 1300 mA ชั่วโมงก็เพียงพอแล้วสำหรับประมาณสองสัปดาห์ ซึ่งไม่ยุ่งยากเกินไป

โปรดทราบว่าแรงดันไฟฟ้าของแบตเตอรี่ที่ชาร์จใหม่อาจสูงถึง 14 โวลต์ ในกรณีนี้มีการติดตั้งตัวป้องกันการป้อนเข้า 12 โวลต์ - เพื่อป้องกันแรงดันไฟเกินในแหล่งจ่ายของเครื่องส่งสัญญาณและไม่ให้โอเวอร์โหลดโคลงหลักห้าโวลต์

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

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

แต่มาตรการทั้งหมดนี้ในตัวเองจะให้ผลในระยะสั้นเท่านั้น - แม้ว่าจะไม่มีการดูดอากาศเย็นชื้น อากาศแห้งจากห้องจะเปลี่ยนเป็นความชื้นได้ง่ายเมื่ออุณหภูมิภายนอกเคสลดลง (จำปรากฏการณ์ที่เรียกว่า "จุดน้ำค้าง")

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

โมดูลหลัก

ในโมดูลหลัก ค่าทั้งหมดจะได้รับ ถอดรหัส หากจำเป็น แปลงตามสมการการสอบเทียบและแสดงผล

เครื่องรับถูกนำออกจากร่างกายของโมดูลหลักของสถานีและวางไว้ในกล่องขนาดเล็กที่มีหูสำหรับยึด เสาอากาศถูกนำออกมาทางรูที่ฝาครอบ รูทั้งหมดในกล่องปิดผนึกด้วยยางดิบ หน้าสัมผัสของเครื่องรับจะถูกส่งไปยังขั้วต่อ RS-4 ในประเทศที่น่าเชื่อถือมาก จากฝั่งเครื่องรับจะเชื่อมต่อผ่านส่วนของสายเคเบิล AV ที่มีฉนวนสองชั้น:

สัญญาณถูกนำมาจากแกนเคเบิลอันใดอันหนึ่ง และจ่ายไฟผ่านอีกอันหนึ่งในรูปแบบของ "ดิบ" 9 โวลต์จากอะแดปเตอร์จ่ายไฟของโมดูล ตัวกันโคลง LM-2950-5.0 พร้อมตัวเก็บประจุกรองถูกติดตั้งในกล่องพร้อมกับตัวรับสัญญาณบนบอร์ดแยกต่างหาก

มีการทดลองเพื่อเพิ่มความยาวของสายเคเบิล (ในกรณี - ถ้ามันไม่ผ่านผนังล่ะ) ซึ่งปรากฎว่าไม่มีอะไรเปลี่ยนแปลงภายในความยาวไม่เกิน 6 เมตร

มีจอแสดงผล OLED เพียงสี่จอ: จอสีเหลือง 2 จอแสดงข้อมูลสภาพอากาศ นาฬิกาสีเขียว 2 เรือน และปฏิทิน 1 จอ ตำแหน่งของพวกเขาแสดงในรูปภาพ:

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

แผนภาพ.เพื่อความสะดวกในการติดตั้ง นาฬิกาและจอแสดงผลจะถูกเสิร์ฟโดยคอนโทรลเลอร์ Arduino Mini ที่แยกจากกัน และเราจะไม่วิเคราะห์เพิ่มเติมที่นี่ โครงร่างสำหรับการเชื่อมต่อส่วนประกอบกับ Arduino Nano ซึ่งควบคุมการรับและส่งออกข้อมูลสภาพอากาศมีดังนี้:

ที่นี่ตรงกันข้ามกับโมดูลระยะไกลการเชื่อมต่อของเซ็นเซอร์สภาพอากาศจะแสดงขึ้น - บารอมิเตอร์และเซ็นเซอร์อุณหภูมิความชื้นภายใน คุณควรให้ความสนใจกับสายไฟ - จอแสดงผลใช้พลังงานจากตัวกันโคลง 5 V แยกต่างหาก LM1085 นอกจากนี้ยังเป็นเรื่องปกติที่จะจ่ายไฟให้นาฬิกาแสดงขึ้น อย่างไรก็ตาม ในกรณีนี้ ตัวควบคุมนาฬิกาจะต้องใช้พลังงานจากแรงดันไฟฟ้าเดียวกันและผ่านเอาต์พุต 5 V ไม่ใช่ Vin (สำหรับ Mini Pro เรียกว่าตัวหลัง ดิบ). หากคุณจ่ายไฟให้กับตัวควบคุมนาฬิกาในลักษณะเดียวกับนาโน - ด้วย 9 โวลต์ผ่านเอาต์พุต RAW ตัวควบคุมภายในจะขัดแย้งกับโวลต์ภายนอก 5 โวลต์และในการต่อสู้ครั้งนี้ผู้แข็งแกร่งที่สุดจะชนะนั่นคือ LM1085 และมินิจะยังคงไม่มีพลังงานอย่างสมบูรณ์ นอกจากนี้ เพื่อหลีกเลี่ยงปัญหาทุกประเภท ก่อนตั้งโปรแกรม Nano และโดยเฉพาะ Mini (นั่นคือ ก่อนเชื่อมต่อสาย USB) ควรถอดอะแดปเตอร์ภายนอกออก

สำหรับโคลง LM1085 เมื่อเชื่อมต่อจอแสดงผลทั้งสี่จอ กำลังไฟฟ้าประมาณหนึ่งวัตต์จะถูกปล่อยออกมา ดังนั้นจึงควรติดตั้งบนหม้อน้ำขนาดเล็กประมาณ 5-10 ซม. 2 จากมุมอลูมิเนียมหรือทองแดง

การรับและการประมวลผลข้อมูล ที่นี่ฉันทำซ้ำและแสดงความคิดเห็นเฉพาะส่วนโปรแกรมที่เกี่ยวข้องกับข้อมูลลม เกี่ยวกับเซ็นเซอร์อื่น ๆ สองสามคำในภายหลัง

ในการรับข้อความบนช่องสัญญาณ 433 MHz เราใช้วิธีมาตรฐานที่อธิบายไว้ในหลายแหล่ง เราเชื่อมต่อไลบรารี่และประกาศตัวแปร:

#รวม . . . . . อินท์โวลท์; // แรงดันแบตเตอรี่ในโค้ดทั้งหมดแบบมีเงื่อนไข float batt; // ค่าจริง - แรงดันแบตเตอรี่ไบต์ wDir; // ทิศทางในรหัสสีเทา uint16_t t_time = 0; // ช่วงเวลาการรับ ถ่าน str; //สตริงสำหรับข้อมูล uint8_t buf; //ตัวแปรสำหรับข้อความที่ได้รับ uint8_t buflen = VW_MAX_MESSAGE_LEN; // ความยาวสูงสุดของข้อความที่ได้รับ . . . .
มีลักษณะเฉพาะอย่างหนึ่งกับขนาดของบัฟเฟอร์ buflen: ไม่เพียงพอที่จะประกาศค่า (VW_MAX_MESSAGE_LEN) หนึ่งครั้งที่จุดเริ่มต้นของโปรแกรม เนื่องจากตัวแปรนี้ปรากฏขึ้นโดยการอ้างอิงในฟังก์ชันรับ (ดูด้านล่าง) ขนาดข้อความเริ่มต้นจะต้องได้รับการอัปเดตทุกรอบ มิฉะนั้น เนื่องจากการรับข้อความที่เสียหาย ค่าของ buflen จะสั้นลงทุกครั้ง จนกว่าคุณจะเริ่มได้รับเรื่องไร้สาระแทนข้อมูล ในตัวอย่าง ตัวแปรทั้งสองนี้มักจะถูกประกาศในเครื่องในลูป () ดังนั้นขนาดบัฟเฟอร์จะถูกอัปเดตโดยอัตโนมัติ แต่ในที่นี้ เราจะทำการกำหนดค่าที่ต้องการซ้ำในตอนเริ่มต้นของแต่ละลูป

ในขั้นตอนการตั้งค่า เราทำการตั้งค่าต่อไปนี้:

การตั้งค่าเป็นโมฆะ () (ล่าช้า (500); // ในการปิดเครื่องจะแสดง pinMode (16, INPUT_PULLUP); // ปักหมุดสำหรับปุ่ม vw_setup (1200); // ความเร็วในการเชื่อมต่อ VirtuWire vw_set_rx_pin (17); // A3 VirtualWire ตัวรับพิน . . . . .
ก่อนที่จะยอมรับบางสิ่งบางอย่าง ช่วงเวลา t_time ที่ผ่านไปตั้งแต่การรับครั้งล่าสุดจะถูกตรวจสอบ หากเกินขีดจำกัดที่สมเหตุสมผล (เช่น 48 วินาที - สามเท่าของเวลาการทำซ้ำของข้อความจากหน่วยภายนอก) แสดงว่าเซ็นเซอร์สูญเสียไปและมีการระบุไว้บนหน้าจอ:

Void loop() ( vw_rx_start(); // พร้อมรับ buflen = VW_MAX_MESSAGE_LEN; // ขนาดบัฟเฟอร์ใหม่ทุกครั้ง if ((int(millis()) - t_time) > 48000) // ถ้า t_time ไม่ได้รับการอัพเดตเพิ่มเติม มากกว่า 48 วินาที (<отображаем прочерк на дисплее>)// ไม่พบเซ็นเซอร์ปลายถ้า (vw_have_message()) ( //รอการรับสัญญาณ if (vw_get_message(buf, &buflen)) // หากได้รับข้อมูล ( vw_rx_stop(); //หยุดรับสักครู่ t_time = millis( ); / /update t_time สำหรับ (ไบต์ i=0;i<3;i++) // Получить первые три байта str[i]= buf[i]; str="\0"; if((str=="D")&&(str=="A")&&(str=="T")) { //сигнатура принята //принимаем данные: for (byte i=3;i<7;i++) // извлечь четыре байта аккумулятора str= buf[i]; // упаковать их в строку volt=atoi(str); //преобразовать в целое число volt=(volt/10)-100; //удаляем добавки до 4-х байт batt=float(volt)/55.5; //преобразуем в реальный вид напряжения в вольтах //и пока храним в глобальной переменной for (byte i=7;i<11;i++) // извлечь четыре байта направления str= buf[i]; // упаковать их в строку int w_Dir=atoi(str); //преобразовать в целое число w_Dir=(w_Dir-1000)/10; //возвращаем к исходному виду wDir=lowByte(w_Dir); //младший байт - код Грея <выводим направление на дисплей через оператор case> . . . . .
ค่าสัมประสิทธิ์ 55.5 - การแปลงค่าของรหัส ADC เป็นแรงดันไฟฟ้าจริง ค่าของมันขึ้นอยู่กับแรงดันอ้างอิงและค่าของตัวต้านทานตัวแบ่ง

อย่างไรก็ตาม โค้ดสีเทามีคุณลักษณะหนึ่ง: ลำดับของบิตนั้นไม่สำคัญ โค้ดจะคงคุณสมบัติทั้งหมดไว้สำหรับการเปลี่ยนแปลงใดๆ และเนื่องจากเมื่อถอดรหัส เรายังคงพิจารณาแต่ละกรณีแยกกันที่นี่ บิตสามารถพิจารณาในลำดับใดก็ได้และสับสนเมื่อเชื่อมต่อ เป็นอีกเรื่องหนึ่งหากพวกเขาต้องการปรับปรุงเรื่องนี้ - ตัวอย่างเช่น สร้างอาร์เรย์ของค่าทิศทาง (“s”, “ss”, “sz”, “ssz”, “z” เป็นต้น) และแทน ของการพิจารณารายบุคคล แต่ละตัวแปรแยกการกำหนดตามหมายเลขในอาร์เรย์นี้ จากนั้นเราจะต้องแปลงรหัสสีเทาเป็นเลขฐานสองและลำดับของบิตจะมีบทบาทสำคัญ

และสุดท้าย เราแยกค่าความเร็วและปิดคำสั่งทั้งหมด:

สำหรับ(ไบต์ i=19;i<23;i++) // Получить четыре байта частоты str= buf[i]; // упаковать их в строку int wFrq=atoi(str); //преобразовать в целое число wFrq = (wFrq-1000)/10; //удаляем добавки до 4-х байт wFrq=10+0.5*wFrq;//скорость в целом виде с десятыми <отображаем ее на дисплее поразрядно>)// end if str=DAT )//end vw_get_message ) // end vw_have_message(); . . . . .
ที่นี่ 10+0.5*wFrq คือสมการการสอบเทียบ 10 dm/s (เช่น 1.0 เมตรต่อวินาที) คือเกณฑ์เริ่มต้น และ 0.5 คือความถี่ในการเร่งปัจจัยการแปลง (เป็น dm/s) ด้วยค่าศูนย์ของความถี่อินพุต สมการนี้ให้ 10 dm / s ดังนั้นควรใช้ความระมัดระวังเป็นพิเศษเพื่อแสดงไม่ใช่ 1 m / s แต่เป็นค่าศูนย์ คุณสามารถปรับเทียบเซ็นเซอร์ความเร็วได้โดยใช้เครื่องวัดความเร็วลมแบบมือถือที่ถูกที่สุดและพัดลมตั้งโต๊ะ อย่าพยายามกำหนดเกณฑ์เริ่มต้นในการทดลอง - มันจะแม่นยำมากขึ้นถ้าคุณทำเครื่องหมายสองหรือสามจุดของเส้นตรงการสอบเทียบของความเร็ว V จากความถี่ F: V = Vp + K × F ที่ความเร็วการไหลต่างกัน เกณฑ์เริ่มต้นจะถูกกำหนดโดยอัตโนมัติเป็นค่า Vp (พิกัดของจุดตัดของเส้นนี้กับแกนความเร็ว)

มีอีกอย่างที่ต้องทำก่อนปิดลูปหลัก เรามีแรงดันไฟของแบตเตอรี่ แต่คุณไม่จำเป็นต้องแสดงไว้ตลอดเวลา เพียงแค่ใช้พื้นที่ สำหรับสิ่งนี้ จำเป็นต้องใช้ปุ่ม Kn1 - โดยคลิกที่มัน เราชั่วคราว (จนกว่าจะมีการอัปเดตข้อมูลครั้งต่อไป) แทนที่เส้นอุณหภูมิความชื้นภายนอกด้วยค่าแรงดันไฟฟ้า:

ถ้า (digitalRead(16)==LOW)( //กดปุ่ม<выводим напряжение на дисплей, затирая значение температуры-влажности>) // สิ้นสุดการหน่วงเวลาของปุ่ม (500); )//สิ้นสุดลูป
ฉันมีปุ่มดังที่เห็นได้จากไดอะแกรมพร้อมหน้าสัมผัสแบบเปลี่ยน แต่ไม่มีอะไรป้องกันฉันจากการติดตั้งปุ่มปกติด้วยปุ่มปิดโดยเชื่อมต่อกับพลังงานผ่านตัวต้านทาน คุณยังสามารถเพิ่มการกะพริบของสัญลักษณ์บนหน้าจอได้ในกรณีที่แรงดันไฟแบตเตอรี่ลดลงด้านล่าง เช่น 10 โวลต์ เพื่อเป็นสัญญาณว่าถึงเวลาต้องเปลี่ยนแล้ว

โดยสรุปเกี่ยวกับเซ็นเซอร์สภาพอากาศ SHT-75 ถูกใช้เป็นเซ็นเซอร์กลางแจ้ง - เซ็นเซอร์มือสมัครเล่นเพียงตัวเดียวที่ฉันพบว่าไม่ต้องการการสอบเทียบและแสดงค่าอุณหภูมิและความชื้นที่แท้จริงตั้งแต่แกะกล่อง (ด้วยเหตุนี้ราคาจึงสูง)

ห้องสมุดสำหรับเชื่อมต่อสามารถพบได้

SHT-75 ได้รับการออกแบบในลักษณะที่ค่อนข้างโง่เขลา: พื้นผิวโลหะของบอร์ดนำความร้อนได้ดีมาก จึงต้องนำออกจากเคสโดยสมบูรณ์ มิฉะนั้น การมีคอนโทรลเลอร์ ATmega328 เพียงตัวเดียวพร้อมตัวควบคุมการจ่ายไฟในกล่องปิดก็เพียงพอแล้วที่จะทำให้เซ็นเซอร์ร้อนสองสามองศาผ่านพื้นผิวของบอร์ดแม้ว่าหัวจะเคลื่อนออกไปข้างนอก วงจรของฉันที่มีเซ็นเซอร์วัดลมซึ่งมีกระแส 20-130 mA (แม้ว่ากระแสไฟจะเล็กน้อยในมิลลิวินาทีก็ตาม) ให้ความร้อน SHT-75 องศาห้าองศา ดังนั้นมันจึงถูกนำออกมาและติดตั้งแยกต่างหากบนแผ่นพลาสติกที่ยื่นออกมาจากเคสด้านข้าง .

ข้อมูลจาก SHT-75 ถูกควบคุมโดยคอนโทรลเลอร์เดียวกันกับข้อมูลจากเซ็นเซอร์วัดลม และส่งจากโมดูลระยะไกลในชุดเดียวผ่านช่องสัญญาณไร้สาย 433 MHz พวกเขายังถูกแปลงเป็นสตริง 4 ไบต์สำหรับการส่งสัญญาณล่วงหน้า

ในการวัดอุณหภูมิและความชื้นภายในห้อง ได้เลือกใช้ DHT-22 แบบธรรมดา - เนื่องจากช่วงที่มีขนาดเล็กเมื่อเทียบกับท้องถนน จึงไม่ทำให้เกิดความแตกต่างว่าควรใช้เซ็นเซอร์ตัวใด (ยกเว้นแน่นอน DHT-11 ที่ไม่ควร ใช้งานไม่ว่าในกรณีใด ๆ ตามวัตถุประสงค์ที่ตั้งใจไว้ มันใช้งานไม่ได้อย่างง่ายๆ) อุณหภูมิของ DHT-22 ได้รับการแก้ไขตามการวัดด้วยเทอร์โมมิเตอร์แบบปรอท (ใกล้เคียงกับ SHT-75!) และความชื้นถูกปรับเล็กน้อยเมื่อเปรียบเทียบกับ SHT-75 การแก้ไขจะถูกป้อนก่อนการบ่งชี้บนจอแสดงผล

อย่างไรก็ตาม DHT-22 จะต้องถูกนำออกจากเคสพร้อมจอแสดงผลด้วย ไม่เช่นนั้นจะทำให้ร้อนและนอนราบอย่างหลีกเลี่ยงไม่ได้ ฉันซ่อมมันบนฐานยึดพลาสติกที่ด้านล่างของเคสที่ระยะห่างจากมันสิบมิลลิเมตร สถานการณ์นี้โดยวิธีการที่ฉันสงสัยว่าเป็นสาเหตุหนึ่ง (นอกเหนือจากการขาดการสอบเทียบส่วนบุคคล) ที่สถานีตรวจอากาศในครัวเรือนของ RST และ Oregon ทั้งหมดที่มีตราสินค้าอยู่อย่างไร้ยางอายในการอ่านมีการแพร่กระจายแม้กระทั่งกับตัวเอง (เซ็นเซอร์ภายใน ด้วยภายนอกหนึ่ง) สองหรือสามองศาและความชื้นสูงถึงสิบเปอร์เซ็นต์

บารอมิเตอร์ไม่มีปัญหาเนื่องจากชิปที่มีจำหน่ายในท้องตลาดเกือบทั้งหมดผลิตขึ้นบนพื้นฐานเดียวกัน - ชิป BMP180 microelectromechanical (MEMS) หรือการดัดแปลง ประสบการณ์ส่วนตัวของฉันกับตัวแปรที่ใช้ LPS331AP ที่พบได้น้อยกว่านั้นเป็นไปในทางลบ: ห้องสมุดที่หายากกว่า และที่เหนือกว่านั้น คือพบข้อขัดแย้งกับอุปกรณ์อื่นๆ บนบัส I2C อาจต้องปรับค่าบารอมิเตอร์ที่สถานที่ติดตั้ง - ทุกๆ 10-12 เมตรเหนือระดับน้ำทะเล ความดันจะลดลง 1 มม. ปรอท ศิลปะ. ดังนั้นจะต้องลบค่าบางอย่างออกจากการอ่าน (หรือเพิ่ม) เพื่อให้ค่าความดันสอดคล้องกับการอ่านของสถานีตรวจอากาศอย่างเป็นทางการในพื้นที่

ฉันไม่ได้ให้รายการทั้งหมดของสถานีตรวจอากาศทั้งหมด - ค่อนข้างยุ่งยากและคุณยังไม่สามารถทำซ้ำการออกแบบแบบตัวต่อตัวได้ ถ้ามีอะไรให้เคาะ PM นะครับ

UPD ลงวันที่ 06/30/17ติดตั้งพลังงานแสงอาทิตย์. ชุดจากที่นี่:
แผงโซลาร์เซลล์
ตัวควบคุม
แบตเตอรี่
รวมกันทั้งหมด + จัดส่งในมอสโกภายใน 2.5 tyr. ทำงานได้อย่างไม่มีที่ติ
วิธีที่น่าสนใจในการคำนวณกำลังของแบตเตอรี่พลังงานแสงอาทิตย์และแบตเตอรี่ซึ่งนำเสนอโดยที่ปรึกษาจากเว็บไซต์นี้ ตัวอย่างการคำนวณการใช้พลังงาน 3 W (ฉันมีน้อยกว่ามาก) ฉันอ้าง:
“3W คูณ 24h และหารด้วย 6 = 12Ah คือความจุของแบตเตอรี่ขั้นต่ำ
3W คูณด้วย 24h และหารด้วย 3h = 24W คือพลังงานขั้นต่ำของแบตเตอรี่พลังงานแสงอาทิตย์
ไม่มีความคิดเห็น.
ในกรณีของฉัน กำลังการผลิตของโรงไฟฟ้าพลังงานแสงอาทิตย์นั้นสูงกว่าที่กำหนดถึงสิบเท่าภายใต้สภาพอากาศที่เลวร้ายที่สุด ดังนั้นในตัวควบคุมเซ็นเซอร์ คุณไม่ต้องสนใจเรื่องการประหยัดพลังงานมากเกินไป และใช้ความถี่ในการอ่านและหาค่าเฉลี่ยที่จำเป็น

UPD ลงวันที่ 09/13/18เกือบสองฤดูกาลของการทำงาน จุดแข็งและจุดอ่อนของสถานีถูกเปิดเผย จุดอ่อนประการแรกคือ รอบการอัปเดตการอ่าน 16 วินาที (จากชุดการวัดสี่ชุด) อย่างเดิม ยาวเกินไป การติดตั้งแบตเตอรี่โซลาร์เซลล์พร้อมแบตเตอรี่บัฟเฟอร์ทำให้ไม่ต้องนึกถึงการประหยัดพลังงานและใช้เวลากับรอบการทำงาน ด้วยเหตุนี้ รอบจึงถูกตั้งไว้ที่ 8 วินาที (การวัดสี่ครั้งในสองวินาที)
ของการปรับปรุงเชิงกลนั้น ได้แนะนำตลับลูกปืนกันรุนแบบแข็งที่ส่วนปลายของเซ็นเซอร์ความเร็ว (ใช่ ฉันได้รับคำเตือนเกี่ยวกับความจำเป็นในสมัยนั้น แต่ไม่รู้ว่าจะทำอย่างไรในตอนนั้น) หลังจากผ่านไประยะหนึ่ง แกนของเซ็นเซอร์จะตัดผ่านส่วนรองรับฟลูออโรพลาสติกอย่างสมบูรณ์และเกณฑ์เริ่มต้นเพิ่มขึ้นอย่างรวดเร็ว (โดยวิธีนี้ไม่ส่งผลต่อความไวของใบพัดสภาพอากาศเลย) ดังนั้นการรองรับจึงถูกแทนที่ด้วยตลับลูกปืนกันรุนแบบสเตนเลสซึ่งมีช่องเล็ก ๆ ทำด้วยสว่านบาง ๆ ฉันมีจินตนาการว่าต่อมาฉันจะต้องคิดอย่างอื่นกับส่วนปลายซึ่งทำจากดูราลูมินเช่นเดียวกับแกนทั้งหมด แต่ฉันเลื่อนออกไปจนกว่าจะถึงเวลาที่เซ็นเซอร์ยังคงต้องทำใหม่: แผ่นเลเซอร์ที่ใช้เป็นพื้นฐานสำหรับการออกแบบกลายเป็นเมฆครึ้มจากดวงอาทิตย์ในสองฤดูกาลและเริ่มแตก

UPD ลงวันที่ 06/05/19
เกี่ยวกับการเปลี่ยนแปลงของเซ็นเซอร์ (ใบพัดสภาพอากาศเหมือนเดิม) เซ็นเซอร์ความเร็วต้องทำใหม่ทั้งเนื่องจากเพลาที่สึกหรอและเนื่องจากจานเลเซอร์ที่ใช้งานไม่ได้ การออกแบบพื้นฐานยังคงเหมือนเดิม แต่แผ่นเลเซอร์ใหม่ได้รับการพ่นสีด้วยสีทอง คำตอบสำหรับปลายแกนอยู่ในรูปแบบต่อไปนี้ ในแกน duralumin เจาะรูตรงกลางพอดี และตัด 3 มม. ที่ด้านบนของก๊อกจีนบนกาวที่สอง ด้านบนของก๊อกเป็นทรงกรวยที่อยู่ตรงกลางอย่างดีโดยมีมุมประมาณ 70-80 องศา ขัดเพิ่มเติมด้วยกระดาษทรายเป็นศูนย์แล้วจึงวาง GOI เพื่อเป็นฐาน ฉันใช้หัวสกรู M3 สแตนเลสพร้อมช่องเลื่อยซึ่งมีการกดจุดเล็ก ๆ ตรงกลางด้วยสว่านธรรมดา D = 2 มม. สกรูนี้ถูกขันเข้าโดยตรงในช่องใน PTFE ซึ่งเลื่อยผ่านเพลาได้เร็วกว่าการตั้งศูนย์
ปลายแกนได้รับการหล่อลื่นด้วยจาระบีกราไฟท์เพื่อป้องกันการกัดกร่อน (เนื่องจากฉันไม่ทราบคุณสมบัติสเตนเลสของต๊าป) หลังจากการเจียรบางส่วนเกณฑ์เริ่มต้นลดลงมากจนไม่สามารถวัดด้วยเครื่องวัดความเร็วลมที่เป็นกรรมสิทธิ์ซึ่งเกณฑ์ประมาณ 0.3-0.5 ซม. / วินาที จากข้อมูลทางอ้อม (โดยการสร้างเส้นตรงจากจุดสองจุด) เกณฑ์ที่ 0.3 m/s ได้รับการยอมรับโดยสมัครใจ แม้ว่าจะค่อนข้างน้อยกว่าก็ตาม

การเปลี่ยนแปลงหลักในอัลกอริธึมการคำนวณยังเกี่ยวข้องกับเซ็นเซอร์ลมด้วย และฉันพบว่ามีประโยชน์ที่จะใส่สิ่งนี้ใน


ลมมีตั้งแต่ลมเบาไปจนถึงพายุกระโชกแรงที่นำมาซึ่งการทำลายล้างและความตาย ลมที่แรงที่สุดคือพายุเฮอริเคน ลมแรงจากพายุเฮอริเคนเหล่านี้ก่อตัวเหนือมหาสมุทรในเขตร้อน เมื่ออากาศจำนวนมากถูกดูดเข้าไปในบริเวณที่มีความกดอากาศต่ำ เมฆพายุมักจะวนเวียนอยู่ตรงกลาง (หรือดวงตา) ของพายุเฮอริเคนด้วยความเร็วที่เร็วกว่ารถไฟ

คุณอาจไม่เคยประสบกับพายุเฮอริเคนมาก่อน แต่ไม่ว่าคุณจะอาศัยอยู่ที่ใด คุณอาจเคยเจอทั้งวันที่สงบและมีลมแรง สร้างเครื่องวัดความเร็วลม ซึ่งเป็นเครื่องมือที่ง่ายที่สุดในการวัดความเร็วลม และบันทึกความแรงของลมในพื้นที่ของคุณในวันที่ลมแรง

คุณจะต้องการ:

หมุดไม้หนา
แท่งไม้บาง
เชือกและลูกดิ่ง
โยเกิร์ตหนึ่งถ้วย
เทปกาว (กันน้ำ)
หมุด
กระดาษแข็งสี
ท่อทองแดง
กาว
กรรไกร

1. นำหมุดไม้หนาๆ สอดเข้าไปในท่อทองแดงให้แน่น นี่จะเป็นขาตั้งเครื่องวัดความเร็วลม

2. ให้ผู้ใหญ่ช่วยเจาะรูผ่านตะแกรง เส้นผ่านศูนย์กลางของรูควรสอดคล้องกับความหนาของแท่งบางอันหนึ่ง กรีดที่ปลายด้านหนึ่งของแท่งบางนี้ ใส่เข้าไปในชั้นวางแล้วขันให้แน่นตามที่แสดงในภาพ

3. ตัดหัวลูกศรออกแล้วดึงออกจากกระดาษแข็งแล้วมัดเข้ากับปลายแท่งบาง ๆ

4. ตัดวงกลมสี่เหลี่ยมออกจากกระดาษแข็งสีแล้วติดเข้ากับลูกศรด้วยเทปพันสายไฟ

5. นำโยเกิร์ตแก้วใหญ่ กาวเข้ากับปลายด้านหนึ่งของแท่งไม้บางอันที่สอง

6. ให้ผู้ใหญ่ช่วยเจาะรูเล็กๆ ที่ปลายอีกด้านของแกนที่สอง จากนั้นปักหรือตอกหมุดที่ด้านบนของเสา ตรวจสอบให้แน่ใจว่าแกนหมุนได้อย่างอิสระ

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

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

มาตราส่วนโบฟอร์ต

นี่คือมาตราส่วนสำหรับวัดความเร็วลมซึ่งอิงจากการสังเกตธรรมชาติ มาตราส่วนถูกคิดค้นโดยพลเรือเอกเซอร์ฟรานซิส โบฟอร์ตชาวอังกฤษเมื่อเกือบ 200 ปีที่แล้ว

ความเร็วลมบนแผนที่สภาพอากาศจะแสดงด้วยจำนวนเส้นประบนไอคอนแรงลม

ความเร็วลม ลักษณะทางวาจา สัญญาณของการประมาณความเร็วลม
นางสาว กม./ชม คะแนน
โบฟอร์ต
0,0-1,5 0,0-1,8 0 เงียบสงบ ควันลอยขึ้นในแนวตั้งหรือเกือบในแนวตั้ง ใบไม้ก็ไม่นิ่ง
0,6-1,7 1,9-5,1 1 ลมเงียบ ทิศทางลมถูกกำหนดโดยควัน
1,8-3,3 5,2-11,7 2 สายลมอ่อนๆ ลมสัมผัสใบหน้า ใบไม้ก็ไหว
3,4-5,2 11,8-18,7 3 ลมแรง ใบไม้และกิ่งก้านบาง ๆ ของต้นไม้แกว่งไปแกว่งมาอย่างต่อเนื่องลมโบกธงแสงทะเลถูกปกคลุมไปด้วยคลื่นแสงอย่างต่อเนื่อง
5,3-7,4 18,8-26,6 4 ลมปานกลาง ลมพัดฝุ่น เคลื่อนตัวไปตามกิ่งไม้บาง ๆ บนคลื่นที่แยกจากกัน บางครั้งก็ปรากฏเป็นสีขาว "ลูกแกะ" ที่หายไปอย่างรวดเร็ว
7,5-9,8 26,7-35,3 5 สายลมสดชื่น กิ่งไม้หนาทึบแกว่งไปแกว่งมา "ลูกแกะ" มองเห็นได้ทุกคลื่น
9,9-12,4 35,4-44,0 6 ลมแรง กิ่งไม้หนาทึบกำลังแกว่งไกว สายโทรเลขกำลังส่งเสียง "ลูกแกะ" บนคลื่นยาวกว่า (5-10 วินาที)
12,5-15,2 44,1-54,7 7 ลมแรง ยอดของต้นไม้แกว่งไปแกว่งมากิ่งใหญ่งอไม่สะดวกรับลม ฟองคลื่นในทะเล
15,3-18,2 54,8-66,0 8 ลมแรงมาก ลมพัดกิ่งบางและกิ่งก้านแห้งทำให้เคลื่อนไหวลำบาก
18,3-21,5 66,1-77,5 9 พายุ ลมพัดปล่องไฟและกระเบื้องหลังคา มันยากมากที่จะต้านลม
21,6-25,1 77,6-90,2 10 พายุรุนแรง การทำลายล้างที่สำคัญ ต้นไม้ถูกถอนรากถอนโคน
25,2-29,0 90,3-104,4 11 พายุรุนแรง การทำลายล้างครั้งใหญ่: ล้มเสาโทรเลข เกวียน
มากกว่า 29.0 มากกว่า 104.4 12 พายุเฮอริเคน ทำลายบ้านเรือน ทำให้เกิดความพินาศใหญ่หลวง

เครื่องวัดความเร็วลมใหม่ของฉัน เครื่องวัดความเร็วลมนั้นไม่เล็กเครื่องกำเนิดเป็นดิสก์เส้นผ่านศูนย์กลางของสกรู 0.5 ม. เครื่องวัดความเร็วลมเป็นแบบแนวนอนพร้อมใบพัดหกใบ บทความมีคำอธิบายโดยละเอียดพร้อมรูปภาพและวิดีโอ

บทความใหม่ในหัวข้อ + รูปภาพและวิดีโอ - เครื่องวัดความเร็วลม android + ไมโครโฟน

ในที่สุดก็มาถึงเครื่องวัดความเร็วลม หลังจากสร้างกังหันลมแล้วสามตัว ฉันยังไม่ทราบแน่ชัดว่ากังหันลมของฉันให้ลมอะไรและกังหันลมของฉันให้เท่าไหร่ ขณะนี้มีเครื่องกำเนิดลมทำงานเพียงเครื่องเดียวซึ่งประสบความสำเร็จมากที่สุดแม้ว่าจะประกอบ "บนเข่า" ทั้งหมด ฉันจินตนาการถึงความแรงของลมโดยคร่าวๆ และสามารถแยกแยะลมที่ 5 m/s จาก 10 m/s ได้ แต่ฉันก็ยังต้องการทราบความเร็วลมให้แม่นยำยิ่งขึ้นเพื่อกำหนดกำลังของเครื่องกำเนิดลม

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

พัดลมติดรถยนต์สะดุดตาฉันมักจะติดตั้งในรถบรรทุก นั่นคือคนที่ฉันทรมานเขา ถอดและถอดมอเตอร์ออก ฉันหักใบมีดออกจากใบพัดและเหลือเพียงฐาน - ส่วนกลางซึ่งวางอยู่บนเพลา จากนั้นฉันก็คิดว่าจะติดใบมีดอะไร ลองใช้พื้นขวดและกระป๋องพลาสติก แต่ฉันไม่ชอบทั้งหมดนี้

จากนั้นฉันก็พบท่อพีวีซีชิ้นหนึ่งที่มีเส้นผ่านศูนย์กลาง 5 ซม. และยาว 50 ซม. ฉันทำใบมีด 4 อันจากนั้นตัดท่อตามยาวออกเป็นสองส่วนและผ่าครึ่งแต่ละส่วนออกเป็นสองส่วนได้ 4 ใบมีด ในฐานซึ่งยังคงอยู่จากสกรูดั้งเดิมฉันเจาะรู 4 รูเพื่อติดใบมีดและทำ 4 รูในใบมีดด้วย เขาบิดสิ่งของทั้งหมดเป็นสลักเกลียวและได้ใบพัดสี่ใบ - ซาโวเนียส (แนวตั้งที่ "จริงจัง" ครั้งแรก)

จากนั้นฉันก็พบสายไฟที่มีความยาวตามต้องการ ต่อสายอากาศยาว 5 เมตรและต่อสายปกติ 8 เมตร ฉันต่อสายไฟทันทีเพื่อวัดพารามิเตอร์โดยคำนึงถึงความยาวของเส้นลวด เนื่องจากข้อมูลอาจแตกต่างกันไปหากใช้การวัดบนสายมิเตอร์หรือ 13 ม.

จากนั้นฉันก็พบชิ้นส่วนของท่อโลหะยาวประมาณ 80-90 ซม. งอด้วยตัวอักษร Z แล้วพันมอเตอร์ ท่อนี้จะติดเครื่องวัดความเร็วลมกับเสา ไม่มีอะไรซับซ้อน คุณสามารถใช้วัสดุใดก็ได้ในมือ

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

ฤดูใบไม้ร่วงนี้ประสบความสำเร็จอย่างมากเนื่องจากไม่มีลมเกือบหมดซึ่งโดยวิธีการที่ทำหน้าที่เป็นการประกอบเครื่องวัดความเร็วลมอย่างรวดเร็ววันดังกล่าวไม่ควรหายไป ฉันไม่ต้องการขับออกไปบนแอสฟัลต์ เพราะด้วยเครื่องมือที่เข้าใจยากอยู่หน้ามอเตอร์ไซค์ ฉันจะดึงดูดความสนใจให้ตัวเอง ดังนั้นฉันจึงตัดสินใจขี่ผ่านทุ่งนาไปตามสวนป่า

ฉันขี่ไปมาในทิศทางต่างๆ และบันทึกการอ่านมัลติมิเตอร์บนโทรศัพท์ด้วยความเร็วที่ต่างกัน เครื่องวัดความเร็วลมเริ่มต้นที่ความเร็ว 7 กม./ชม. และค่อยๆ หมุนกลับไปกลับมาด้วยความเร็วต่างๆ เริ่มตั้งแต่ 10 กม./ชม. และสูงสุด 40 กม./ชม. ก็น่าจะมากกว่านี้ แต่ถนนลูกรังไม่เรียบและคุณ ไม่สามารถเร่งได้มาก

>

หลังจาก pokatushek ข้อมูลดังกล่าวถูกดึงออกมา มัลติมิเตอร์แสดงที่ 10km/s =0.06V, ที่ 20km/h=0.12V, ที่ 30km/h=0.20V, ที่ 40km/h=0.30V.

จากนั้นโดยใช้เครื่องคิดเลข ฉันคำนวณการอ่านค่าความเร็วลมปานกลาง

โวลต์ - ความเร็วลม m / s

ข้อมูลที่สูงกว่า 11 m/s คำนวณโดยการวาดกราฟของแรงดันที่เพิ่มขึ้นตามความเร็วลมบนแผ่นกระดาษ ซึ่งต่อเนื่องไปที่ 15 m/s อย่างราบรื่น ในวันเดียวกันหรือในตอนเย็น ฉันติดตั้งเครื่องวัดความเร็วลมบนเสาไปยังเครื่องกำเนิดลม เขาลดกังหันลมและผูกเครื่องวัดความเร็วลมด้านล่าง ฉันดึงท่อไว้บนลวดชั่วคราวแล้วพันด้วยเทปพันสายไฟ มันกลับกลายเป็นว่าแข็งแรง จากนั้นฉันก็ยกของทั้งหมดเข้าที่และตอนนี้มีเครื่องวัดความเร็วลมบนเสาข้างเครื่องกำเนิดลมซึ่งเริ่มต้นที่ 3 m / s และแสดงความเร็วลมเป็นประจำ

>

>

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

>

นั่นคือทั้งหมดสำหรับตอนนี้ นี่เป็นรุ่นแรกของเครื่องวัดความเร็วลมนี้ และฉันคิดว่าไม่ใช่รุ่นสุดท้าย ในระหว่างนี้ ฉันจะรอลมและค้นหาว่าเครื่องกำเนิดลมของฉันให้อะไร ฉันจะเสริมบทความนี้ด้วยข้อมูลเหล่านี้ บางทีก็ต้องทำใหม่...

ส่วนที่เพิ่มเข้าไป

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

สกรูวัดความเร็วลมที่ไม่ได้บรรจุจะตอบสนองอย่างรวดเร็วต่อลมกระโชกแรงและการเปลี่ยนแปลงของความเร็วลม และสกรูโหลดของเครื่องกำเนิดลมนี้ยังมีปฏิกิริยาช้า และด้วยเหตุนี้ ข้อมูลที่ไม่ซิงโครนัสในการอ่านค่า วันนี้ลมอยู่ที่ 3-7 m / s เครื่องวัดความเร็วลมจับกระแสลมได้ถึง 10 m / s แต่ใช้เวลาน้อยกว่าหนึ่งวินาทีและเครื่องกำเนิดลมก็ไม่สามารถตอบสนองได้

หลังจากการสังเกตมาระยะหนึ่ง ค่าเฉลี่ยบางค่าของความแรงกระแสจากเครื่องกำเนิดลมถูกดึงออกมาจากลมระดับหนึ่ง สกรูเริ่มต้นจาก 3.5-4 m / s การชาร์จ 0.5A ที่ 4 เมตร/วินาที, 1A ที่ 5 เมตร/วินาที, 2.5A ที่ 6 เมตร/วินาที, 4A ที่ 7 เมตร/วินาที, 5A ที่ 8 เมตร/วินาที. ข้อมูลเหล่านี้เป็นค่าเฉลี่ย เนื่องจากแอมมิเตอร์เป็นแบบอนาล็อก และฉันสามารถอ่านค่าปัจจุบันจากเครื่องกำเนิดลมผิดพลาดได้ถึง 0.5A

มันต้องแบบนี้สิ

ขั้นตอนการผลิตสำหรับตัวเซ็นเซอร์เอง:

กรณีทำเช่นนี้: ฉันเอาท่อสี่เหลี่ยมชิ้นหนึ่งแล้วตัดหน้าต่างเข้าไปเพื่อที่ฉันจะได้ติดตั้งไส้ข้างในนั้นในภายหลัง (โดยวิธีการที่ฉันตัดหน้าต่างด้วยอุณหภูมิ แต่ฉันอยากทำจริงๆ ที่ฉันลุกขึ้นไปดู) จากนั้นฉันก็เชื่อมแผ่นด้านใน (ตัวยึดแบริ่งภายใน) จากนั้นเชื่อมด้านล่าง (ตัวยึดตลับลูกปืนด้านล่าง) เมื่อฉันตัดสินใจทำยอด ฉันตัดสินใจทำหลังคาแหลม - ด้วยเหตุนี้ฉันจึงตัดสามเหลี่ยมสี่รูปออกแล้วคว้ามันอย่างระมัดระวังแล้วต้มจนหมดจึงทำกระบังหน้าแหลม จากนั้นฉันก็จับมันเข้าที่รองและด้วยสว่านที่เล็กกว่าเส้นผ่านศูนย์กลางของตลับลูกปืน 0.5 มม. ฉันเจาะรูแนวตั้งที่ฝาครอบด้านล่างและตรงกลางสำหรับตลับลูกปืนทั้งคู่ เพื่อให้ลูกปืนเหล็กที่ยืดได้นั้นถูกปรับด้วยการกวาด แบริ่งพอดีตามที่ควรจะเป็น จากนั้นเขาก็สอดตะปู 100-ku ขัดเล็กน้อยเข้าไป ขณะที่ใส่แหวนรองพลาสติกที่มี 4 ช่องไว้ตรงกลางหน้าต่าง ฉันตัดด้ายที่ด้านล่างของตะปูแล้วขันใบพัดเข้าไป

ฉันทำใบพัดดังนี้: ฉันเชื่อมตะปูสามตัวกับน็อตด้วยอิเล็กโทรดด้วยผีสางจากนั้นตัดออกแล้วตัดเกลียวที่ปลายซึ่งฉันขันครึ่งจากลูกบอล

ที่ยึดแท่งเหล็กหกเหลี่ยมสแตนเลสถูกเชื่อมเข้ากับตัวเครื่อง ตัวเคสถูกทาด้วยอีนาเมลสีขาวสองครั้งเพื่อไม่ให้เกิดสนิมอย่างแน่นอน

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

Leddiodno - เซ็นเซอร์โฟโตทรานซิสเตอร์ดึงออกจากเครื่องพิมพ์ซึ่งมีจำนวนมาก

ครั้งแรกที่ทำมาจากลูกเทนนิส

ฉันต้องปรับเปลี่ยนอุปกรณ์เล็กน้อย บนใบพัดจากลูกเทนนิสเขาเริ่มด้วยลม 5m / s ลูกถูกซื้อในร้านขายของเล่นเด็กที่มีขนาดเส้นผ่าศูนย์กลาง 55 มม. เริ่มต้นที่ 2m/s และวัดได้ถึง 22m/s ฉันพอแล้ว

หลังจากที่เซ็นเซอร์พร้อมแล้ว เราต้องผลิตอุปกรณ์อิเล็กทรอนิกส์

ตัวเลือกแรกคือเทคโนโลยี LUT แบบโฮมเมด + หน้ากากสีเขียวจากประเทศจีน ซึ่งแห้งภายใต้แสงอัลตราไวโอเลต

55 ในภาพคือรอบต่อวินาที จำเป็นต้องแปลเป็น m / s อย่างใด ฉันคิดอยู่นานว่าฉันจะได้เครื่องวัดความเร็วลมสองอันซึ่งเก่าจากสหภาพโซเวียตและจีนในราคา $ 50 แต่มีปัญหาในการตรวจสอบเพราะลมแรงและไม่พัดอย่างมั่นคง

ดังนั้นฉันจึงคิดแบบนี้: ในวันหยุดฉันกับพ่อพบถนนเรียบนอกเมือง 2 กม. ไม่มีรถ ไม่มีลม และปลูกต้นไม้สองข้างทาง (พ่อกำลังขับรถอยู่และฉันนั่งอยู่นอกหน้าต่างครึ่งทาง) แล้วขับรถไป-กลับกัน อันดับแรก ฉันตั้งค่าคิวของสหภาพโซเวียตและเครื่องวัดความเร็วลมของจีน ฉันแน่ใจว่าทั้งสองแสดงค่าเดียวกันและถูกต้อง เพราะหากคุณแบ่งความเร็วบนมาตรวัดความเร็วของรถด้วย 3.6 คุณจะได้ตัวเลขที่มาตรวัดความเร็วลมแสดงเป็นหน่วย ม. / ส. พ่อกำลังขับรถด้วยความเร็วเท่ากันและเครื่องมือก็แสดงลมเหมือนกัน นี่คือวิธีที่ฉันทดสอบอุปกรณ์ของฉัน พ่อเพิ่ม +5 กม. ต่อชั่วโมงในแต่ละครั้ง และฉันจดตัวบ่งชี้ใหม่ (รอบต่อนาที) ทำการวัดสามครั้ง เมื่อเราขับรถด้วยความเร็วเกิน 80 กม./ชม. (22 ม./วินาที) เครื่องวัดความเร็วลมของฉันไม่สามารถหมุนได้อีกต่อไปและรูปร่างก็หยุดนิ่ง เพราะมันวัดได้ไม่เกิน 22 เมตร/วินาที....

โดยวิธีการที่จีนแสดงได้ถึง 28m / s คิวของสหภาพโซเวียตสูงถึง 20m/s เมื่อฉันติดตั้งในที่ที่มีโปรแกรมดัดแปลง ฉันตรวจสอบกับภาษาจีนอีกครั้งว่าทุกอย่างมารวมกัน

ตอนนี้กำลังถูกแก้ไขสำหรับ Arduino

แผนคือจะขันสิ่งนี้เข้ากับระบบสมาร์ทโฮมเพื่อให้คุณสามารถเข้าและจัดการโหลดในบ้านจากสมาร์ทโฟนของคุณดูอุณหภูมิในบ้าน (สิ่งนี้เกี่ยวข้องกับฉันเพียงว่าบางครั้งแก๊สถูกปิด หน้าหนาวและอากาศดีจะเห็นว่าอุณหภูมิเท่าไร) จะมีเซ็นเซอร์แก๊ส และจะมีการแสดงความเร็วลมใกล้บ้านด้วย

วีดีโองาน

ผลงานรับหน้าหนาว

s-st --- ชั่วโมงสำหรับฤดูหนาว
0 เมตร/วินาที --- 511.0
1 เมตร/วินาที --- 475.0
2 เมตร/วินาที --- 386.5
3 เมตร/วินาที --- 321.2
4 เมตร/วินาที --- 219.0
5 เมตร/วินาที --- 131.5
6 เมตร/วินาที --- 63.3
7 เมตร/วินาที --- 32.5
8 เมตร/วินาที --- 15.4
9 เมตร/วินาที --- 9.1
10 เมตร/วินาที --- 5.0
11 เมตร/วินาที --- 3.5
12 เมตร/วินาที --- 2.2
13 เมตร/วินาที --- 1.3
14 เมตร/วินาที --- 0.8
15 เมตร/วินาที --- 0.5
16 เมตร/วินาที --- 0.5
17 เมตร/วินาที --- 0.2
18 เมตร/วินาที --- 0.0
19 เมตร/วินาที --- 0.1


จากผลการทดลองของสองฤดูหนาว ฉันพบว่าลมของฉันไม่แรงและกังหันลมก็ใช้ไม่ได้ ดังนั้นฉันจึงสร้างกังหันลมขนาดเล็กที่มีใบมีดขนาด 50 ซม. กำลังขับสูงสุด 150 วัตต์ ฉันเพิ่งทำให้แน่ใจว่าอย่างน้อยหลอดไฟประหยัดหนึ่งดวงจะส่องเมื่อแสงหายไป

ตอนนี้เล็กน้อยเกี่ยวกับ Arduino

ฉันพบไดอะแกรมของเมาส์บนอินเทอร์เน็ต ซึ่งแสดงให้เห็นอย่างชัดเจนถึงวิธีการทำงานของระบบของฉัน

จากแผนภาพของเมาส์ ฉันสร้างแผนผังต่อไปนี้

แรงกระตุ้นมาจากโฟโตทรานซิสเตอร์ไปยัง Arduino และรับรู้เมื่อกดปุ่ม

อัลกอริทึมของโปรแกรมมีดังนี้: เราพิจารณาจำนวนการกดปุ่มที่เกิดขึ้นในหนึ่งวินาที ดังนั้นเราจึงมีความถี่ในการหมุน เพื่อแปลงความถี่นี้เป็น m/s ย้อนกลับไปเมื่อฉันทำบน Atmel ฉันสร้างอัลกอริทึมสำหรับคำนวณความถี่เป็น m / s ดูเหมือนว่านี้:

ob_per_sec=0; // ตัวแปรที่ความถี่ของการปฏิวัติต่อวินาทีลดลง

int speed_wind=0; // ค่าจะไปที่นี่หลังจากแปลงความถี่เป็น m/s แล้ว

int speed_wind_max=0; // ค่าสูงสุดของการอ่านค่าลม m/s อยู่ที่นี่

int speed_wind_2=0; // จำนวนวินาทีตั้งแต่เริ่มโปรแกรมด้วยความเร็วลม 2 m/s

int speed_wind_3=0; // จำนวนวินาทีตั้งแต่เริ่มโปรแกรมด้วยความเร็วลม 3 m/s

int speed_wind_4=0; // จำนวนวินาทีตั้งแต่เริ่มโปรแกรมด้วยความเร็วลม 4 m/s

int speed_wind_5=0; // จำนวนวินาทีตั้งแต่เริ่มโปรแกรมด้วยความเร็วลม 5 m/s

…………………………………………………………..

int speed_wind_22=0; // จำนวนวินาทีตั้งแต่เริ่มโปรแกรมด้วยความเร็วลม 22 m/s

ถ้า (ob_per_sec >0 && ob_per_sec<4) { speed_wind=2; speed_wind_2++;}

ถ้า (ob_per_sec >4 && ob_per_sec<7) { speed_wind=3; speed_wind_3++; }

ถ้า (ob_per_sec >7 && ob_per_sec<11) { speed_wind=4; speed_wind_4++; }

ถ้า (ob_per_sec >11 && ob_per_sec<15) { speed_wind=5; speed_wind_5++; }

ถ้า (ob_per_sec >15 && ob_per_sec<18) { speed_wind=6; speed_wind_6++; }

ถ้า (ob_per_sec >18 && ob_per_sec<23) { speed_wind=7; speed_wind_7++; }

ถ้า (ob_per_sec >23 && ob_per_sec<27) { speed_wind=8; speed_wind_8++; }

ถ้า (ob_per_sec >27 && ob_per_sec<30) { speed_wind=9; speed_wind_9++; }

…………………………………………………………..

ถ้า (ob_per_sec >60 && ob_per_sec<67) { speed_wind=22; speed_wind_22++; }

if (speed_wind> speed_wind_max)( speed_wind_max = speed_wind ;) // ตรวจสอบและเขียนทับว่าค่าสูงสุดมากกว่าค่าก่อนหน้าที่เขียนหรือไม่

และแสดงค่า

หากจำเป็น คุณสามารถดูได้ว่าลมพัดด้วยความเร็วที่แน่นอนกี่นาที สำหรับสิ่งนี้ คุณต้องแสดงตัวแปร (พร้อมดัชนีความเร็วที่จำเป็น) speed_wind_№ (แต่หารด้วย 60 เพื่อให้ได้นาที)

ฉันทำสิ่งนี้ในโปรแกรมของฉัน: เมื่อกดปุ่มบางปุ่ม ตัวแปรทั้งหมดจะปรากฏขึ้นตามลำดับ ตั้งแต่ speed_wind_1 ถึง speed_wind_22

กำลังโหลด...กำลังโหลด...