Table des matières:

Capteur infrarouge avec ESP8266 : 6 étapes
Capteur infrarouge avec ESP8266 : 6 étapes

Vidéo: Capteur infrarouge avec ESP8266 : 6 étapes

Vidéo: Capteur infrarouge avec ESP8266 : 6 étapes
Vidéo: Fabrication d'un capteur connecté à base de ESP8266 et son code serveur 2024, Juillet
Anonim
Image
Image
Wi-Fi ESP8266 NodeMcu ESP-12E
Wi-Fi ESP8266 NodeMcu ESP-12E

Notre objectif cette fois est de créer un programme qui lira la température ambiante de tout objet pointant vers notre capteur. Pour ce faire, nous utiliserons dans ce projet un nodeMCU ESP8266, un capteur infrarouge MLX90614 et un écran OLED 96 , qui affichera les données de température.

Étape 1: Wi-Fi ESP8266 NodeMcu ESP-12E

Étape 2: Capteur infrarouge

Capteur infrarouge
Capteur infrarouge

Le capteur infrarouge MLX90614 utilisé dans cette configuration est en fait un type de caméscope. Il capture des images via le CCD (Charged Coupled Device), un système très similaire à celui utilisé dans les appareils photo numériques. Ainsi, il enregistre la quantité d'infrarouge sortant de l'objet, et avec cette quantité, il calcule la température. C'est très précis.

Étape 3: afficher l'OLED

Affichage OLED
Affichage OLED

Étape 4: Assemblage

Assemblée
Assemblée

C'est un schéma très simple. J'ai un tableau ici qui permet une visualisation facile.

ESP8266 - OLEDD5 - SCL

J7 - ADD

D3 - RES

D4 - CC

D8 - CS

3, 3v - VCC

GND - GND

MLX90614

D1 - SCL

D2 - ADD

3, 3v - VCC

GND - GND

Étape 5: Bibliothèques

Bibliothèques
Bibliothèques
Bibliothèques
Bibliothèques

Pour utiliser l'écran OLED, ajoutez la bibliothèque "Adafruit-GFX-Library-master" suivante.

Accédez simplement à "Esquisse >> Inclure les bibliothèques >> Gérer les bibliothèques …"

Ajoutez également la bibliothèque "Adafruit Unified Sensor" suivante.

Les liens de téléchargement des bibliothèques sont dans le PDF, disponible juste en dessous.

Étape 6: Code source

Nous commencerons par définir les bibliothèques et les constantes que nous utiliserons lors de notre code.

#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 mosi D7 #define #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 dPOSados #define POS_X_AMBIENTE_AMBIENT_E_X 35 #DEFineTO_OBJIENT 2 #define POS_Y_OBJETO 55 #define POS_X_TITULO 10 #define POS_Y_TITULO 4 // construtor do objeto para 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;

Installer

Dans la fonction setup(), nous allons initialiser notre objet de communication avec le capteur, ainsi que l'objet de communication avec l'afficheur. Voici quelques paramètres pour chacun d'eux.

void setup(){ //Inicializa sensor de temperature infravermelho sensor.begin(); //Seleciona temperature em Celsius sensor.setUnit(TEMP_C);//podemos ainda utilizar TEMP_F pour Fahrenheit //ou TEMP_K pour Kelvin //inicializa o objecto para comunicarmos com o display OLED display.begin(); //pinta toda toda de preto display.fillScreen(BLACK); //configura o tamnaho do texto que escreveremos em tela display.setTextSize(0); //configura une cor branca pour le texte display.setTextColor(WHITE); //os commandes abaixo posicionam o curseur no (x, y) desejado para a seguir escrevermos em tela display.setCursor(POS_X_TITULO, POS_Y_TITULO); display.print("TEMPÉRATURE"); display.setCursor(POS_X_TITULO+20, POS_Y_TITULO+15); display.print("("); display.print((char)247); //symbole 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:"); //OBJET }

Boucle

Dans la fonction loop (), lisons les données du capteur, puis affichons-les sur l'écran 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 = capteur.ambient(); //récupérer une leitura da temperatura do objeto apontado pelo sensor tempObjeto = sensor.object(); //lima une zone de collocation ou la valeur de la température ambiante et de l'objet display.fillRect(POS_X_AMBIENTE+35, POS_Y_AMBIENTE, 35, 10, BLACK); display.fillRect(POS_X_OBJETO+35, POS_Y_OBJETO, 35, 10, NOIR); //position du curseur et affichage d'une température ambiante display.setCursor(POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print(tempAmbiente); display.print((char)247); //simbolo de graus //posiciona o curseur et escreve a temperature do objecto que o sensor est apontando display.setCursor(POS_X_OBJETO+35, POS_Y_OBJETO); display.print(tempObjeto); display.print((char)247); //symbole de graus } delay(1000); //intervalo de 1 segundo para a próxima leitura }

Conseillé: