Мазмуну:

Infrared сенсор ESP8266 менен: 6 кадам
Infrared сенсор ESP8266 менен: 6 кадам

Video: Infrared сенсор ESP8266 менен: 6 кадам

Video: Infrared сенсор ESP8266 менен: 6 кадам
Video: Как запрограммировать модуль реле Wi-Fi ESP8266 ESP-01 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 -кадам: Infrared сенсор

Инфракызыл сенсор
Инфракызыл сенсор

Бул орнотууда колдонулган MLX90614 инфракызыл сенсор чындыгында видеокамеранын бир түрү. Сүрөттөрдү CCD (Заряддалган кошулган түзмөк) аркылуу түшүрөт, бул дагы санарип камераларда колдонулган системага абдан окшош. Ошентип, ал объекттен чыккан инфракызылдын көлөмүн жазат жана бул сумма менен температураны эсептейт. Бул абдан так.

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" китепканасын кошуңуз.

Жөн гана "Эскиз >> Китепканаларды кошуу >> Китепканаларды башкаруу…" кирүү

Ошондой эле, төмөнкү "Adafruit Unified Sensor" китепканасын кошуңуз.

Китепканалар үчүн жүктөө шилтемелери PDFте, төмөндө жеткиликтүү.

6 -кадам: Булак коду

Биз кодубуз учурунда колдонула турган китепканаларды жана константаларды аныктоодон баштайбыз.

#кошуу // Biblioteca para I2C #камтыйт // камтыйт // Biblioteca comunicação com o sensor #include // Biblioteca for propriedades gráficas #include // Biblioteca comunicação com dipsplay OLED // pinagem para o NodeMCu ESP8lk6 DSP8266 # #desfine cs D8 #define rst D3 #define dc D4 // definição das cores que serão utilizadas #define BLACK 0x0000 #define WHITE 0xFFFF // definção da coordenada on escreveremos cada um dos dados #FOFIFFinOFEFine_Pef_OFEFine_Pef_OfFin_OfFin_OfFin_OfFin_OnFine 2 #аныктоо POS_Y_OBJETO 55 #аныктоо POS_X_TITULO 10 #аныктоо POS_Y_TITULO 4 // конструктор OLED Adafruit_SSD1331 дисплей = Adafruit_SSD1331 (cs, dc, rosi, sci; // IRTherm сенсорунун информациясына жооп берүү; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Жайгашуу

Setup () функциясында биз сенсор менен байланыш объектибизди, ошондой эле дисплей менен байланыш объектисин баштайбыз. Бул жерде алардын ар бири үчүн кээ бир орнотуулар бар.

void setup () {// Inicializa sensor de temperatura infravermelho sensor.begin (); // Celsius sensor.setUnit (TEMP_C); // pinta a tela toda де preto display.fillScreen (КАРА); // конфигурациялоо үчүн дисктин дисплейине жазуу керек.setTextSize (0); // конфигурация же текстти көрсөтүү.setTextColor (АК); // os comandos abaixo posicionam o cursor no (x, y) дисплей.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 () функциясында сенсордун маалыматын окуп, анан OLED дисплейинде көрсөтөлү.

// сенсорлорду "окугула", сенсорлорду же температураны колдонуңуз // окуп чыгыңыз, эгерде сиз өзүңүздү карасаңыз, анда (sensor.read ()) {// recupera a leitura da temperatura ambiente tempAmbiente = sensor.ambient (); // температура жана темпратура боюнча сенсор tempObjeto = sensor.object (); // Limpa a area onde colocamos on valor da temperatura do do dispecte to 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, 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); // симболо // курсор же сенсордун жардамы менен температураны көтөрүү Display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} кечигүү (1000); // интервалдын 1 -пункту

Сунушталууда: