İçindekiler:

ESP8266 ile Kızılötesi Sensör: 6 Adım
ESP8266 ile Kızılötesi Sensör: 6 Adım

Video: ESP8266 ile Kızılötesi Sensör: 6 Adım

Video: ESP8266 ile Kızılötesi Sensör: 6 Adım
Video: ESP8266 Smart Light Switch with Servo Motor 2024, Temmuz
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Bu seferki amacımız, sensörümüze doğru bakan herhangi bir nesnenin ortam sıcaklığını okuyacak bir program oluşturmak. Bunu yapmak için, bu projede bir ESP8266 nodeMCU, bir MLX90614 kızılötesi sensör ve sıcaklık verilerini gösterecek bir OLED 96 ekran kullanacağız.

1. Adım: WiFi ESP8266 NodeMcu ESP-12E

Adım 2: Kızılötesi Sensör

Kızılötesi sensör
Kızılötesi sensör

Bu kurulumda kullanılan MLX90614 kızılötesi sensör aslında bir tür video kameradır. Hareketsiz dijital kameralarda kullanılana çok benzeyen bir sistem olan CCD (Charged Coupled Device) aracılığıyla görüntüleri yakalar. Böylece cisimden çıkan kızılötesi miktarını kaydeder ve bu miktar ile sıcaklığı hesaplar. Çok kesin.

3. Adım: OLED'i görüntüleyin

OLED'i göster
OLED'i göster

Adım 4: Montaj

toplantı
toplantı

Bu çok basit bir şemadır. Burada kolay görselleştirmeye izin veren bir tablom var.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - DC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3v - VCC

GND - GND

Adım 5: Kitaplıklar

Kütüphaneler
Kütüphaneler
Kütüphaneler
Kütüphaneler

OLED ekranı kullanmak için aşağıdaki "Adafruit-GFX-Library-master" kitaplığını ekleyin.

Basitçe "Çizim >> Kitaplıkları Dahil Et >> Kitaplıkları Yönet …" seçeneğine erişin.

Ayrıca aşağıdaki "Adafruit Unified Sensor" kitaplığını da ekleyin.

Kütüphaneler için indirme bağlantıları, hemen aşağıda bulunan PDF'dedir.

Adım 6: Kaynak Kodu

Kodumuz sırasında kullanacağımız kütüphaneleri ve sabitleri tanımlayarak başlayacağız.

#include //Biblioteca para I2C#include //Biblioteca para conunicação com o o sensor #include //Biblioteca para propriedades #include //Comunicaço com dipsplay OLED // pinagem para o NodeMCU ESP8266 #define sclk D5 #define mo #define cs D8 #define rst D3 #define dc D4 // çekirdeklerin tanımlı özellikleri #define BLACK 0x0000 #define WHITE 0xFFFF //definine WHITE 0xFFFF //definine WHITE 0xFFFF //definichine cada um dos dados #define POS_X_AMBIETO #define POS_X_AMY_tanımlayın 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // yapıcı OLED'i görüntülemek için nesnelerle iletişim kurun Adafruit_SSD1331 görüntü = Adafruit_SSD1331(cs, dc, mosi, sclk, rst); //karşılıklı yanıtlar ve iletişim bilgileri, iletişim sensörü kızılötesi IRTherm sensörü; //değişkenler, sıcaklık değerlerinin değişkenliğine bağlı olarak, kayan nokta tempAmbiente; float tempObjeto;

Kurmak

Setup() işlevinde, sensörle iletişim nesnemizi ve ekranla iletişim nesnesini başlatacağız. İşte her biri için bazı ayarlar.

void setup(){ //Infravermelho sensor de sıcaklık sensörü.begin(); //Seleciona sıcaklık ve Celsius sensor.setUnit(TEMP_C);//podemos ainda TEMP_F için Fahrenheit //ou TEMP_K para Kelvin //comunicarmos com o display OLED display.begin(); // bir tela bugünden önce display.fillScreen(BLACK); //yapılandırma veya tamnaho yapmak metinleri sıraya koymak em tela display.setTextSize(0); //teksto display.setTextColor(WHITE); //os comando'ları abaixo pozisyonu o imleç no (x, y) desejado para a seguir escrevermos em tela display.setCursor(POS_X_TITULO, POS_Y_TITULO); display.print("SICAKLIK"); display.setCursor(POS_X_TITULO+20, POS_Y_TITULO+15); display.print("("); display.print((char)247); //símbolo degraus display.print("C)"); display.setCursor(POS_X_AMBIENTE, POS_Y_AMBIENTE); display.print("AMB:"); //AMBIENTE display.setCursor(POS_X_OBJETO, POS_Y_OBJETO); display.print("OBJ:"); //OBJETO }

Döngü

Döngü () işlevinde, sensör verilerini okuyalım ve ardından OLED ekranda görüntüleyelim.

// Sıcaklık ve ortam koşulları için sensör "okuma"//düzenli okuma//düzenleme okuma 1 günlük gerçek zamanlı, 0 kasa contrário if (sensor.read()) { //ortam sıcaklığı düzenleme = sensor.ambient(); // sıcaklığın geri alınması, bir nesneye apontado pelo sensor tempObjeto = sensor.object(); //ortam ve nesne gösterimi için sıcaklık ve cesareti ölçen bir alan.fillRect(POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect(POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, SİYAH); //konum veya imleç ve bir sıcaklık ortamı görüntüleme ekranı.setCursor(POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print(tempAmbiente); display.print((char)247); //simbolo degraus //konum veya imleç ve bir sıcaklığın korunması nesneyi sıraya koymak veya sensör ayarlarını yapmak display.setCursor(POS_X_OBJETO+35, POS_Y_OBJETO); display.print(tempObjeto); display.print((char)247); //simbolo de graus } gecikme(1000); // 1 segundo para a próxima leitura }

Önerilen: