สารบัญ:
- ขั้นตอนที่ 1: การประกอบ
- ขั้นตอนที่ 2: ตั้งค่า IDE และไลบรารี
- ขั้นตอนที่ 3: การเขียนโปรแกรมระบบ
- ขั้นตอนที่ 4: การผลิต
- ขั้นตอนที่ 5: รหัส
วีดีโอ: Open Source Data Logger (OPESDL): 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
จุดมุ่งหมายของโครงการนี้คือการออกแบบ สร้าง และทดสอบระบบการวัดต้นทุนต่ำสำหรับการศึกษาการประเมินประสิทธิภาพอาคาร ซึ่งรวมถึงอุณหภูมิ ความชื้นสัมพัทธ์ ความส่องสว่าง และสามารถขยายไปยังเซ็นเซอร์เพิ่มเติมได้ และพัฒนาต้นแบบของอุปกรณ์เหล่านี้.
ส่งผลให้ระบบปรับแต่งได้และราคาไม่แพงซึ่งช่วยให้ผู้มีส่วนได้ส่วนเสียสามารถดำเนินการวัดที่จำเป็นสำหรับการประเมินประสิทธิภาพของอาคารได้อย่างมีประสิทธิภาพและราคาไม่แพงโดยการบันทึกพารามิเตอร์ด้านสิ่งแวดล้อมหลายรายการพร้อมกัน เครื่องบันทึกข้อมูลโอเพ่นซอร์ส (OPESDL) ได้รับการพัฒนาโดยเปรียบเทียบกับเครื่องบันทึกข้อมูล HOBO U12-012 ระบบคู่ขนานที่มีจำหน่ายทั่วไปนี้สามารถวัดได้ 3 พารามิเตอร์ ได้แก่ อุณหภูมิ RH และความส่องสว่าง และช่องสัญญาณภายนอกหนึ่งช่องสำหรับเซ็นเซอร์ประเภทอื่นๆ ต้องใช้อุปกรณ์ตรวจจับอื่นในการวัดค่าพารามิเตอร์อื่นๆ ลักษณะของพารามิเตอร์ที่จะวัดนั้นจำกัดเฉพาะฮาร์ดแวร์และซอฟต์แวร์ที่เป็นกรรมสิทธิ์ ซึ่งจำกัดระบบให้วัดค่าพารามิเตอร์บางตัวด้วยความเที่ยงตรงเฉพาะ HOBO U12-012 มีราคาประมาณ ₹13, 000 (US$185) ในขณะที่ OPENSDL มีราคา ₹4, 605 (US$ 66) ซึ่งเกือบหนึ่งในสามของคู่หูทางการค้า
เครื่องบันทึกข้อมูลโอเพนซอร์สสำหรับตรวจสอบอุณหภูมิ RH และระดับแสง (ความสว่าง) ด้วย Arduino Uno นี่คือ DIY สำหรับการพัฒนาเครื่องบันทึกข้อมูล OPESDL
ระยะเวลาที่ต้องการ: 2-3 ชั่วโมงสำหรับการบัดกรี, 5 ชั่วโมงสำหรับการบรรจุ (4 ชั่วโมง - การพิมพ์ 3 มิติ และ 1 ชั่วโมงสำหรับการตัดด้วยเลเซอร์) ทักษะที่ต้องการ: การบัดกรี ความรู้เพียงเล็กน้อยหรือไม่มีเลยในการเขียนโปรแกรมและอุปกรณ์อิเล็กทรอนิกส์
ชิ้นส่วนที่จำเป็น:
- Arduino Uno พร้อมสายเคเบิล
- โล่บันทึกข้อมูล
- CR1220 แบตเตอรี่เซลล์แบบเหรียญ
- BME280 บอร์ดฝ่าวงล้อมเซ็นเซอร์ความดันความชื้นอุณหภูมิความชื้น
- บอร์ดฝ่าวงล้อมเซ็นเซอร์วัดแสง TSL2561
- โมดูล Wi-Fi ESP01-8266
- ขั้วต่อ RJ-9 ตัวผู้และตัวเมีย
- Shield stacking headers สำหรับ Arduino
- การ์ดหน่วยความจำ SD (ความจุใดก็ได้)
- กระดานเวกเตอร์ (26 x 18 หลุม)
- แบตเตอรี่ AA 8 ก้อน ที่ใส่แบตเตอรี่
เครื่องมือที่จำเป็น:
- หัวแร้ง (35W)
- ลวดบัดกรี
- เครื่องตัดลวด
- เครื่องมือคีมเปอร์
- มัลติมิเตอร์
ซอฟต์แวร์ที่ต้องการ: Arduino IDE (1.0.5 หรือสูงกว่า)
ไลบรารี Arduino ที่ใช้:
- ห้องสมุดสาย
- ห้องสมุด SparkFun TSL2561
- ห้องสมุดมัลติเซ็นเซอร์ Cactus BME280
- ไลบรารีการ์ด SD
- ห้องสมุด SPI
- ห้องสมุด RTC
หมายเหตุ: เซ็นเซอร์ BME280 เป็นเซ็นเซอร์อุณหภูมิ ความชื้นสัมพัทธ์ และความดันที่แม่นยำมากจาก Bosch ในทำนองเดียวกัน DS1307 เป็นนาฬิกาเรียลไทม์ที่แม่นยำจาก Maxim และ TSL2561 เป็นเซ็นเซอร์วัดแสงที่แม่นยำ มีทางเลือกอื่นที่มีราคาไม่แพงและแม่นยำน้อยกว่าสำหรับผลิตภัณฑ์เหล่านี้ แต่บทแนะนำนี้มุ่งเป้าไปที่ผู้ที่สนใจรวบรวมข้อมูลสำหรับการประเมินประสิทธิภาพอาคารและแอปพลิเคชันการตรวจสอบอาคารที่ต้องการความแม่นยำและความแม่นยำสูง ซึ่งหมายความว่าการตั้งค่าฮาร์ดแวร์และการตั้งค่าซอฟต์แวร์เฉพาะใดๆ (ไลบรารี รหัสโปรแกรม) มีไว้สำหรับผลิตภัณฑ์ที่ระบุเท่านั้น
ขั้นตอนที่ 1: การประกอบ
โล่บันทึกข้อมูลสามารถวางซ้อนกันบนบอร์ด Arduino Uno ได้อย่างง่ายดาย โล่นี้ให้ความสามารถในการบันทึกข้อมูล (การรักษาเวลาและการจัดเก็บข้อมูล) โล่ต้องซ้อนกัน ต้องใส่แบตเตอรี่เซลล์แบบเหรียญ CR1220 ในช่องกลมที่มีให้เพื่อให้นาฬิกาทำงานต่อไปแม้ในขณะที่ปิด Arduino ต้องใส่การ์ดหน่วยความจำ SD ในช่องเสียบการ์ดออนบอร์ดที่ให้มา ชิลด์แบบกำหนดเองที่ไม่เหมือนใครได้รับการพัฒนาโดยใช้หมุดตัวเมียตัวเชื่อมต่อ RJ-9 และส่วนหัวสแต็คของ Arduino shield ส่วนหัวที่เหมาะสมถูกบัดกรีในตำแหน่งที่เหมาะสมเพื่อให้ชิลด์เข้ากับบอร์ด Arduino ได้พอดี Arduino มี 18 พินที่ด้านหนึ่งและ 14 พินที่อีกด้านหนึ่ง ส่วนหัวที่มีจำนวนพินเท่ากันถูกใช้ในระยะห่างเท่ากัน (ห่างกัน 18 พิน) เช่นเดียวกับ Arduino พื้นที่เพิ่มเติมที่เหลือซึ่งอยู่ติดกับส่วนหัวใช้สำหรับวางขั้วต่อ RJ-9
ส่วนหัวเป็นวิธีที่ดีที่สุดในการใช้พินที่จำเป็น ในขณะที่ยังคงใช้งานได้กับส่วนประกอบอื่นๆ เซ็นเซอร์ที่ใช้เป็นไปตามโปรโตคอลการสื่อสาร I2C ซึ่งต้องใช้ 4 พินจาก Arduino ได้แก่ SDA (มีให้ในรุ่น A4), SCL (มีให้ในรุ่น A5 ด้วย), 3.3V & GND สายไฟสี่เส้นที่ออกมาจากขั้วต่อ RJ-9 ถูกบัดกรีเข้ากับหมุดส่วนหัวทั้งสี่นี้ จำนวนขั้วต่อ RJ-9 ที่ต้องการขึ้นอยู่กับจำนวนเซนเซอร์ ในโครงการนี้ ใช้ตัวเชื่อมต่อ RJ-9 3 ตัว (สองตัวสำหรับ BME280 และอีกตัวสำหรับ TSL2561) สายสี่เส้นที่ออกมาจากขั้วต่อ RJ-9 มีรหัสสี และสายสีแต่ละเส้นถูกกำหนดให้เป็นพินเฉพาะสำหรับขั้วต่อ RJ-9 ทั้งหมด ต้องสังเกตว่ารหัสสีอาจแตกต่างกันไปตามชิ้นส่วน RJ-9 ที่แตกต่างกัน ในกรณีเช่นนี้ ต้องระบุตำแหน่งของสายไฟบนขั้วต่อ คอนเนคเตอร์ RJ-9 หลังจากการบัดกรี ถูกสร้างขึ้นเพื่อติดบนบอร์ดเวคเตอร์โดยใช้ Feviqwik เพื่อที่จะได้รับการแก้ไขบนพื้นผิว สามารถตรวจสอบการเชื่อมต่อเหล่านี้ได้โดยใช้โหมดความต่อเนื่องบนมัลติมิเตอร์ เมื่ออยู่ในโหมดความต่อเนื่อง มัลติมิเตอร์ควรแสดงความต้านทานเป็นศูนย์ เชื่อมต่อโพรบของมัลติมิเตอร์ตัวใดตัวหนึ่งเข้ากับพินบัดกรี และโพรบอีกตัวหนึ่งเข้ากับพินภายในขั้วต่อ RJ-9 มัลติมิเตอร์ควรส่งเสียง ซึ่งหมายความว่าข้อต่อบัดกรีมีความเหมาะสม และการเชื่อมต่อได้รับการทำอย่างถูกต้อง หากไม่ปล่อยโทนเสียง ให้ตรวจสอบข้อต่อบัดกรี ในทำนองเดียวกัน บัดกรีขั้วต่อ RJ-9 ด้วยสายเดียวกันที่เชื่อมต่อกับรูเข็มเดียวกันบนแผงเซ็นเซอร์ฝ่าวงล้อม เช่น A4, A5, 3.3V & GND เซ็นเซอร์ BME280 รองรับที่อยู่ I2C สองที่อยู่ ซึ่งหมายความว่าสามารถเชื่อมต่อเซ็นเซอร์ BME280 สองตัวกับตัวควบคุมเดียวกันพร้อมกันได้ ขณะทำเช่นนั้น ต้องเปลี่ยนที่อยู่ของเซ็นเซอร์ตัวใดตัวหนึ่งโดยเชื่อมแผ่นบัดกรีบนเซ็นเซอร์ ชิปเชื่อมต่อไร้สาย ESP-01 ต้องการการเชื่อมต่อต่อไปนี้กับ Arduino
ESP-01 --------- Arduino Uno
10 -------------------- TX
11 --------------------RX
Vcc ----------------CH_PD
Vcc ------------------- Vcc
GND ----------------- GND
หมายเหตุ: - LED หลายดวงบน Arduino Uno ถูกถอดออกเพื่อปรับปรุงอายุการใช้งานแบตเตอรี่ ไฟ LED แสดงสถานะกำลัง, RX และ TX LED ถูกถอดออกโดยการทำให้ข้อต่อบัดกรีร้อนขึ้นและดัน LED ด้วยคีม
ขั้นตอนที่ 2: ตั้งค่า IDE และไลบรารี
ก่อนทำการเขียนโปรแกรมใดๆ ต้องดาวน์โหลด Arduino IDE (Integrated Development Environment) การเขียนโปรแกรมเสร็จสิ้นบนแพลตฟอร์มนี้ ห้องสมุดต่างๆ จำเป็นต้องโต้ตอบกับส่วนประกอบต่างๆ ของ OPESDL ไลบรารีต่อไปนี้ถูกใช้สำหรับส่วนประกอบที่กำหนด
ส่วนประกอบ ------------------------------------------------- --------------ห้องสมุด
BME280 อุณหภูมิ & เซ็นเซอร์ RH --------------------------------- Cactus_io_BME280_I2C.h
เซ็นเซอร์วัดแสง------------------------------------------------ ----------------SparkFun TSL2561.h
นาฬิกาตามเวลาจริง ----------------------------------------------------- ----- RTClib.h
ช่องเสียบการ์ด SD ----------------------------------------------------- ----- SD.h
การเชื่อมต่อ I2C------------------------------------------------ -------------- Wire.h
ไม่จำเป็นต้องใช้ไลบรารีแยกต่างหากสำหรับการสื่อสารกับ ESP01 เนื่องจากโค้ดที่อัปโหลดใน Arduino มีคำสั่ง AT ซึ่งส่งไปยังจอภาพแบบอนุกรมจากตำแหน่งที่ ESP-01 ใช้คำสั่ง ดังนั้น โดยพื้นฐานแล้ว คำสั่ง AT ที่ ESP01 ทำงาน จะถูกพิมพ์ลงใน Serial Monitor ซึ่งใช้เป็นคำสั่งอินพุตโดย ESP-01 สำหรับการติดตั้งไลบรารีเหล่านี้ หลังจากดาวน์โหลดแล้ว ให้เปิด Arduino IDE ไปที่ Sketch -> Include Library -> Add. Zip library และเลือกไลบรารีที่ดาวน์โหลดมา
ขั้นตอนที่ 3: การเขียนโปรแกรมระบบ
ก่อนเขียนโปรแกรม OPESDL ให้เชื่อมต่อ Arduino กับแล็ปท็อป หลังจากเชื่อมต่อแล้ว ให้ไปที่เครื่องมือ -> พอร์ต แล้วเลือกพอร์ต COM ที่เชื่อมต่อ OPESDL ตรวจสอบให้แน่ใจด้วยว่าภายใต้เครื่องมือ -> บอร์ด Arduino Uno ถูกเลือกไว้
OPESDL ได้รับการพัฒนาให้ทำงานใน 2 โหมด ในโหมดแรกจะเก็บข้อมูลไว้ในการ์ด SD บนตัวป้องกันข้อมูล ในโหมดที่สอง จะส่งข้อมูลทางอินเทอร์เน็ตไปยังเว็บไซต์โดยใช้ชิป Wi-Fi ESP-01 โปรแกรมสำหรับทั้งสองโหมดนั้นแตกต่างกัน บรรทัดของโค้ดเหล่านี้สามารถคัดลอกและวางได้โดยตรงในโปรแกรมแก้ไข Arduino IDE และใช้งานได้โดยตรง เมื่ออยู่ในโค้ดแล้ว เราต้องทำการปรับแต่งบางอย่างตามความต้องการของเรา:
- เปลี่ยนค่าความล่าช้า (1000) ด้วยตนเองที่ส่วนท้ายของโค้ดเพื่อเปลี่ยนช่วงเวลาการบันทึก ค่า 1000 แสดงถึงช่วงเวลาในหน่วยมิลลิวินาที
- แก้ไขบรรทัดของโค้ดที่ระบุว่า mySensorData = SD.open("Logged01.csv", FILE_WRITE); และแทนที่ Logged01 ด้วยชื่อไฟล์ของชื่อไฟล์ที่ต้องการ นามสกุลของไฟล์ยังสามารถเปลี่ยนแปลงได้โดยการแก้ไขนามสกุล.csv หลังชื่อไฟล์
- สมการการสอบเทียบที่ได้จากการค้นหาความสัมพันธ์ระหว่างเซ็นเซอร์หลัก/ตัวอ้างอิงกับ BME280 จะแตกต่างกันไปตามเซ็นเซอร์แต่ละตัว แทนที่โค้ดบรรทัดนี้ด้วยสมการสำหรับการสอบเทียบเซ็นเซอร์: Serial.print((1.0533*t2) -2.2374) – สำหรับเซ็นเซอร์ที่มีที่อยู่เริ่มต้น (0x77) โดยที่ t2 คือค่าที่อ่านจากเซ็นเซอร์อุณหภูมิ
มีโปรแกรมแยกต่างหากสำหรับตั้งโปรแกรมโหมดที่สองที่พร้อมใช้งานของ OPESDL ซึ่งเป็นระบบไร้สาย ESP-01 ต้องเชื่อมต่อกับ OPESDL ตามการเชื่อมต่อตามที่อธิบายไว้ในขั้นตอนที่ #2 หลังจากเชื่อมต่อเสร็จแล้ว ให้เชื่อมต่อ Arduino กับแล็ปท็อป และอัปโหลดภาพสเก็ตช์เปล่าใน Arduino วาง ESP-01 ในโหมดอัปเดตและอัปเดตเฟิร์มแวร์เป็นอัปเดตล่าสุดที่มี หลังจากอัปเดต ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อพินรีเซ็ตของ Arduino กับพิน 3.3V ซึ่งข้าม Arduino bootloader
ขั้นตอนที่ 4: การผลิต
ตู้สำหรับ OPESDL ถูกสร้างขึ้นสำหรับการป้องกันและปรับปรุงความสวยงาม ปลอกหุ้มได้รับการพัฒนาโดยการพิมพ์ 3 มิติโดยใช้วัสดุ PLA และปลอกสำหรับไมโครคอนโทรลเลอร์ได้รับการพัฒนาโดยการตัดแผ่น MDF ด้วยเลเซอร์และติดชิ้นส่วนเข้าด้วยกัน แบบจำลองการพิมพ์ 3 มิติได้รับการพัฒนาโดยใช้ซอฟต์แวร์ SketchUp และภาพวาด 2D dxf สำหรับการตัดด้วยเลเซอร์ถูกสร้างขึ้นโดยใช้ AutoCAD
สำหรับการพิมพ์ 3 มิติ ไฟล์ STL ที่สร้างโดยใช้ SketchUp จะถูกเปิดและตรวจสอบในซอฟต์แวร์ Ultimaker Cura 3.2.1 ตรวจสอบให้แน่ใจว่าใช้วัสดุ PLA และหัวฉีดของเครื่องพิมพ์ที่ใช้นั้นใช้สำหรับการพิมพ์ขนาด 0.4 มม. แท่นพิมพ์ของเครื่องพิมพ์ 3 มิติอาจต้องใช้กาวเพื่อติดวัตถุที่พิมพ์ 3 มิติ แต่เมื่อการพิมพ์เสร็จสิ้น กาวจะสร้างการยึดเกาะที่แข็งแรงระหว่างวัตถุที่พิมพ์กับฐานรองพิมพ์
ขั้นตอนที่ 5: รหัส
โค้ด (ไฟล์.ino) สร้างขึ้นเพื่อใช้ในซอฟต์แวร์ Arduino IDE นี่คือลิงค์ไปยังหน้า Github ของฉันสำหรับรหัสและรายละเอียดอื่น ๆ
github.com/arihant93/OPENSDL
โปรดอย่าลังเลที่จะถามคำถามเกี่ยวกับโครงการ
ขอบคุณ.
แนะนำ:
GPS Cap Data Logger: 7 ขั้นตอน (พร้อมรูปภาพ)
GPS Cap Data Logger: นี่คือโปรเจ็กต์สุดสัปดาห์ที่ยอดเยี่ยม หากคุณชอบการเดินป่าหรือขี่จักรยานเป็นเวลานาน และต้องการเครื่องบันทึกข้อมูล GPS เพื่อติดตามการเดินป่า/การขี่ทั้งหมดของคุณ… เมื่อคุณสร้างเสร็จแล้วและ ดาวน์โหลดข้อมูลจากโมดูล GPS ของ tr
DIY GPS Data Logger สำหรับคุณ Next Drive/Hiking Trail: 11 ขั้นตอน (พร้อมรูปภาพ)
DIY GPS Data Logger สำหรับคุณ Next Drive/Hiking Trail: นี่คือเครื่องบันทึกข้อมูล GPS ที่คุณสามารถใช้งานได้หลากหลาย เช่น หากคุณต้องการบันทึกการขับรถทางไกลของคุณ คุณใช้เวลาช่วงสุดสัปดาห์เพื่อตรวจสอบสีสันของฤดูใบไม้ร่วง หรือคุณมีเส้นทางโปรดที่คุณไปในช่วงฤดูใบไม้ร่วงทุกปีและคุณจะ
Q-Bot - Open Source Rubik's Cube Solver: 7 ขั้นตอน (พร้อมรูปภาพ)
Q-Bot - Cube Solver ของ Open Source Rubik: ลองนึกภาพว่าคุณมี Rubik's Cube ที่มีสัญญาณรบกวน คุณทราบดีว่าปริศนาดังกล่าวสร้างจากยุค 80 ที่ทุกคนมี แต่ไม่มีใครรู้วิธีแก้ปัญหาจริงๆ และคุณต้องการนำมันกลับคืนสู่รูปแบบเดิม โชคดีที่ทุกวันนี้มันง่ายมากที่จะหาคำสั่งแก้
Open Source Breadboard-Friendly Modular Neopixel Breakout Board: 4 ขั้นตอน (พร้อมรูปภาพ)
Open Source Breadboard-Friendly Modular Neopixel Breakout Board: คำแนะนำนี้เป็นเรื่องเกี่ยวกับกระดานฝ่าวงล้อมขนาดเล็ก (8 มม. x 10 มม.) ที่เป็นมิตรกับเขียงหั่นขนมสำหรับ Neopixel LEDs ซึ่งสามารถวางซ้อนและบัดกรีซึ่งกันและกัน ความแข็งแกร่งของโครงสร้างมากกว่าบาง แถบ LED ในรูปทรงที่เล็กกว่ามาก
DIY Professional Open Source Night Vision Security Camera: 10 ขั้นตอน (พร้อมรูปภาพ)
DIY Professional Open Source Night Vision Security Camera: ในบทช่วยสอนใหม่นี้ เราจะร่วมกันสร้างกล้องวิดีโอเฝ้าระวังวิดีโอ Raspberry Pi แบบโอเพนซอร์ส ใช่ เรากำลังพูดถึงกล้องเฝ้าระวังกลางแจ้งแบบโอเพนซอร์สจริง ความสามารถในการมองเห็นในตอนกลางคืนและการตรวจจับการเคลื่อนไหว ทั้งหมดเชื่อมโยงกับ Jeed ของเรา