การวัดความสูงของน้ำโดยใช้อนุภาคโฟตอนเซ็นเซอร์ที่จอดรถและ IFTTT.com: 4 ขั้นตอน (พร้อมรูปภาพ)

การวัดความสูงของน้ำโดยใช้อนุภาคโฟตอนเซ็นเซอร์ที่จอดรถและ IFTTT.com: 4 ขั้นตอน (พร้อมรูปภาพ)

สารบัญ:

Anonim

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

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

ข้อมูลจะถูกอัปโหลดไปยังคอนโซลของ Particle (console.particle.io) และตรวจสอบโดย IFTTT.com ทริกเกอร์เพื่อดูว่ามีความสูงของน้ำที่แน่นอน (น้อยกว่า 30 ซม. ระหว่างเซ็นเซอร์และความสูงของน้ำ) เมื่อเป็นเช่นนี้ไฟ LED สีแดงจะสว่างขึ้นชุดรูปแบบมาริโอจะเล่นและเจ้าของอุปกรณ์จะได้รับการเตือนเมื่อระดับน้ำสูงโดยอีเมล

วัสดุ:

ขั้นตอนที่ 1: ข้อกำหนด

สำหรับโครงการนี้คุณจะต้องการสื่อต่อไปนี้: (* = เป็นทางเลือก)

  • 1x กระดานโฟตอนอนุภาค
  • 1x เขียงหั่นขนม
  • 1x Powerbank
  • 1x ออด *
  • 1x LED สีแดง *
  • 1x ไฟ LED สีเหลือง *
  • 1x LED สีเขียว *
  • 1x เซ็นเซอร์อัลตราโซนิกกันน้ำ JSN-SR04T (HC-SR04 ยังใช้งานได้)
  • สาย 13x

ยังต้องการ:

  • บัญชี Particle.io
  • บัญชี IFTTT.com *

โปรดทราบว่าไฟ LED, ออดและบัญชี IFTTT.com เป็นตัวเลือก สิ่งเหล่านี้ไม่จำเป็นในการวัดระดับน้ำและถูกเพิ่มสำหรับ 'the lulz' เท่านั้น หากคุณเลือกที่จะติดตั้ง LED และเสียงกริ่งค้นหาตำแหน่งภายนอกกล่องเพื่อการรับชมและระยะทางที่เหมาะสมที่สุด

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

ขั้นตอนที่ 2: Wiring Scheme

ก่อนอื่นเราเริ่มต้นด้วยการเดินสายไฟ LED ของออดและเซ็นเซอร์ที่จอดรถ โปรดทราบว่าในตัวอย่างนี้เซ็นเซอร์ที่จอดรถจะแสดงเป็น HC-5RD4 เนื่องจากนี่เป็นเซ็นเซอร์เดียวกัน

เดินสายไฟด้าน + ของ LED สีเขียวเป็น D0, LED สีเหลืองถึง D1, LED สีแดงเป็น D2 ทุกฝ่ายควรไปที่ GND ต่อสายออดเข้ากับ A4 ต่อสาย + ด้านข้างของเซ็นเซอร์ไปที่ VIN (5V) เนื่องจาก 3.3V นั้นไม่เพียงพอ GND ถึง GND ทริกเกอร์ควรเชื่อมต่อกับ D6 Echo ต่อสายเข้ากับ D5

นอกจากนี้เรายังใช้ powerbank เพื่อเพิ่มพลังงานโฟตอนซึ่งสามารถวางไว้ในกล่องได้เช่นกัน

หลังจากเดินสายเราสามารถมุ่งหน้าไปยังขั้นตอนต่อไป: การเข้ารหัสโฟตอน

ขั้นตอนที่ 3: รหัส

int echopin = D5;

int trigpin = D6; int groen = D0; int geel = D1; int rood = D2;

const int speakerPin = A4;

const int songLength = 18;

int tempo = 400;

การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); pinMode (echopin, INPUT); pinMode (Trigpin, OUTPUT); pinMode (groen, OUTPUT); pinMode (geel, OUTPUT); pinMode (rood, OUTPUT); Particle.function ("analogread", PublishValue); pinMode (speakerPin, OUTPUT);

}

void loop () {

ระยะเวลา int, ระยะทาง; digitalWrite (trigpin, LOW); delayMicroseconds (2); digitalWrite (ตรีโกณมิติสูง); delayMicroseconds (10); digitalWrite (trigpin, LOW); ระยะเวลา = pulseIn (echopin, HIGH); distance = (ระยะเวลา / 2) / 29.1; Serial.println (ระยะทาง);

ล่าช้า (1000) Spark.function ("เผยแพร่", PublishValue);

Particle.publish ("ระยะทาง", (สตริง) ระยะทาง);

if (distance <30) {digitalWrite (rood, HIGH); digitalWrite (Geel ต่ำ); digitalWrite (Groen ต่ำ);

float v = 1.8; int delay1 = 50 * v; int delay2 = 75 * v; int delay10 = 100 * v; int delay8 = 110 * v; int ล่าช้า 3 = 150 * v; int ล่าช้า 9 = 165 * v; int delay4 = 175 * v; int ล่าช้า 5 = 180 * v; int ล่าช้า 14 = 200 * v; int ล่าช้า 6 = 210 * v; int ล่าช้า 12 = 225 * v; int ล่าช้า 11 = 250 * v; int ล่าช้า 7 = 275 * v; int ล่าช้า 13 = 287 * v; int ล่าช้า 15 = 300 * v; int ล่าช้า 16 = 162 * v; โทน (speakerPin, 660100); ล่าช้า (delay2); โทน (speakerPin, 660100); ล่าช้า (delay3); โทน (speakerPin, 660100); ล่าช้า (delay3); โทน (speakerPin, 510100); ล่าช้า (delay1); โทน (speakerPin, 660100); ล่าช้า (delay3); โทน (speakerPin, 770100); ล่าช้า (delay7); โทน (speakerPin, 380100); ล่าช้า (delay13); โทน (speakerPin, 510100); ล่าช้า (delay12); โทน (speakerPin, 380100); ล่าช้า (delay14); โทน (speakerPin, 320100); ล่าช้า (delay11); โทน (speakerPin, 440100); ล่าช้า (delay3); โทน (speakerPin, 480,80); ล่าช้า (delay9); โทน (speakerPin, 450100); ล่าช้า (delay2); โทน (speakerPin, 430100); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay10); โทน (speakerPin, 660,80); ล่าช้า (delay10); โทน (speakerPin, 760,50); ล่าช้า (delay2); โทน (speakerPin, 860100); ล่าช้า (delay3); โทน (speakerPin, 700,80); ล่าช้า (delay2); โทน (speakerPin, 760,50); ล่าช้า (delay4); โทน (speakerPin, 660,80); ล่าช้า (delay3); โทน (speakerPin, 520,80); ล่าช้า (delay2); โทน (speakerPin, 580,80); ล่าช้า (delay2); โทน (speakerPin, 480,80); ล่าช้า (delay4); โทน (speakerPin, 510100); ล่าช้า (delay7); โทน (speakerPin, 380100); ล่าช้า (delay14); โทน (speakerPin, 320100); ล่าช้า (delay11); โทน (speakerPin, 440100); ล่าช้า (delay3); โทน (speakerPin, 480,80); ล่าช้า (delay9); โทน (speakerPin, 450100); ล่าช้า (delay2); โทน (speakerPin, 430100); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay10); โทน (speakerPin, 660,80); ล่าช้า (delay10); โทน (speakerPin, 760,50); ล่าช้า (delay2); โทน (speakerPin, 860100); ล่าช้า (delay3); โทน (speakerPin, 700,80); ล่าช้า (delay2); โทน (speakerPin, 760,50); ล่าช้า (delay4); โทน (speakerPin, 660,80); ล่าช้า (delay3); โทน (speakerPin, 520,80); ล่าช้า (delay2); โทน (speakerPin, 580,80); ล่าช้า (delay2); โทน (speakerPin, 480,80); ล่าช้า (delay11); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 760100); ล่าช้า (delay1); โทน (speakerPin, 720100); ล่าช้า (delay2); โทน (speakerPin, 680100); ล่าช้า (delay2); โทน (speakerPin, 620150); ล่าช้า (delay3); โทน (speakerPin, 650150); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay2); โทน (speakerPin, 430100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 430100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay1); โทน (speakerPin, 570100); ล่าช้า (delay8); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 760100); ล่าช้า (delay1); โทน (speakerPin, 720100); ล่าช้า (delay2); โทน (speakerPin, 680100); ล่าช้า (delay2); โทน (speakerPin, 620150); ล่าช้า (delay3); โทน (speakerPin, 650200); ล่าช้า (delay3); โทน (speakerPin, 1020,80); ล่าช้า (delay3); โทน (speakerPin, 1020,80); ล่าช้า (delay2); โทน (speakerPin, 1020,80); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay3); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 760100); ล่าช้า (delay1); โทน (speakerPin, 720100); ล่าช้า (delay2); โทน (speakerPin, 680100); ล่าช้า (delay2); โทน (speakerPin, 620150); ล่าช้า (delay3); โทน (speakerPin, 650150); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay2); โทน (speakerPin, 430100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 430100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay1); โทน (speakerPin, 570100); ล่าช้า (delay8); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 760100); ล่าช้า (delay1); โทน (speakerPin, 720100); ล่าช้า (delay2); โทน (speakerPin, 680100); ล่าช้า (delay2); โทน (speakerPin, 620150); ล่าช้า (delay3); โทน (speakerPin, 650200); ล่าช้า (delay3); โทน (speakerPin, 1020,80); ล่าช้า (delay3); โทน (speakerPin, 1020,80); ล่าช้า (delay2); โทน (speakerPin, 1020,80); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay3); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 760100); ล่าช้า (delay1); โทน (speakerPin, 720100); ล่าช้า (delay2); โทน (speakerPin, 680100); ล่าช้า (delay2); โทน (speakerPin, 620150); ล่าช้า (delay3); โทน (speakerPin, 650150); ล่าช้า (delay3); โทน (speakerPin, 380100); ล่าช้า (delay2); โทน (speakerPin, 430100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 430100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay1); โทน (speakerPin, 570100); ล่าช้า (delay6); โทน (speakerPin, 585100); ล่าช้า (delay7); โทน (speakerPin, 550100); ล่าช้า (delay6); โทน (speakerPin, 500100); ล่าช้า (delay5); โทน (speakerPin, 380100); ล่าช้า (delay3); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 500100); ล่าช้า (delay2); โทน (speakerPin, 500100); ล่าช้า (delay3); โทน (speakerPin, 500,60); ล่าช้า (delay2); โทน (speakerPin, 500,80); ล่าช้า (delay3); โทน (speakerPin, 500,60); ล่าช้า (delay4); โทน (speakerPin, 500,80); ล่าช้า (delay2); โทน (speakerPin, 580,80);ล่าช้า (delay4); โทน (speakerPin, 660,80); ล่าช้า (delay2); โทน (speakerPin, 500,80); ล่าช้า (delay3); โทน (speakerPin, 430,80); ล่าช้า (delay2); โทน (speakerPin, 380,80); ล่าช้า (delay15); โทน (speakerPin, 500,60); ล่าช้า (delay2); โทน (speakerPin, 500,80); ล่าช้า (delay3); โทน (speakerPin, 500,60); ล่าช้า (delay4); โทน (speakerPin, 500,80); ล่าช้า (delay2); โทน (speakerPin, 580,80); ล่าช้า (delay2); โทน (speakerPin, 660,80); ล่าช้า (delay12); โทน (speakerPin, 870,80); ล่าช้า (delay16); โทน (speakerPin, 760,80); ล่าช้า (delay15); โทน (speakerPin, 500,60); ล่าช้า (delay2); โทน (speakerPin, 500,80); ล่าช้า (delay3); โทน (speakerPin, 500,60); ล่าช้า (delay4); โทน (speakerPin, 500,80); ล่าช้า (delay2); โทน (speakerPin, 580,80); ล่าช้า (delay4); โทน (speakerPin, 660,80); ล่าช้า (delay2); โทน (speakerPin, 500,80); ล่าช้า (delay3); โทน (speakerPin, 430,80); ล่าช้า (delay2); โทน (speakerPin, 380,80); ล่าช้า (delay15); โทน (speakerPin, 660100); ล่าช้า (delay2); โทน (speakerPin, 660100); ล่าช้า (delay3); โทน (speakerPin, 660100); ล่าช้า (delay3); โทน (speakerPin, 510100); ล่าช้า (delay1); โทน (speakerPin, 660100); ล่าช้า (delay3); โทน (speakerPin, 770100); ล่าช้า (delay12); โทน (speakerPin, 380100); } if (distance> = 30 และ distance <50) {digitalWrite (rood, LOW); digitalWrite (Geel สูง); digitalWrite (Groen ต่ำ); analogWrite (speakerPin, 0); } if (distance> = 50) {digitalWrite (rood, LOW); digitalWrite (Geel ต่ำ); digitalWrite (groen, HIGH); analogWrite (speakerPin, 0); }

}

int PublishValue (พินสตริง) {ระยะเวลา int, ระยะทาง; digitalWrite (trigpin, LOW); delayMicroseconds (2); digitalWrite (ตรีโกณมิติสูง); delayMicroseconds (10); digitalWrite (trigpin, LOW); ระยะเวลา = pulseIn (echopin, HIGH); afstand = (ระยะเวลา / 2) / 29.1;

กลับไปไกล }

ขั้นตอนที่ 4: การทำงาน

ตอนนี้เซ็นเซอร์จะถูกติดตั้งเหนือระดับน้ำที่ความสูงคงที่ เนื่องจากเซ็นเซอร์จอดรถมีช่วงที่ใช้งานได้จึงต้องติดตั้งอย่างน้อย 30 ซม. เหนือระดับน้ำที่สูงที่สุดเนื่องจากใช้งานได้ระหว่าง ~ 30 - ~ 250 ซม. เซ็นเซอร์ HC-SR04 ทำงานระหว่าง ~ 2 ถึง ~ 100 เซนติเมตรและสามารถติดตั้งได้ต่ำกว่าเซ็นเซอร์ที่จอดรถ หลังจากโค้ดถูกกระพริบไปยังโฟตอนและโฟตอนแล้ว LED และเซ็นเซอร์ทั้งหมดจะต่อสายคุณก็พร้อมแล้วที่จะเริ่มต้นการวัด

เซ็นเซอร์มี 4 พิน 5V, ทริกเกอร์, echo และ GND 5V ควรเชื่อมต่อกับขา 'VIN' โดยร่าง 5V จาก Photon GND ควรลงกราวด์บนโฟตอน Trigpinpin ใช้เพื่อบอกเซ็นเซอร์เมื่อเริ่มทำการวัดโดยส่งพัลส์เพื่อให้รู้ว่าสามารถเริ่มส่งพัลส์ได้ จากนั้นเสียงสะท้อนกลับของเข็มจะใช้เวลานานเท่าใดที่ชีพจรจะสะท้อนกลับเข้าไปในเซ็นเซอร์ ระยะทางนั้นสามารถคำนวณได้โดยการหารครั้งนี้ด้วย 2 เนื่องจากมันไปมาแล้วหารด้วยจำนวน (ไมโคร) วินาทีที่ใช้สำหรับเสียงที่จะเดินทาง 1m ในอากาศคือ 1/343 = 0.029 วินาที

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

เมื่อความสูงของน้ำต่ำกว่า 60 ซม. แต่ยังสูงกว่า 30 ซม. ไฟ LED สีเหลืองจะสว่างขึ้นและอีกสองจะปิด

ในที่สุดเมื่อระดับน้ำต่ำกว่าเซ็นเซอร์ต่ำกว่า 30 ซม. LED สีแดงจะเริ่มไหม้แสดงว่าระดับน้ำถึงระดับวิกฤต นี่คือเมื่อเล่นเสียงในกรณีนี้ชุดรูปแบบของ Mario นอกจากนี้ยังมีการทริกเกอร์ IFTTT (IFTTT.com) และอีเมลจะถูกส่งไปยังการตั้งค่าอีเมลในทริกเกอร์เช่นหัวหน้างานของแม่น้ำลำธารประตูน้ำหรือคลอง