การวัดระดับน้ำของบ่อน้ำอัตโนมัติด้วยการส่ง LORA โดยใช้ ESP32

หลอดได้รับการแก้ไขในน้ำพุโดยมีระดับต่ำกว่าระดับน้ำต่ำสุดที่คาดไว้ ปั๊มพัดอากาศเข้าไปในท่อจนกว่าจะมีฟองออกจากปลายล่าง จากนั้นความดันอากาศในท่อจะเป็นสัดส่วนกับความสูงของคอลัมน์น้ำที่ถูกบังคับ ปั๊มจะต้องแข็งแรงพอสำหรับระดับน้ำที่คาดหวังสูงสุด
แนวคิดสำหรับหลักการนี้นำมาจากหัวข้อการสนทนานี้
อาจใช้วาล์วทางเดียวในหลอดเพื่อหลีกเลี่ยงการบุกรุกของสิ่งสกปรกและเพื่อลดระยะเวลาการสูบน้ำที่จำเป็นเพื่อยืดอายุการใช้งานแบตเตอรี่ จากนั้นตำแหน่งของมันจะต้องตรวจสอบให้แน่ใจว่าไม่มีแรงดันถาวรที่เซ็นเซอร์ซึ่งอาจทำให้เกิดความเสียหายเมื่อเวลาผ่านไปและยังป้องกันการวัดความดันเป็นศูนย์ การสูญเสียความดันที่เกิดจากวาล์วนี้จะต้องได้รับการชดเชยในการคำนวณเช่นกัน
เซ็นเซอร์ปั๊มวาล์วและความดันสามารถนำมาจากจอภาพความดันโลหิตราคาถูก ADS ADS1115 16 บิต ADC ใช้ในการวัดแรงดันเซ็นเซอร์ขนาดเล็กของมิลลิโวลต์บางตัว ESP32 µC ควบคุมขั้นตอนการวัดและส่งผล
โมดูล LORA: HOPERF RFM95W, SX1276 ที่เข้ากันได้และเสาอากาศ Helix สำหรับ 868 MHz
พลิกด้านหน้า / ด้านหลังในแนวนอน:


ห้องสมุด: TTN-ESP32 ใช้งานง่ายและควรมีปัญหาเรื่องเวลาน้อยลงใน ESP32 กว่า Arduino LMIC เนื่องจากมันขึ้นอยู่กับงาน ESP-IDF/FREERTOS แม้ว่าจะต้องการ ESP-IDF แต่ก็ยังสามารถใช้ร่วมกับ Arduino Libs ได้เพราะสิ่งเหล่านี้ยังขึ้นอยู่กับ ESP-IDF lib_compat_mode = off ใน platform.ini ช่วยให้การใช้งานด้วยเฟรมเวิร์ก arduino
การประหยัดและฟื้นฟูสถานะ Lora ผ่านการนอนหลับลึกในหน่วยความจำ RTC ทำได้โดย TTNSession
ไบต์ 0 และ 1 มีระดับน้ำเป็นมิลลิเมตรเป็นจำนวนเต็ม 16 บิตไบต์สูงก่อน ไบต์ 2 และ 3 มีแรงดันแบตเตอรี่ใน Millivolt เป็นจำนวนเต็ม 16 บิตไบต์สูงก่อน จำนวนเต็ม 16 บิตเหล่านี้ถูกเข้ารหัสเป็นส่วนประกอบของทั้งสองถ้าเป็นลบซึ่งอาจปรากฏขึ้นสำหรับระดับน้ำ
ตัวถอดรหัสรูปแบบการบรรทุก TTN ดู ttn_decoder.js มันถอดรหัส 03 E0 0F 10 ถึง
{
"batteryVolt": 3.856,
"levelMeter": 0.992
}

การใช้พลังงานเป็นสิ่งสำคัญสำหรับการใช้งานแบตเตอรี่ เป้าหมายคือต้องเข้าถึงแบตเตอรี่เพียงปีละครั้งในขณะที่ระดับของบ่อน้ำจะวัดทุก ๆ 5 นาที
หลังจากการเพิ่มประสิทธิภาพจำนวนมากการใช้พลังงานจะถูกครอบงำโดยปั๊มและวาล์วแม้ว่าจะใช้งานได้เพียงไม่กี่วินาทีในแต่ละรอบ เฟสที่ใช้งานอยู่นี้ได้ถูกลดลงเป็นขั้นต่ำที่แน่นอนซึ่งยังสามารถส่งมอบการวัดที่เชื่อถือได้ มันอาจจะได้รับการปรับปรุงเพิ่มเติมด้วยวาล์วทางเดียวในหลอดที่ทำให้อากาศอยู่ใน แต่ยังคงปล่อยแรงดันจากเซ็นเซอร์
เพื่อเพิ่มประสิทธิภาพกระแสการนอนหลับลึกจะมีการใช้บอร์ด EZSBC ESP32-01 ซึ่งนำไปสู่ 12 µA ที่ยอดเยี่ยมจริงๆ บอร์ดนี้มีพฤติกรรมที่ดีที่สุดของการทดสอบทั้งหมดดูการทดสอบการจ่ายเงิน ESP32 เพื่อให้ได้กระแสไฟฟ้าต่ำนี้วงจรรอบนอกสำหรับการวัดและ LORA จะถูกจัดหาโดยหน่วยงานควบคุมแรงดันไฟฟ้า 3.3 V แยกต่างหากซึ่งสามารถเปิดและปิดได้โดยซอฟต์แวร์ การใช้หมุด GPIO ปกติสำหรับ SPI และผลลัพธ์อื่น ๆ ล้มเหลวเนื่องจากไม่สามารถแยกหรือดึงต่ำได้ในระหว่างการนอนหลับลึก สิ่งนี้นำไปสู่กระแสรั่วไหลอย่างมาก อย่างไรก็ตามสิ่งนี้เป็นไปได้สำหรับหมุด GPIO ที่ขับเคลื่อนด้วย RTC ซอฟต์แวร์เตรียมความพร้อมสำหรับการนอนหลับลึกโดยการแยกหรือดึงต่ำ (ถือ) PIN ใดที่พฤติกรรมไม่ชัดเจน
นี่คือรอบการวัดหนึ่งรอบด้วยการส่ง LORA (โดยไม่ต้องเข้าร่วม):


การประมาณอายุการใช้งานแบตเตอรี่ดูแบตเตอรี่
ต้นแบบที่ดีที่สุด:

ในการตรวจสอบแรงดันแบตเตอรี่ที่เหลืออยู่จะถูกป้อนเข้าสู่ช่องว่างฟรีอื่นของ ADC โดยใช้ตัวแบ่งแรงดันไฟฟ้า มันถูกขับเคลื่อนจากแรงดันไฟฟ้าส่วนปลายที่สลับได้ก่อนที่ตัวควบคุมเพื่อหลีกเลี่ยงการระบายแบตเตอรี่ที่ไม่จำเป็น สวิตช์ทรานซิสเตอร์ทำให้เกิดการสูญเสียแรงดันไฟฟ้า 30 ถึง 40 mV ซึ่งอาจเป็น (แต่ไม่ได้) ชดเชยในซอฟต์แวร์เช่นเดียวกับการเบี่ยงเบนของตัวต้านทาน
ไดอะแกรมวงจร Kicad:
