/Arduino-MLX90614

Easy Infrared Temperature Sensor, GY-906 MLX90614 With Arduino Nano

Primary LanguageC++

Arduino MLX90614 วัดอุณภูมิโดยไม่สัมผัส พร้อมเสียงเตือน

TH | EN(no)

หัวข้อ (คลิกไปที่หัวข้อนั้นๆได้เลย)

วิธีโหลดไฟล์

1.โหลดไฟล์จาก gitclone

กดไปที่ code → Download ZIP

2.แตกไฟล์

Eng. Right Click → Extract Here

ไทย. คลิกขวา → แตกไฟล์ที่นี่

3.เรียบร้อย

ติดตั้ง Arduino IDE + Driver (ไดร์เวอร์) + ลง Library

วิธีติดตั้ง Arduino IDE

1.เข้าไปที่เว็ป https://www.arduino.cc/en/software

2.กดที่ Windows Win 10 and newer, 64bit

3.กด Just download

4.จากนั้น เปิดไฟล์ติดตั้ง กด Next ไปเรื่อยๆ และรอจน กว่าจะมีให้กด Close

5.เรียบร้อย

วิธีลง Driver (ไดร์เวอร์)

1.ดาวน์โหลดไดร์เวอร์จาก Google drive ← คลิก

2.เปิดไฟล์ที่โหลดมา กด YES จากนั้นกด INSTALL

3.เมื่อเสร็จสิ้นมีข้อความแสดงว่า "Driver install success" ให้กด OK

4.ถอดสายUSB แล้วเชื่อมต่อใหม่ สังเกตุในโปรแกรม Arduino IDE เจอPORT

5.เรียบร้อย

วิธีเช็ค Port เบื้องต้น

1.เข้าไปที่ Device Manager

คลิกขวาที่ Start → Device Manager

2.ไม่มี กำลังหาตัวอย่างมาทำภาพประกอบ

วิธีลง Library

1.กดไปที่ Sketch → Include Library → Add .ZIP Library

2.เลือกไปยังโฟลเดอร์ Libraries ที่โหลดไว้ แล้วเลือก MLX90614_Demo.zip จากนั้นกด open

3.เรียบร้อย

วิธี Upload Code

1.เชื่อมต่อบอร์ด Arduino Nano เข้ากับคอมพิวเตอร์ที่ทำการติดตั้งโปรแกรม Arduino IDE แล้ว

2.เปิดโปรแกรม Arduino IDE (arduino) 

3.เปิดไฟล์ MLX90614_Buzzer (Thai) // อยู่ในโฟล์เดอร์ MLX90614_Buzzer (Thai)

วิธีโหลดไฟล์

4.เลือกบอร์ดเป็น Arduino Nano

ไปที่  Tools → Board → Arduino AVR Board → เลือก Arduino Nano

5.เลือก Port ที่เชื่อมต่อกับบอร์ด Arduino Nano

ไปที่ Tools → Port → Port ที่เชื่อมต่อกับบอร์ด Arduino Nano (ในตัวอย่างจะเป็น Port COM1)

วิธีเช็ค Port เบื้องต้น

6.ทำการกดอัพโหลดโค๊ดลงบอร์ด

7.รอจนกว่าโปรแกรมจะอัพโหลดโค๊ดเสร็จ

8.เมื่อทำการอัพโหลดเสร็จสิ้นและไม่มีอะไรผิดพลาด ในส่วนล่างของหน้าต่างโปรแกรมก็จะปรากฏข้อความเหล่านี้ขึ้นมา และที่บอร์ดก็จะปรากฏไฟสถานะขึ้น

9.เรียบร้อย

เกี่ยวกับวงจร

Arduino และ Arduino Nano

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

Arduino Nano เป็นบอร์ดขนาดจิ๋ว เหมือนกับรุ่น UNO แต่มีจำนวน input/output น้อยกว่าเพราะต้องการให้มีขนาดเล็ก

Buzzer Module

โมดูลเสียง หรือ Active Buzzer Module สามารถสร้างเสียงเตือนได้ง่าย โดยการต่อขา I/O ของ Active Buzzer กับขา I/O ของ Arduino หรือไมโครคอนโทรลเลอร์ได้โดยตรง และต่อกับขา VCC ของ Active Buzzer กับไฟเลี้ยง 3.3-5VDC และขา GND กับ GND ในการสั่งให้ Active Buzzer มีเสียง ทำได้โดยการสั่งขาที่ต่อกับ Active Buzzer ใหัเป็น LOW

MLX90614

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

การต่อวงจร

MLX90614 Arduino   Buzzer Arduino
VCC 3.3V   VCC 3.3-5V
GND GND   GND GND
SDA A4   I/O D13
SCL A5      

Product

ยังไม่มีรูป

หลักการทำงาน

ด้านโปรแกรม

กำลัง Thinking…

ด้านการใช้งาน

กำลัง Thinking…

เกี่ยวกับ Code

Code ทดสอบ MLX90614 (วัดอุณหภูมิโดยรอบ และ วัตถุ)

// เรียก Libreries
#include <Wire.h>
#include "MLX90614.h"
 
esl::MLX90614 mlx90614;

void setup() {
Serial.begin(115200);
while (!Serial) ; // for Leonardo or Pro Micro
Wire.begin();
mlx90614.init( );
Serial.print( "Address = 0x" );
Serial.println( mlx90614.readSlaveAddress(), HEX );
}
 
void loop() {
float f;
Serial.print( "อุณหภูมิโดยรอบ. (Ta): " );
f = mlx90614.readAmbientTemperature(); // อุณหภูมิโดยรอบ
if ( !mlx90614.is_crc_error() ) {
Serial.println(f);
}
Serial.print( "อุณหภูมิวัตถุ. (To): " );
f = mlx90614.readObjectTemperature(); // อุณหภูมิวัตถุ
if ( !mlx90614.is_crc_error() ) {
Serial.println(f);
}
delay(1000); // อัพเดตทุกๆ 1วิ (1000 = 1วินาที)
}

Code ทดสอบ Buzzer Module (ปิด-เปิด วนซ้ำทุก 1วินาที)

int buzzer = 13;            // กำหนด output buzzer

void setup() {
pinMode(buzzer, OUTPUT);    // set output buzzer
}

void loop() {
digitalWrite(buzzer, HIGH); // เปิด buzzer
delay(1000);                // ดีเลย์ 1วิ (1000 = 1วินาที)
digitalWrite(buzzer, LOW);  // ปิด buzzer
delay(1000);                // ดีเลย์ 1วิ (1000 = 1วินาที)
}

Code ใช้งานจริง

กำลังแปล~~~

ต่อยอดอนาคต

  • เพิ่มแบตเตอรี่
  • คิดยังไม่ออก

Made with 💜 by Punuy