สารบัญ:

เซ็นเซอร์อินฟราเรดพร้อม ESP8266: 6 ขั้นตอน
เซ็นเซอร์อินฟราเรดพร้อม ESP8266: 6 ขั้นตอน

วีดีโอ: เซ็นเซอร์อินฟราเรดพร้อม ESP8266: 6 ขั้นตอน

วีดีโอ: เซ็นเซอร์อินฟราเรดพร้อม ESP8266: 6 ขั้นตอน
วีดีโอ: Arduino ESP8266 Blynk IOT - ทดลอง PIR Sensor เซ็นเซอร์ตรวจจับการเคลื่อนไหว HC-SR501 2024, กรกฎาคม
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

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

ขั้นตอนที่ 1: WiFi ESP8266 NodeMcu ESP-12E

ขั้นตอนที่ 2: เซ็นเซอร์อินฟราเรด

เซ็นเซอร์อินฟราเรด
เซ็นเซอร์อินฟราเรด

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

ขั้นตอนที่ 3: แสดง OLED

จอแสดงผล OLED
จอแสดงผล OLED

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

การประกอบ
การประกอบ

นี่เป็นโครงการที่ง่ายมาก ฉันมีตารางที่ช่วยให้มองเห็นได้ง่าย

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

ขั้นตอนที่ 5: ห้องสมุด

ห้องสมุด
ห้องสมุด
ห้องสมุด
ห้องสมุด

หากต้องการใช้จอแสดงผล OLED ให้เพิ่มไลบรารี "Adafruit-GFX-Library-master" ต่อไปนี้

เพียงเข้าไปที่ "Sketch >> Include Libraries >> Manage Libraries …"

เพิ่มไลบรารี "Adafruit Unified Sensor" ต่อไปนี้ด้วย

ลิงก์ดาวน์โหลดสำหรับห้องสมุดอยู่ในรูปแบบ PDF ซึ่งอยู่ด้านล่าง

ขั้นตอนที่ 6: รหัสที่มา

เราจะเริ่มต้นด้วยการกำหนดไลบรารีและค่าคงที่ที่เราจะใช้ระหว่างโค้ดของเรา

#include //Biblioteca para I2C#include //Biblioteca para comunicação com o sensor #include //Biblioteca para propriedades gráficas #include //Biblioteca para comunicação com dipsplay OLED // pinagem para o NodeMCU ESP8266 #define sclk D5 #define cs D8 #define rst D3 #define dc D4 // definição das cores que serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF //definição da coordenada onde escreveremos cada um dos dados #กำหนด POS_X_AMBIJEENT POS_X_AMBIJEENT 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // คอนสตรัคเตอร์สำหรับ comunicar com o จอแสดงผล OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst); //objeto responsável pela comunicação com o เซ็นเซอร์ infravermelho เซ็นเซอร์ IRTherm; //variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; // variáveis que อาร์มาเซนาเรา float tempObjeto;

ติดตั้ง

ในฟังก์ชันการตั้งค่า () เราจะเริ่มต้นวัตถุการสื่อสารของเรากับเซ็นเซอร์ ตลอดจนวัตถุของการสื่อสารกับจอแสดงผล นี่คือการตั้งค่าบางอย่างสำหรับแต่ละรายการ

การตั้งค่าเป็นโมฆะ () {//Inicializa sensor de temperatura infravermelho sensor.begin (); //Seleciona อุณหภูมิ em เซลเซียส sensor.setUnit (TEMP_C);//podemos ainda utilizar TEMP_F para Fahrenheit //ou TEMP_K para Kelvin //inicializa o objeto para comunicarmos com o display OLED display.begin(); //pinta a tela toda de preto display.fillScreen(BLACK); //configura o tamnaho do texto que escreveremos em tela display.setTextSize(0); // กำหนดค่า a cor branca para o texto display.setTextColor(WHITE); // os comandos abaixo posicionam o เคอร์เซอร์ไม่มี (x, y) แยกจาก seguir escrevermos em tela display.setCursor (POS_X_TITULO, POS_Y_TITULO); display.print("อุณหภูมิ"); display.setCursor(POS_X_TITULO+20, POS_Y_TITULO+15); display.print("("); display.print((char)247); //símbolo de graus 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 }

ห่วง

ในฟังก์ชันลูป () ให้อ่านข้อมูลเซ็นเซอร์แล้วแสดงผลบนจอแสดงผล OLED

// chamamos o método "read" do sensor para realizar a leitura da temperatura//read retornará 1 caso consiga realizar a leitura, ou 0 caso contrário if (sensor.read ()) { //recupera a leitura da temperatura do Ambiente tempAmbiente = sensor.ambient(); //recupera a leitura da temperatura do objeto apontado pelo เซ็นเซอร์ tempObjeto = sensor.object(); //limpa a área onde colocamos o valor da temperatura do Ambiente e do objeto display.fillRect(POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect(POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, สีดำ); // ตำแหน่งหรือเคอร์เซอร์หนีจากอุณหภูมิแวดล้อม display.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print(tempAmbiente); display.print((ถ่าน)247); // Simbolo de graus // posiciona o cursor e escreve a temperatura do objeto que o เซ็นเซอร์ está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print(tempObjeto); display.print((ถ่าน)247); //simbalo de graus } ล่าช้า (1000); // ช่วงเวลา 1 segundo para a proxima leitura }

แนะนำ: