สารบัญ:

โครงการเซนเซอร์ Arduino DHT22 และความชื้นในดินพร้อมเมนู: 4 ขั้นตอน
โครงการเซนเซอร์ Arduino DHT22 และความชื้นในดินพร้อมเมนู: 4 ขั้นตอน

วีดีโอ: โครงการเซนเซอร์ Arduino DHT22 และความชื้นในดินพร้อมเมนู: 4 ขั้นตอน

วีดีโอ: โครงการเซนเซอร์ Arduino DHT22 และความชื้นในดินพร้อมเมนู: 4 ขั้นตอน
วีดีโอ: เซนเซอร์วัดความชื้นในดิน(2)กับ Arduino ESP8266 | Resistive Soil Moisture sensor with ESP8266 board 2024, พฤศจิกายน
Anonim
โครงการเซ็นเซอร์ Arduino DHT22 และความชื้นในดินพร้อมเมนู
โครงการเซ็นเซอร์ Arduino DHT22 และความชื้นในดินพร้อมเมนู

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

ขั้นตอนที่ 1: การรับชิ้นส่วนทั้งหมด

รับอะไหล่ทั้งหมด
รับอะไหล่ทั้งหมด
รับอะไหล่ทั้งหมด
รับอะไหล่ทั้งหมด
รับอะไหล่ทั้งหมด
รับอะไหล่ทั้งหมด

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

  1. Arduino uno rev3 (คุณสามารถใช้ Arduino อื่น ๆ ได้)
  2. เขียงหั่นขนม
  3. LCD 1602 จอแสดงผลสีเขียวพร้อม I2C (คุณสามารถใช้จอแสดงผลที่ไม่มี I2C ได้ แต่คุณจะต้องใช้พินเพิ่มเติมเพื่อเชื่อมต่อ)
  4. ปุ่มกด 16 ปุ่ม (เปลี่ยนได้)
  5. FC-28-d โมดูลตรวจจับความชื้นในดิน + เซ็นเซอร์ความชื้นในดิน
  6. เซ็นเซอร์อุณหภูมิและความชื้น DHT22 (คุณสามารถใช้ DHT11 ซึ่งถูกกว่าได้)
  7. ไดโอด LED สีแดง
  8. ไดโอด LED สีน้ำเงิน
  9. ตัวต้านทาน 2 ตัว 220 โอห์ม (ใช้สำหรับไดโอด)
  10. ตัวต้านทาน 4k7 ใช้สำหรับ DHT22 บนแผนผัง
  11. ขั้วต่อแบตเตอรี่ Arduino
  12. สายจัมเปอร์ไม่กี่สายเพื่อเชื่อมต่อชิ้นส่วนทั้งหมด

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

ขั้นตอนที่ 2: เชื่อมต่อทุกส่วนเข้าด้วยกัน

เชื่อมต่อทุกส่วนเข้าด้วยกัน
เชื่อมต่อทุกส่วนเข้าด้วยกัน

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

อย่างที่คุณเห็นเรากำลังใช้ 5V และ GND จาก Arduino เพื่อจ่ายพลังงานให้กับเขียงหั่นขนม

จอแอลซีดี:

  • VCC ถึง 5v (+ ส่วนบนเขียงหั่นขนม)
  • GND ถึง gnd (- ส่วนบนเขียงหั่นขนม)
  • SDA เป็นขาอะนาล็อก A4
  • SCL เป็นขาอนาล็อก A5

ปุ่มกด 16 ปุ่ม:

เราใช้พิน 9, 8, 7, 6, 5, 4, 3, 2 เพื่อเชื่อมต่อปุ่มกด (นี่คือเหตุผลที่ฉันจะใช้ตัวเข้ารหัสแบบหมุนเพราะมันใช้เพียง 3 พินบนบอร์ด)

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

  • VCC ถึง 5v (+ ส่วนบนเขียงหั่นขนม)
  • GND ถึง gnd (-ส่วนหนึ่งบนเขียงหั่นขนม)
  • D0 เป็นพินดิจิตอล 0
  • A0 ถึงพินอะนาล็อก A0

DHT22:

  • VCC ถึง 5v (+ ส่วนบนเขียงหั่นขนม)
  • GND ถึง gnd (-ส่วนหนึ่งบนเขียงหั่นขนม)
  • ขาออกเชื่อมต่อกับพิน 12

การเชื่อมต่อไดโอด:

  • ส่วนหนึ่งของไดโอดเข้าสู่ - ส่วนหนึ่งของเขียงหั่นขนม
  • ส่วนที่สองผ่านตัวต้านทาน 220 โอห์ม และหลังจากนั้นเชื่อมต่อกับพิน 10 (ไดโอดสีน้ำเงิน) หรือ 11 (ไดโอดสีแดง)

ขั้นตอนที่ 3: การเขียนโค้ด

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

  1. ส่วนแรกของรหัสจะรวมไลบรารีที่ใช้ทั้งหมดสำหรับโครงการนี้ โปรดทราบว่าสำหรับทุกส่วนที่ฉันบอกว่าฉันกำลังใช้อยู่ คุณต้องมีไลบรารีถัดไป: Wire, LiquidCrystal_I2C, Keypad และ DHT ไลบรารีทั้งหมดสามารถพบได้บน Arduino IDE หากคุณไปที่ส่วนสเก็ตช์แล้วรวมไลบรารี่ไว้ พึงระลึกไว้เสมอว่าหากคุณใช้บางอย่าง เช่น ตัวเข้ารหัสแบบโรตารี่ คุณอาจจำเป็นต้องได้รับไลบรารีใหม่แทนแป้นกด ซึ่งน่าจะเป็นแบบโรตารี่.h และปุ่ม หากคุณใช้เซ็นเซอร์ DHT11 ไลบรารียังคงเป็น DHT
  2. ในส่วนที่สองของรหัสจะมีการกำหนดส่วนที่ใช้ทั้งหมด อย่างแรกคือ LCD หลังจากนั้นจะมีเซ็นเซอร์ DHT ซึ่งเป็นตัวแทนของวัตถุที่มีเซ็นเซอร์ประเภท dht และพินที่เชื่อมต่อ เซ็นเซอร์ความชื้นในดินและไดโอดเป็นตัวที่สาม
  3. ฉันจะอธิบายปุ่มกดอีกเล็กน้อย อย่างที่ฉันบอกว่าเครื่องเข้ารหัสแบบโรตารี่เสีย ฉันเลยตัดสินใจใช้ สำหรับโครงการนี้ แค่มีปุ่มสี่ปุ่มก็เพียงพอแล้ว แม้แต่ปุ่มสามปุ่มก็ยังดี ดังนั้นฉันจึงใช้ปุ่มสี่ปุ่มบนแป้นกดเพียงตัวเลือกเดียว คุณสามารถใช้ปุ่มบางปุ่มได้หากต้องการอย่างอื่นหากคุณมีไอเดีย คุณต้องกำหนดแถวและคอลัมน์ในส่วนนี้ หลังจากนั้น hexaKeys จะแสดงตัวเลือกที่คุณใช้สำหรับโครงการนี้ ในโครงการของฉันมี B (ย้อนกลับ), U(ขึ้น), D(ลง) และ A(ยอมรับ) คุณสามารถทำให้ทุกปุ่มทำอย่างอื่นได้ ปุ่มเดียวสามารถเปิดไฟแบ็คไลท์ หนึ่งปุ่มสามารถปิดได้ ดังนั้นอย่าลังเลที่จะเล่นกับมันมากขึ้น
  4. ในส่วนนี้เป็นตัวแปรส่วนกลางที่ใช้ในโค้ด ตัวแปรบูลใช้สำหรับเปลี่ยนหน้าจอ ตัวแปรต้อนรับเป็นจริงเพียงไม่กี่วินาทีเมื่อเปิด Arduino หลังจากนั้นจะเป็นเท็จในช่วงเวลาที่เหลือ จุดสนใจหลักอยู่ที่ตัวแปรหน้าจอหลัก ตัวแปรนี้ใช้เพื่อนำทางคุณจากเมนูไปยังตัวเลือกอื่นในโค้ด หากตัวแปรนี้เป็นเท็จ แสดงว่าผู้ใช้ตัดสินใจใช้หนึ่งในสี่ตัวเลือกของโครงการนี้
  5. นี่คือที่ที่เขียนวิธีการทั้งหมดที่ใช้ในรหัสนี้ ฉันจะพยายามอธิบายวิธีการเขียนทั้งหมดในส่วนนี้
  • เป็นโมฆะ startScreen(); // วิธีการเริ่มต้นโครงการและ arduino
  • int choiceNumber (ตัวเลือก int); // สิ่งนี้จะเปลี่ยนตัวเลือกของโปรเจ็กต์ของคุณ ตัวเลขเริ่มจาก 1 ถึง 4
  • เป็นโมฆะ mainScreenP (ตัวเลือก int); // จะมีการเขียนสี่ตัวเลือกของอุปกรณ์ที่ทำขึ้น
  • บูล mainScreenCS (บูล mainScreen); //สิ่งนี้เปลี่ยน mainScreen เป็น false
  • bool mainScreenBack (bool หน้าจอหลัก); //สิ่งนี้เปลี่ยน mainScreen เป็น true
  • โมฆะ tempCelsius (); // อ่านอุณหภูมิในตัวเลือกเซ็นเซอร์ CD DHT
  • โมฆะ tempFarenheit(); // อ่านอุณหภูมิในตัวเลือกเซ็นเซอร์ F DHT
  • โมฆะ printHumidity(); // อ่านตัวเลือกเซ็นเซอร์ DHT ความชื้น
  • เป็นโมฆะ readSensorData(); // อ่านข้อมูลบนเซ็นเซอร์ที่เชื่อมต่อ
  • สตริง getTemperatureC();
  • สตริง getTemperatureF();
  • สตริง getHumidity();
  • โมฆะดินความชื้น(); // นี่สำหรับเซ็นเซอร์และไดโอดอื่น
  • เป็นโมฆะ printSensorSoilMoisture(); // พิมพ์ส่วนความชื้นในดินบนจอ LCD
  • เป็นโมฆะ diodeLights (ค่า int); // เปิดปิดไดโอด
  • เป็นโมฆะ printValue (ค่า int);

6. การตั้งค่าสำหรับ Arduino เป็นส่วนหนึ่งที่คุณตั้งค่าเซ็นเซอร์ LCD และ DHT และไดโอด

7.ส่วนหลักคือส่วนที่ใช้วิธีการเขียนข้างต้นทั้งหมด

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

ขั้นตอนที่ 4: การใช้ Arduino. ของคุณ

การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ
การใช้ Arduino. ของคุณ

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

  1. อ่านอุณหภูมิในเซลเซียส
  2. อ่านอุณหภูมิในฟาเรนไฮต์
  3. อ่านความชื้น
  4. การเปิดไดโอดและการอ่านค่าของเซ็นเซอร์ความชื้นในดิน

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

หากมีคำถามอื่นใดที่คุณสามารถถามฉันได้ ขอบคุณพวกคุณที่ดูโครงการของฉัน ด้วยความเคารพ. เซบาสเตียน

แนะนำ: