สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สรุปโครงการ
นี่คือเซ็นเซอร์สภาพอากาศที่ใช้แบตเตอรี่ซึ่งอิงจากเซ็นเซอร์อุณหภูมิ/ความดัน/ความชื้น BME280 และ ATMega328P MCU ใช้แบตเตอรี่ลิเธียมไทโอนิล AA 3.6 V จำนวน 2 ก้อน มีการบริโภคการนอนหลับต่ำเป็นพิเศษถึง 6 µA โดยจะส่งข้อมูลครึ่งชั่วโมงผ่าน GPRS (โดยใช้โมดูล SIM800L GSM) ไปยัง ThingSpeak ซึ่งควบคุมโดยนาฬิกาเรียลไทม์ DS3231 บริการโดยประมาณสำหรับแบตเตอรี่หนึ่งชุดคือ >6 เดือน
ฉันใช้ซิมการ์ดแบบจ่ายตามการใช้งานของ ASDA ซึ่งมีเงื่อนไขที่ดีมากสำหรับวัตถุประสงค์ของโครงการนี้ เนื่องจากมีเครดิตหมดอายุที่นานมาก (180 วัน) และเรียกเก็บเพียงปริมาณข้อมูล 5p/MB เท่านั้น
แรงจูงใจ: การพัฒนาเซ็นเซอร์สิ่งแวดล้อมที่ใช้พลังงานจากแบตเตอรี่ที่ไม่ต้องบำรุงรักษา ไม่ต้องบำรุงรักษา ซึ่งสามารถนำไปวางไว้ในป่าเพื่อรับสภาพอากาศหรือข้อมูลอื่น ๆ และส่งผ่านเครือข่าย GSM/GPRS ไปยังเซิร์ฟเวอร์ IoT
ขนาดตัวเครื่อง: 109 x 55 x 39 มม. (รวมขอบตัวเรือน) น้ำหนัก 133 กรัม ระดับ IP 54 (โดยประมาณ)
ต้นทุนวัสดุ: ประมาณ. หน่วยละ 20 ปอนด์
เวลาประกอบ: 2 ชั่วโมงต่อหน่วย (บัดกรีด้วยมือ)
แหล่งพลังงาน: แบตเตอรี่ลิเธียม thionyl AA สองก้อน, ไม่สามารถชาร์จใหม่ได้ (3.6V, 2.6Ah)
โปรโตคอลเครือข่าย: GSM GPRS (2G)
ศักยภาพการใช้งาน: สถานที่ห่างไกลใดๆ ที่มีสัญญาณ GSM ครอบคลุม ป่าไม้ ประภาคาร ทุ่น เรือยอทช์ส่วนตัว คาราวาน สถานที่ตั้งแคมป์ กระท่อมบนภูเขา อาคารที่ไม่มีคนอาศัยอยู่
การทดสอบความน่าเชื่อถือ: หนึ่งเครื่องได้รับการทดสอบระยะยาวโดยไม่มีใครดูแลตั้งแต่ 30.8.20 นอกเหนือจากความผิดพลาดของซอฟต์แวร์หนึ่งรายการแล้ว ยังส่งข้อมูลได้อย่างน่าเชื่อถือทุก ๆ 30 นาที
ขั้นตอนที่ 1: อะไหล่ที่จำเป็น
- PCB แบบกำหนดเอง ไฟล์ซิป Gerber ที่นี่ (ดูเหมือนว่า instructables.com จะบล็อกการอัปโหลดไฟล์ ZIP) ฉันขอแนะนำ jlcpcb.com สำหรับการผลิต PCB สำหรับผู้ที่อาศัยอยู่ในสหราชอาณาจักร ฉันยินดีที่จะส่ง PCB สำรองให้กับคุณโดยมีค่าใช้จ่ายเพียงเล็กน้อยในด้านวัสดุและค่าไปรษณีย์ - ส่งข้อความถึงฉัน
- ATMega328P-AU
- แก้ไข DS3231 Realtime Clock (ดูย่อหน้าด้านล่าง)
- BME280 กระดานฝ่าวงล้อมเช่นนี้
- โมดูล SIM800L GSM GPRS
- ชิ้นส่วน SMD ต่างๆ ตามรายการโดยละเอียด
- Hammond 1591, Black ABS Enclosure, IP54, Flanged, 85 x 56 x 35mm, จาก RS Components UK
การดัดแปลง DS3231
เครือข่ายตัวต้านทานสี่เท่าในวงกลมสีแดงจะต้องขายไม่ออก วิธีการทำลายล้างอื่นๆ ก็ใช้ได้เช่นกัน แต่หลีกเลี่ยงการเชื่อมแผ่นอิเล็กโทรดที่แถวด้านในของแผ่นอิเล็กโทรด 4 แผ่น (ไปทางด้านข้างของ MCU) อีก 4 แผ่นเชื่อมต่อกันด้วยการติดตาม PCB การปรับเปลี่ยนนี้มีความจำเป็นเพื่อให้พิน SQW ทำงานเป็นสัญญาณเตือน หากไม่ถอดตัวต้านทานออก จะไม่ทำงานจนกว่าคุณจะเชื่อมต่อแหล่งจ่าย VCC กับโมดูล ซึ่งขัดต่อจุดประสงค์ของการมี RTC ที่ใช้พลังงานต่ำมาก
ขั้นตอนที่ 2: หลักการแผนผัง
ลำดับความสำคัญสูงสุดสำหรับการออกแบบคือ:
- การทำงานของแบตเตอรี่โดยใช้กระแสไฟสลีปต่ำ
- ดีไซน์กะทัดรัด
แหล่งจ่ายไฟ
แบตเตอรี่ลิเธียม thionyl AA 3.6V Saft จำนวน 2 ก้อน MOSFET P-channel สำหรับการป้องกันขั้วย้อนกลับ
มีตัวควบคุมแรงดันไฟฟ้าสองตัวในวงจร:
- Texas Instruments TPS562208 ตัวควบคุมสเต็ปดาวน์ 2 แอมป์เพื่อจ่ายไฟให้กับ SIM800L ที่ประมาณ 4.1V สามารถสลับได้จาก ATMega และเข้าสู่โหมดปิดเครื่องโดยส่วนใหญ่ผ่าน Enable pin 5
- ตัวควบคุม MCP1700 3.3V สำหรับ ATMega และ BME280 นี่คือตัวควบคุมการตกต่ำที่มีประสิทธิภาพสูง โดยมีกระแสไฟนิ่งเพียงประมาณ 1 µA เนื่องจากสามารถทนต่ออินพุตได้ถึง 6V เท่านั้น ฉันจึงเพิ่มไดโอดเรียงกระแสสองตัว (D1, D2) ในชุดเพื่อลดการจ่ายไฟ 7.2V ให้อยู่ในระดับที่ยอมรับได้ประมาณ 6V ฉันลืมเพิ่มตัวเก็บประจุดีคัปปลิ้ง 10 µF ปกติบน PCB สำหรับแหล่งจ่ายไฟบน ATMega ดังนั้นฉันจึงอัพเกรดตัวเก็บประจุเอาต์พุตปกติบน MCP1700 จาก 1 เป็น 10 µF และใช้งานได้ดี
- การตรวจสอบแรงดันแบตเตอรี่ผ่าน ADC0 บน ATMega (ผ่านตัวแบ่งแรงดันไฟ)
นาฬิกาเรียลไทม์
DS3231 ที่ได้รับการดัดแปลง ซึ่งจะปลุก ATMega ในช่วงเวลาที่กำหนดเพื่อเริ่มรอบการวัดและการส่งข้อมูล DS3231 ใช้พลังงานจากเซลล์ลิเธียม CR2032
BME280
ฉันได้ลองใช้โมดูล Bosch BME280 ดั้งเดิมด้วยตัวเองแล้ว ซึ่งแทบจะเป็นไปไม่ได้เลยที่จะบัดกรีด้วยขนาดที่เล็ก ดังนั้นฉันจึงใช้กระดานฝ่าวงล้อมที่มีอยู่ทั่วไป เนื่องจากมีตัวควบคุมแรงดันไฟฟ้าที่ไม่จำเป็น ซึ่งกินไฟ ฉันจึงเปิดสวิตช์ด้วย N-channel MOSFET ก่อนทำการตรวจวัด
SIM800L
โมดูลนี้มีความน่าเชื่อถือ แต่ดูเหมือนว่าจะค่อนข้างเจ้าอารมณ์หากแหล่งจ่ายไฟไม่แข็งกระด้าง ฉันพบว่าแรงดันไฟฟ้า 4.1V ทำงานได้ดีที่สุด ฉันได้ทำการติดตาม PCB สำหรับ VCC และ GND ไปยัง SIM800L ที่หนาเป็นพิเศษ (20 ล้าน)
ความคิดเห็นแผนผัง / PCB
- ป้ายกำกับเครือข่าย "1" - ระบุว่า "SINGLEPIN" ในรายการชิ้นส่วนหมายถึงหมุดส่วนหัวของตัวผู้
- หมุดสองตัวที่อยู่ติดกับสวิตช์แบบสไลด์จำเป็นต้องต่อกับจัมเปอร์เพื่อการทำงานปกติ มิฉะนั้น สาย VCC จะเปิดขึ้นที่นี่ มีไว้สำหรับการวัดปัจจุบันหากจำเป็น
- ไม่จำเป็นต้องใช้ตัวเก็บประจุ 100 µF (C12) สำหรับโมดูล SIM800L มันถูกเพิ่มเป็นมาตรการป้องกัน (สิ้นหวัง) ในกรณีของปัญหาเสถียรภาพที่คาดไว้
ขั้นตอนการประกอบที่แนะนำ
- ประกอบส่วนประกอบแหล่งจ่ายไฟทั้งหมดในส่วนล่างซ้ายของ PCB เปิดใช้งานพิน (พิน 5) ของ TPS562208 จะต้องอยู่ในระดับสูงสำหรับการทดสอบ มิฉะนั้น โมดูลจะอยู่ในโหมดปิดเครื่อง และคุณจะมีเอาต์พุต 0V ในการดึง Enable pin ให้สูงสำหรับการทดสอบ สามารถเชื่อมต่อสายชั่วคราวจาก pad 9 ของ ATMega (ซึ่งบน PCB ถูกต่อเข้ากับ PIN 5 ของตัวควบคุมแรงดันไฟฟ้า) สามารถเชื่อมต่อกับจุด VCC จุดที่ใกล้ที่สุดคือขาล่างของ R3 ซึ่งอยู่บนเส้น VCC
- ทดสอบเอาต์พุตจาก TPS562208 ระหว่างพินด้านล่างของ C2, C3 หรือ C4 และ GND คุณควรมีประมาณ 4.1V
- ทดสอบเอาต์พุตจาก MCP1700 ระหว่างพินบนขวาของ U6 และ GND คุณควรมี 3.3V
- ประสาน ATMega328P; สังเกตเครื่องหมายพิน 1 ที่มุมซ้ายบน ต้องฝึกฝนบ้างแต่ไม่ยากเกินไป
- เบิร์น bootloader ลงบน ATMega328 - บทช่วยสอนสำหรับสิ่งนี้ที่อื่น คุณไม่จำเป็นต้องใช้ส่วนหัวของพินเพื่อเชื่อมต่อกับ MOSI, MISO, SCK และ RST ในไม่กี่วินาทีที่ใช้ในการเบิร์น bootloader คุณสามารถใช้สาย Dupont และใช้มุมเล็กน้อยเพื่อให้ได้การสัมผัสที่ดี
- แนบส่วนหัวพินตัวเมีย 5x สำหรับ DS3231
- ประสาน SIM800L ผ่านส่วนหัวของพินตัวผู้
- บัดกรี BME280
- อัปโหลดโค้ดใน Arduino IDE โดยใช้อะแดปเตอร์ USB2TTL (เลือก Arduino Uno/Genuino เป็นเป้าหมาย)
ขั้นตอนที่ 3: รหัส Arduino
ดูซอร์สโค้ด Arduino ในไฟล์แนบ
ขั้นตอนที่ 4: การทดสอบในโลกแห่งความเป็นจริง
ฉันเจาะรูเล็กๆ สองรูทางด้านขวาของเคสไปด้านหน้า ฉันปิดมันจากด้านในด้วยแผ่นแปะ Goretex เพื่อให้สามารถแลกเปลี่ยนอากาศได้ แต่ไม่รวมน้ำ ฉันเพิ่มอุปกรณ์กันฝนเพิ่มเติมด้วยหลังคาพลาสติกเล็กๆ จากนั้นฉันก็เสียบชุดประกอบทั้งหมดลงในเคสโดยให้ส่วนประกอบหันไปข้างหน้าและแบตเตอรี่หันเข้าหาฝา ฉันเพิ่มจาระบีซิลิกอนเล็กน้อยลงในเคสเพื่อเพิ่มการป้องกันน้ำเข้า
ขณะนี้หน่วยกำลัง "ติดตั้ง" ติดกับแม่น้ำสายเล็ก นี่คือฟีดข้อมูลสด