Cuprins:
- Pasul 1: WiFi ESP8266 NodeMcu ESP-12E
- Pasul 2: senzor cu infraroșu
- Pasul 3: Afișați OLED
- Pasul 4: Asamblare
- Pasul 5: Biblioteci
- Pasul 6: Cod sursă
Video: Senzor infraroșu cu ESP8266: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Obiectivul nostru de data aceasta este să creăm un program care să citească temperatura ambiantă a oricărui obiect îndreptat către senzorul nostru. Pentru a face acest lucru, vom folosi în acest proiect un nod ESPC8266MCU, un senzor infraroșu MLX90614 și un afișaj OLED de 96 , care va afișa datele de temperatură.
Pasul 1: WiFi ESP8266 NodeMcu ESP-12E
Pasul 2: senzor cu infraroșu
Senzorul infraroșu MLX90614 utilizat în această configurare este de fapt un tip de cameră video. Captează imagini prin intermediul CCD (Charged Coupled Device), un sistem foarte asemănător cu cel utilizat în camerele digitale. Astfel, înregistrează cantitatea de infraroșu care iese din obiect și, cu această cantitate, calculează temperatura. Este foarte precis.
Pasul 3: Afișați OLED
Pasul 4: Asamblare
Aceasta este o schemă foarte simplă. Am aici un tabel care permite vizualizarea ușoară.
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
Pasul 5: Biblioteci
Pentru a utiliza afișajul OLED, adăugați următoarea bibliotecă „Adafruit-GFX-Library-master”.
Pur și simplu accesați „Schiță >> Includeți biblioteci >> Gestionați bibliotecile …”
De asemenea, adăugați următoarea bibliotecă „Adafruit Unified Sensor”.
Link-urile de descărcare pentru biblioteci sunt în PDF, disponibil chiar mai jos.
Pasul 6: Cod sursă
Vom începe prin a defini bibliotecile și constantele pe care le vom folosi în timpul codului nostru.
#include // Biblioteca pentru I2C # include // Biblioteca pentru comunicație com o sensor #include // Biblioteca pentru proprie grafice #include // Biblioteca pentru comunicație cu dipsplay OLED // pinagem pentru o NodeMCU ESP8266 #define sclk D5 #define mosi D7 #define cs D8 #define rst D3 #define dc D4 // definição das cores that serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF // definição da coordenada onde escreveremos cada um dos dados #define POS_X_AMBIENTE 2 #define POS_Y_AMBIENTE 35 #define 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor do object for comunicar com o display OLED Adafruit_SSD1331 display = Adafruit_SSD1331 (cs, dc, mosi, sclk, rst); // objeto responsável pela comunicação com o sensor infravermelho IRTherm sensor; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;
Înființat
În funcția setup (), vom inițializa obiectul nostru de comunicare cu senzorul, precum și obiectul de comunicare cu afișajul. Iată câteva setări pentru fiecare dintre ele.
void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Selectează temperatura în Celsius sensor.setUnit (TEMP_C); // putem folosi o aplicație TEMP_F pentru Fahrenheit // sau TEMP_K pentru Kelvin // inițializați obiectul pentru comunicare cu o afișare OLED display.begin (); // pinta a tela toată de aproape display.fillScreen (BLACK); // configura o tamnaho do text that escreveremos em tela display.setTextSize (0); // configura a cor branca pentru o text display.setTextColor (WHITE); // os comandos abaixo posicionam o cursor no (x, y) desejado para a seguir escrevermos em tela display.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); // simbol 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}
Buclă
În funcția loop (), să citim datele senzorului și apoi să le afișăm pe afișajul OLED.
// chamamos o método "read" do sensor para realizar a leitura da temperatura // read returnará 1 caso consiga realizate 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 object apontado pelo sensor tempObjeto = sensor.object (); // limpa a ariei unde plasăm o valoare de temperatură a mediului și a obiectului display.fillRect (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect (POS_X_OBJETO + 35, POS_Y_OBJETO, 35, 10, BLACK); // posiciona o cursor e escreve a temperatura ambiente display.setCursor (POS_X_AMBIENTE + 35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // simbol de graus // posiciona o cursor e escreve a temperature do objecteto that o sensor está apontando display.setCursor (POS_X_OBJETO + 35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbol de graus} delay (1000); // intervalo de 1 segundo para a próxima leitura}
Recomandat:
Senzor de zaruri cu infraroșu: 5 pași
Senzor de zaruri cu infraroșu: Numele meu este Calvin și vă voi arăta cum să realizați un senzor de zaruri cu infraroșu și să explic cum funcționează. În prezent sunt student la Universitatea Taylor care studiază ingineria computerelor și echipa mea și mi s-a cerut să proiectez și să construiți un mecanism care pot sorta orice
Raspberry Pi - TMP007 Tutorial Python cu senzor termopil infraroșu: 4 pași
Raspberry Pi - Tutorial Python cu senzor termopile cu infraroșu TMP007: TMP007 este un senzor termopil cu infraroșu care măsoară temperatura unui obiect fără a fi în contact cu acesta. Energia infraroșie emisă de obiect în câmpul senzorului este absorbită de termopilul integrat în senzor. Termopilul
Raspberry Pi - TMP007 Senzor termopile cu infraroșu Tutorial Java: 4 pași
Raspberry Pi - Senzor de termopile cu infraroșu TMP007 Tutorial Java: TMP007 este un senzor de termopile cu infraroșu care măsoară temperatura unui obiect fără a fi în contact cu acesta. Energia infraroșie emisă de obiect în câmpul senzorului este absorbită de termopilul integrat în senzor. Termopilul
Adafruit SI1145 Senzor UV / lumină vizibilă / infraroșu - Arduino și LCD: 4 pași
Senzor UV / lumină vizibilă / infraroșu Adafruit SI1145 - Arduino și LCD: Acest proiect folosește un senzor UV Adafruit SI1145 / lumină vizibilă / infraroșu pentru a calcula calificarea UV curentă. UV nu este detectat direct. Mai degrabă, este calculat ca o funcție a luminii vizibile și a citirilor în infraroșu. Când l-am testat afară, a
Senzor de proximitate infraroșu folosind LM358: 5 pași
Senzor de proximitate infraroșu folosind LM358: Acesta este un instructiv despre realizarea unui senzor de proximitate IR