สารบัญ:

การวัดอุณหภูมิโดยใช้ XinaBox และเทอร์มิสเตอร์: 8 ขั้นตอน
การวัดอุณหภูมิโดยใช้ XinaBox และเทอร์มิสเตอร์: 8 ขั้นตอน

วีดีโอ: การวัดอุณหภูมิโดยใช้ XinaBox และเทอร์มิสเตอร์: 8 ขั้นตอน

วีดีโอ: การวัดอุณหภูมิโดยใช้ XinaBox และเทอร์มิสเตอร์: 8 ขั้นตอน
วีดีโอ: EP.5 Part 1 - วิธีติดตั้ง library Blynk บนโปรแกรม Arduino IDE 2024, พฤศจิกายน
Anonim
การวัดอุณหภูมิโดยใช้ XinaBox และเทอร์มิสเตอร์
การวัดอุณหภูมิโดยใช้ XinaBox และเทอร์มิสเตอร์

วัดอุณหภูมิของของเหลวโดยใช้อินพุตอนาล็อก xChip จาก XinaBox และโพรบเทอร์มิสเตอร์

ขั้นตอนที่ 1: สิ่งที่ใช้ในโครงการนี้

ส่วนประกอบฮาร์ดแวร์

  • XinaBox SX02 x 1 xChip เซ็นเซอร์อินพุตแบบอะนาล็อกพร้อม ADC
  • XinaBox CC01 x 1 เวอร์ชัน xChip ของ Arduino Uno ที่ใช้ ATmega328P
  • ตัวต้านทาน 10k ohm x 1 ตัวต้านทาน 10k สำหรับเครือข่ายตัวแบ่งแรงดันไฟฟ้า
  • โพรบเทอร์มิสเตอร์เทอร์มิสเตอร์ x 1 10k ที่ 25°C โพรบเทอร์มิสเตอร์เทอร์มิสเตอร์กันน้ำ NTC
  • XinaBox IP01 x 1 xChip โปรแกรมเมอร์ USB ที่ใช้ FT232R จาก FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 พิกเซล OLED Display
  • XinaBox XC10 x 4 xChip ขั้วต่อบัส
  • XinaBox PU01 x 1 xChip USB (ประเภท A) พาวเวอร์ซัพพลาย
  • 5V USB Power Supply x 1 Power Bank หรือใกล้เคียง

แอพซอฟต์แวร์และบริการออนไลน์

Arduino IDE

เครื่องมือช่างและเครื่องจักรผลิต

ไขควงปากแบน เพื่อขันหรือคลายแคลมป์ขั้วต่อสกรู

ขั้นตอนที่ 2: เรื่องราว

บทนำ

ฉันต้องการวัดอุณหภูมิของของเหลวด้วยการสร้างเทอร์โมมิเตอร์แบบง่าย โดยใช้ XinaBox xChips ฉันสามารถทำได้ด้วยความเรียบง่ายสัมพัทธ์ ฉันใช้ xChip อินพุตแบบอะนาล็อก SX02 ซึ่งยอมรับ 0 - 3.3V, CC01 xChip ที่ใช้ ATmega328P และ xChip ที่แสดง OD01 OLED เพื่อดูผลลัพธ์อุณหภูมิของฉัน

เทอร์มิสเตอร์วัดอุณหภูมิน้ำในแก้ว

ขั้นตอนที่ 3: ดาวน์โหลดไฟล์ที่จำเป็น

คุณจะต้องใช้ไลบรารีและซอฟต์แวร์ต่อไปนี้:

  • xSX0X- ไลบรารีเซ็นเซอร์อินพุตแบบอะนาล็อก
  • xOD01 - ไลบรารีแสดงผล OLED
  • Arduino IDE - สภาพแวดล้อมการพัฒนา

คลิกที่นี่เพื่อดูวิธีการติดตั้งไลบรารี

เมื่อคุณติดตั้ง Arduino IDE แล้ว ให้เปิดขึ้นมาแล้วเลือก "Arduino Pro หรือ Pro Mini" เป็นบอร์ดเพื่ออัปโหลดโปรแกรมของคุณไป ตรวจสอบให้แน่ใจด้วยว่าได้เลือกโปรเซสเซอร์ ATmega328P (5V, 16MHz) แล้ว ดูภาพด้านล่าง

เลือกบอร์ด Arduino Pro หรือ Pro Mini และโปรเซสเซอร์ ATmega328P (5V, 16MHz)

ขั้นตอนที่ 4: ประกอบ

คลิกโปรแกรมเมอร์ xChip, IP01 และ CC01 xChip ที่ใช้ ATmega328P ร่วมกันโดยใช้ขั้วต่อบัส XC10 ดังที่แสดงด้านล่าง ในการอัปโหลดไปยัง CC01 คุณจะต้องวางสวิตช์ในตำแหน่ง 'A' และ 'DCE' ตามลำดับ

IP01 และ CC01 คลิกพร้อมกัน

จากนั้น นำตัวต้านทาน 10kΩ ของคุณและขันปลายด้านหนึ่งเข้าที่ขั้วต่อที่มีเครื่องหมาย "IN" และปลายอีกด้านหนึ่งในขั้วต่อกราวด์ "GND" บน SX02 นำสายบนโพรบเทอร์มิสเตอร์และขันปลายด้านหนึ่งเป็น Vcc, "3.3V" และปลายอีกด้านหนึ่งในขั้วต่อ "IN" ดูกราฟิกด้านล่าง

การเชื่อมต่อ SX02

ตอนนี้รวม OD01 และ SX02 เข้ากับ CC01 โดยเพียงแค่คลิกเข้าด้วยกันโดยใช้ตัวเชื่อมต่อบัส XC10 ดูด้านล่าง องค์ประกอบสีเงินในภาพคือโพรบเทอร์มิสเตอร์

หน่วยที่สมบูรณ์สำหรับการเขียนโปรแกรม

ขั้นตอนที่ 5: โปรแกรม

เสียบเครื่องเข้ากับพอร์ต USB บนคอมพิวเตอร์ของคุณ ดาวน์โหลดหรือคัดลอกและวางโค้ดด้านล่างลงใน Arduino IDE ของคุณ รวบรวมและอัปโหลดรหัสไปยังบอร์ดของคุณ เมื่ออัปโหลดโปรแกรมของคุณควรเริ่มทำงาน หากคุณโพรบอยู่ในสภาวะอุณหภูมิห้อง คุณควรสังเกต ±25°C บนจอแสดงผล OLED ดังที่แสดงด้านล่าง

หลังจากอัปโหลดแล้ว ให้สังเกตอุณหภูมิห้องบนจอแสดงผล OLED

ขั้นตอนที่ 6: เครื่องวัดอุณหภูมิแบบพกพา

ถอดเครื่องออกจากคอมพิวเตอร์ของคุณ ถอดแยกชิ้นส่วนยูนิตและประกอบใหม่โดยใช้ PU01 แทน IP01 ตอนนี้ นำแหล่งจ่ายไฟแบบพกพา USB 5V ของคุณ เช่น พาวเวอร์แบงค์หรือที่คล้ายกัน แล้วใส่ชุดประกอบใหม่เข้าไป ตอนนี้คุณมีเทอร์โมมิเตอร์แบบพกพาสุดเจ๋งพร้อมความแม่นยำที่ดีแล้ว ดูภาพหน้าปกเพื่อดูการทำงาน ฉันวัดน้ำร้อนในแก้ว ภาพด้านล่างแสดงหน่วยที่สมบูรณ์ของคุณ

หน่วยสมบูรณ์ประกอบด้วย CC01, OD01, SX02 และ PU02

ขั้นตอนที่ 7: บทสรุป

โครงการนี้ใช้เวลารวบรวมไม่ถึง 10 นาทีและอีก 20 นาทีในการเขียนโปรแกรม ส่วนประกอบแบบพาสซีฟเพียงอย่างเดียวที่ต้องการคือตัวต้านทาน xChips เพียงคลิกพร้อมกันทำให้สะดวกมาก

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

ThermTemp_Display.ino Arduino วิจัยเทอร์มิสเตอร์เทอร์มิสเตอร์เพื่อให้เข้าใจการคำนวณในโค้ด

#include // รวมไลบรารีหลักสำหรับ xCHIPs

#include // รวมไลบรารีเซ็นเซอร์อินพุตแบบอะนาล็อก #include // รวมไลบรารีการแสดงผล OLED #include // รวมฟังก์ชันคณิตศาสตร์ #define C_Kelvin 273.15 // สำหรับการแปลงจากเคลวินเป็นเซลเซียส #define series_res 10000 // ค่าของตัวต้านทานแบบอนุกรมในหน่วยโอห์ม #define B 3950 // B พารามิเตอร์สำหรับเทอร์มิสเตอร์ #define room_tempK 298.15 // อุณหภูมิห้องเป็นเคลวิน #define room_res 10000 // ความต้านทานที่อุณหภูมิห้องเป็นโอห์ม #define vcc 3.3 // แรงดันไฟฟ้า xSX01 SX01(0x55); // ตั้งค่าแรงดันโฟลตที่อยู่ i2c; // ตัวแปรที่มีแรงดันไฟฟ้าที่วัดได้ (0 - 3.3V) float therm_res; // ความต้านทานเทอร์มิสเตอร์ลอย act_tempK; // อุณหภูมิจริงเคลวินลอย act_tempC; // อุณหภูมิจริงในการตั้งค่าโมฆะเซลเซียส () { // ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: // เริ่มต้นตัวแปรเป็น 0 แรงดัน = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // เริ่มการสื่อสารแบบอนุกรม Serial.begin(115200); // เริ่มการสื่อสาร i2c Wire.begin(); // เริ่มเซ็นเซอร์อินพุตแบบอะนาล็อก SX01.begin(); // เริ่มแสดงผล OLED OLED.begin(); // ล้าง OD01.clear(); // หน่วงเวลาเพื่อทำให้การหน่วงเวลาเป็นปกติ (1000); } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: // อ่านแรงดันไฟฟ้า SX01.poll(); // เก็บแรงดันไฟฟ้า volatge = SX01.getVoltage(); // คำนวณความต้านทานเทอร์มิสเตอร์ therm_res = ((vcc * series_res) / แรงดันไฟฟ้า) - series_res; // คำนวณอุณหภูมิจริงในเคลวิน act_tempK = (room_tempK * B) / (B + room_tempK * log(therm_res / room_res)); // แปลงเคลวินเป็นเซลเซียส act_tempC = act_tempK - C_Kelvin; // อุณหภูมิการพิมพ์บนจอแสดงผล OLED // การจัดรูปแบบด้วยตนเองเพื่อแสดงในศูนย์ OD01.set2X(); OD01.println(""); OD01.println(""); OD01.print(" "); OD01.print(act_tempC); OD01.print("C"); OD01.println(""); ล่าช้า (2000); // อัปเดตการแสดงผลทุก 2 วินาที }

แนะนำ: