Mundarija:

ESP8266: 6 qadamli infraqizil sensor
ESP8266: 6 qadamli infraqizil sensor

Video: ESP8266: 6 qadamli infraqizil sensor

Video: ESP8266: 6 qadamli infraqizil sensor
Video: Установка приложения ArduBlock 2024, Noyabr
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Bu safargi maqsadimiz - sensorimizga ishora qiladigan har qanday ob'ektning atrof -muhit harorati o'qiladigan dasturni yaratish. Buning uchun biz ushbu loyihada harorat ma'lumotlarini aks ettiruvchi ESP8266 nodeMCU, MLX90614 infraqizil sensori va OLED 96 displeyidan foydalanamiz.

1-qadam: WiFi ESP8266 NodeMcu ESP-12E

2 -qadam: Infraqizil sensor

Infraqizil sensor
Infraqizil sensor

Ushbu sozlashda ishlatiladigan MLX90614 infraqizil sensori aslida videokameraning bir turi. U tasvirni CCD (zaryadlangan ulangan qurilma) orqali oladi, bu hali raqamli kameralarda ishlatilgan tizimga juda o'xshash. Shunday qilib, u ob'ektdan chiqadigan infraqizil miqdorini qayd qiladi va shu bilan u haroratni hisoblab chiqadi. Bu juda aniq.

3 -qadam: OLED -ni ko'rsatish

OLED -ni ko'rsatish
OLED -ni ko'rsatish

4 -qadam: yig'ish

O'rnatish
O'rnatish

Bu juda oddiy sxema. Menda bu erda vizualizatsiya qilish uchun qulay jadval mavjud.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - RES

D4 - shahar

D8 - CS

3, 3V - VCC

GND - GND

MLX90614

D1 - SCL

D2 - SDA

3, 3V - VCC

GND - GND

5 -qadam: kutubxonalar

Kutubxonalar
Kutubxonalar
Kutubxonalar
Kutubxonalar

OLED displeyidan foydalanish uchun quyidagi "Adafruit-GFX-Library-master" kutubxonasini qo'shing.

"Sketch >> kutubxonalarni qo'shish >> kutubxonalarni boshqarish …" ga kiring.

Shuningdek, quyidagi "Adafruit Unified Sensor" kutubxonasini qo'shing.

Kutubxonalarni yuklab olish havolalari PDF formatida, quyida mavjud.

6 -qadam: Manba kodi

Biz kodni ishlatadigan kutubxonalar va doimiylarni aniqlashdan boshlaymiz.

#include // Biblioteca para I2C #include // Biblioteca for comunicação com o sensor #include // Biblioteca for propriedades gráficas #include // Biblioteca comunicação com dipsplay OLED // pinode to NodeMCu ESP8lk6 DSP #266 #Dsfine cs D8 #define rst D3 #define dc D4 // defineção das cores que serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF // defineção da coordenada on escreveremos cada um dos dados #OFFOFIFine_Pef_Pef_OnFine_Pef_OnFine 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // konstruktor OLED Adafruit_SSD1331 displeyi = Adafruit_SSD1331 (cs, dc, rsti, mosi, sci; sc); // IRTherm sensori infraqizil javob berish uchun javob beradi; // o'zgaruvchan vaqt harorati o'zgarganda, tempAmbiente; float tempObjeto;

Sozlash

O'rnatish () funktsiyasida biz sensor bilan aloqa ob'ektini, shuningdek displey bilan aloqa ob'ektini ishga tushiramiz. Bu erda ularning har biri uchun bir nechta sozlamalar mavjud.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Selciona temperatura sensori.setUnit (TEMP_C); // Farengeyt uchun TEMP_F yoki TEMP_K uchun kelgusida // OLED displeyini ko'rsatish uchun boshlang'ich ko'rsatkichlar.begin (); // pinta a tela toda de preto display.fillScreen (Qora); // konfiguratsiya yoki matnli displeyni ko'rsatish.setTextSize (0); // matnni ko'rsatish.setTextColor (WHITE) uchun konfiguratsiya; // hech qanday (x, y) kursor yo'q, shuning uchun displey.setCursor (POS_X_TITULO, POS_Y_TITULO); display.print ("TEMPERATURA"); 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}

Loop

Loop () funktsiyasida sensor ma'lumotlarini o'qib chiqamiz va keyin ularni OLED displeyda ko'rsatamiz.

// haroratni o'lchash sensori "o'qish" // o'qish kerak bo'lsa, u holda, agar siz sensorli o'qish () o'qilsa, u holda siz o'qishingiz mumkin. = sensor.ambient (); // haroratni o'lchash uchun harorat sensori tempObjeto = sensor.object (); // displey.fillRect (POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, QARA); display.fillRect (POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, QORA); // pozitsion yoki kursor, muhitni ko'rsatish.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbolo de graus // pozitsion yoki kursor haroratni o'lchash uchun sensorli displey.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} kechikish (1000); // 1 -sonli vaqt oralig'ida

Tavsiya: