Съдържание:

Инфрачервен сензор с ESP8266: 6 стъпки
Инфрачервен сензор с ESP8266: 6 стъпки

Видео: Инфрачервен сензор с ESP8266: 6 стъпки

Видео: Инфрачервен сензор с ESP8266: 6 стъпки
Видео: How to get 5V from 18650 Lithium Battery Powering Arduino ESP32 ESP8266 or charge your phone 2024, Ноември
Anonim
Image
Image
WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Нашата цел този път е да създадем програма, която да отчита температурата на околната среда на всеки обект, насочен към нашия сензор. За да направим това, ще използваме в този проект ESP8266 възел MCU, инфрачервен сензор MLX90614 и 96 -инчов OLED дисплей, който ще показва температурните данни.

Стъпка 1: WiFi ESP8266 NodeMcu ESP-12E

Стъпка 2: Инфрачервен сензор

Инфрачервен сензор
Инфрачервен сензор

Инфрачервеният сензор MLX90614, използван в тази настройка, всъщност е вид видеокамера. Той заснема изображения чрез CCD (Charged Coupled Device), система, много подобна на тази, използвана при цифровите фотоапарати. По този начин той записва количеството инфрачервена светлина, излизаща от обекта, и с това количество изчислява температурата. Много е прецизно.

Стъпка 3: Покажете OLED

Дисплей OLED
Дисплей OLED

Стъпка 4: Монтаж

Монтаж
Монтаж

Това е много проста схема. Тук имам таблица, която позволява лесна визуализация.

ESP8266 - OLEDD5 - SCL

D7 - SDA

D3 - ВЕИ

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: Изходен код

Ще започнем с дефиниране на библиотеките и константи, които ще използваме по време на нашия код.

#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 // дефинирам das ядра que serão utilizadas #дефинирам ЧЕРЕН 0x0000 #дефинирам БЯЛ 0xFFFF // дефинирам da coordenada onde escreveremos cada um dos dados #define POS_X_BAM_POS_E_BAM_POS_E_BY 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) // обективен реагиращ комуникационен сензор за инфрачервен IR IR сензор; // variáveis que armazenarão o valor das temperaturas lidas float tempAmbiente; float tempObjeto;

Настройвам

Във функцията setup () ще инициализираме нашия обект на комуникация със сензора, както и обекта на комуникация с дисплея. Ето някои настройки за всяка от тях.

void setup () {// Inicializa сензор за температура infravermelho sensor.begin (); // Избор на температура em Celsius sensor.setUnit (TEMP_C); // настройка за използване на TEMP_F по Фаренхайт // ou TEMP_K за Келвин // инициализиране на обект за комуникация на дисплея OLED display.begin (); // pinta a tela toda de preto display.fillScreen (ЧЕРЕН); // конфигуриране на текстово съобщение за текстови съобщения за показване на тела.setTextSize (0); // конфигуриране на cor branca за texto display.setTextColor (БЯЛ); // 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); // 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 () нека прочетем данните от сензора и след това да ги покажем на OLED дисплея.

// chamamos o método "read" do sensor para realizar a leitura da temperature // read retornará 1 caso consiga realizar a leitura, ou 0 caso contrário if (sensor.read ()) {// възстановяване на leitura да температура до ambiente tempAmbiente = sensor.ambient (); // възстановяване на температурата до температура до обект апонтадо пело сензор tempObjeto = sensor.object (); // limpa a área onde colocamos o valor da temperature 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, ЧЕРЕН); // позициониране на курсора и извикване на температурен амбиентен дисплей.setCursor (POS_X_AMBIENTE+35, POS_Y_AMBIENTE); display.print (tempAmbiente); display.print ((char) 247); // символо де граус // позициониране на курсора и повишаване на температурата до обекта que на сензора está apontando display.setCursor (POS_X_OBJETO+35, POS_Y_OBJETO); display.print (tempObjeto); display.print ((char) 247); // simbolo de graus} забавяне (1000); // интервало за 1 segundo para a próxima leitura}

Препоръчано: