Ateş Ölçer Yapımı | Arduino Temassız Termometre
Bu yazıda sizlere Arduino ile Temassız Ateş Ölçer Yapımı projemizden bahsedeceğiz. Dünyayı kasıp kavuran korona virüs (Covid-19) salgını herkesin malumu. Bu zamanlarda almamız gereken önlemler çok fazla. Bunlardan birisi de temassız şekilde insanların ateşini ölçebileceğimiz bir termometre olan ateş ölçer. Ateş ölçer yapımı ile ilgili detayları, gerekli malzemeleri ve gerekli Arduino kodlarını sizlerle paylaşacağız.
Temassız Ateş Ölçer Malzemeleri
Ateş ölçer yapmak için aşağıdaki malzemelerin dışında, eğer bir dış kasa yapmak istiyorsanız 3d yazıcı‘ya ihtiyacınız olacak. Bu parçaları temin edemezseniz kasası olmadan da breadboard üzerinde bu devreyi kullanabilisiniz. Biz aşağıda 3d yazıcı parçaları çizimlerini de paylaşacağız.
- Arduino Nano
- Buton
- Direnç (5K ohm, 200 ohm)
- 5V lazer verici
- Çift kontrol anahtarı
- OLED 0.96 ekran (4 pinli) SSD1306
- GY-906 sıcaklık sensörü (MLX90614)
- 9V pil (birkaç tane)
- 3D yazıcı
- PLA filament

Bu projede GY-906 kızılötesi termometre sensörü kullanılmaktadır. Bu modül ucuz, entegrasyonu kolay ve 10K çekme direncine sahip bir I2C arayüzünü destekler. Bu sıcaklık sensörünün fabrika kalibrasyonu: sensör sıcaklık aralığı -40 ila 125 santigrat derece ve nesne sıcaklık aralığı -70 ila 380 santigrat derece. Sensörün hata aralığı yaklaşık 0,5 santigrat derecedir.
Bağlantı Şeması
Buradaki bağlantı şeması ile sensör, oled ekran, lazer ve arduino bağlantısını yapacağız. Devreye eklediğimiz buton yardımı ile voltaj geçişini sağlayarak bir tetik mekanizması yapmış olacağız.
Arduino Programı
Önce aşağıdaki kütüphaneleri, Adafruits SSD1306 ve Adafruits MLX90614’ü kuracağız.
https://github.com/adafruit/Adafruit_SSD1306
https://github.com/adafruit/Adafruit-MLX90614-Library
Program sürekli olarak MLX90614’ten sıcaklık verilerini okur, ancak sadece anahtar düğmesine dokunulduğunda OLED’de görüntülenir ve lazer ayrıca nesnenin sıcaklığını ölçmeye yardımcı olur.
Lütfen proje dosyası kitaplığındaki programlama dosyalarını indirin. 3d parçalarının çizimlerini aşağıdaki linkte bulabilirsiniz.
https://make.quwj.com/project/157
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
#include <TN901.h> //TN901 library TN901 tn; //Create TN901 object #include <Arduino.h> #include <Wire.h> #include <MicroLCD.h> //OLED Library LCD_SSD1306 lcd; /* for SSD1306 OLED module */ static const PROGMEM uint8_t tick[16 * 16 / 8] = {0x00,0x80,0xC0,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x78,0x30,0x00,0x00,0x01,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00}; //Show tick static const PROGMEM uint8_t cross[16 * 16 / 8] = {0x00,0x0C,0x1C,0x3C,0x78,0xF0,0xE0,0xC0,0xE0,0xF0,0x78,0x3C,0x1C,0x0C,0x00,0x00,0x00,0x30,0x38,0x3C,0x1E,0x0F,0x07,0x03,0x07,0x0F,0x1E,0x3C,0x38,0x30,0x00,0x00}; //show cross #include "LedControl.h" //8 * 8 Dot Matrix Library LedControl lc=LedControl(12,11,13,1); #include <MsTimer2.h> //Timer library void setup() { pinMode(A0,INPUT); //Set the port of the distance sensor tn.Init(8,2,7); //tn901 initialization lcd.begin(); //oled start up lcd.setFont(FONT_SIZE_LARGE); //Set font size lcd.setCursor(0, 3); lc.shutdown(0,false); //8 * 8 dot matrix start lc.setIntensity(0,8); lc.clearDisplay(0); MsTimer2::set(100, flash); // 500ms period //Timer setting, mainly let 8 * 8 dot matrix produce breathing light effect MsTimer2::start(); ShowHeart();//8 * 8 dots display a heart shape } void loop() { static int temp; int t; boolean mode=false; //true - BODY; false - ROOM tn.Read(); //Read the temperature of TN901 mode=!digitalRead(A0); //Detect whether the distance sensor is close to the human body if(mode) //If close to the human body { t=tn.OT+180; //tn.OT Read body temperature if(temp<t)temp=t; } else temp=tn.ET-400; //tn.ET,Read ambient temperature LCD_Value(temp,mode); //oled shows body temperature or ambient temperature delay(200); //Delayed for TN901 to refresh } void LCD_Value(int temp,boolean mode) { lcd.setCursor(30, 3); lcd.print((float)temp/100); lcd.print(" C"); if(mode) lcd.draw( tick, 54, 48, 16, 16); else lcd.draw(cross, 54, 48, 16, 16); } void flash() { static int i=0; static boolean d=true; if(d)i++; else i--; if(i==15 || i==0) d=!d; lc.setIntensity(0,i); } void ShowHeart() { lc.setRow(0,0,B00110000); lc.setRow(0,1,B01111000); lc.setRow(0,2,B01111100); lc.setRow(0,3,B00111110); lc.setRow(0,4,B00111110); lc.setRow(0,5,B01111100); lc.setRow(0,6,B01111000); lc.setRow(0,7,B00110000); } |
Projemiz hazır! Termometreyi test edebilirsiniz. Güç düğmesine basın, ekranın yüklenmesini bekleyin. Ateş ölçer yapımı projesi ile artık kendi termometrenize sahipsiniz. Corona virüsü önlemleri kapsamında ısı ölçeriniz ile insanlarla temas etmeden önce yada çalıştığınız yere insanları almadan önce onların ateşlerini ölçebilir ve bu sayede önlemler alabilirsiniz.