Съдържание:

ESP8266 Цифров термометър с LCD дисплей: 7 стъпки
ESP8266 Цифров термометър с LCD дисплей: 7 стъпки

Видео: ESP8266 Цифров термометър с LCD дисплей: 7 стъпки

Видео: ESP8266 Цифров термометър с LCD дисплей: 7 стъпки
Видео: 7 Segment lcd 2024, Ноември
Anonim
Image
Image
LCD графичен модул 128x128 RGB TFT ILI 9163C
LCD графичен модул 128x128 RGB TFT ILI 9163C

Днес ще ви покажа как да използвате TFT LCD дисплей на ESP8266 NodeMCU за показване на данни за температурата и влажността за дадена среда в реално време. Давам пример за използване на дисплея с DHT22, който е манометър за температура и влажност. В този видеоклип по -специално използвам компактен дисплей за нашия цифров термометър, който е графичен и позволява мониторинг на самата система. Следователно целта на днешния ден е да научим за работата с дисплея с течни кристали, използвайки ESP8266.

Стъпка 1: LCD графичен модул 128x128 RGB TFT ILI 9163C

Дисплеят, който използваме в този проект, е 128x128 пиксела. 0, 0 е в горния ляв ъгъл и този модел има функции за печат на текст и графичен печат, с които ще се занимаваме по-късно.

Стъпка 2: Сензор за влажност и температура AM2302 DHT22

Сензор за влажност и температура AM2302 DHT22
Сензор за влажност и температура AM2302 DHT22

Ще използваме AM2302 DHT22 в нашия монтаж, който е сензор, който много ми харесва, тъй като е много прецизен.

Стъпка 3: Схема

Верига
Верига

В проекта имаме ESP8266, който вече е програмиран и използва USB захранването. DHT22 е свързан към данните, а издърпващият резистор към ESP8266, който контролира LCD дисплея.

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

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

Тук имаме електрическата диаграма на нашия монтаж, която показва NodeMCU, сензора и дисплея. Не забравяйте, че това е сериен дисплей, i2c, който е по -лесен за използване, тъй като има повече пинове.

Стъпка 5: Библиотека

Библиотека
Библиотека
Библиотека
Библиотека

Тъй като ще програмираме дисплея с език Arduino C, имаме нужда от библиотеката DHT22, както и от LCD.

Първо добавете следната библиотека „DHT sensor library“за комуникация със сензора за влажност и температура.

Просто влезте в „Скица >> Включване на библиотеки >> Управление на библиотеки…“

Сега добавете следната библиотека „Adafruit-GFX-Library-master“.

Просто влезте в „Скица >> Включване на библиотеки >> Управление на библиотеки…“

Също така добавете библиотеката "TFT_ILI9163C" за комуникация с LCD графичния модул.

Достъп до връзката ((((((((https://github.com/sumotoy/TFT_ILI9163C))))) и изтеглете библиотеката.

Разархивирайте файла и го поставете в папката библиотеки на Arduino IDE.

C: / Програмни файлове (x86) / Arduino / библиотеки

Стъпка 6: Код

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

#include // използвайте para se comunicar com o módulo LCD#include // utilizada para se comunicar com o сензор de umidade e температура

Определения

По -долу ще видим променливите, които ще използваме по време на програмата, и екземпляра на обектите.

#дефинирайте DHTPIN D6 // pino que conectaremos или сензор DHT22#дефинирайте DHTTYPE DHT22 // DHT22 е това как да използвате сензора за използване (важен параметър или конструктор) DHT dht (DHTPIN, DHTTYPE); // конструкторът прави обект, който използва използването на комуникационен сензор за сензори // Определения на цветовете #дефинирайте ЧЕРЕН 0x0000 #дефинирайте СИН 0x001F #дефинирайте ЧЕРВЕН 0xF800 #дефинирайте ЗЕЛЕН 0x07E0 #дефинирайте CYAN 0x07FF #дефинирайте MAGENTA 0xF81FEFEFEFEFE #FEFEFEFEF # дефинирайте _CS D1 // pino que conectaremos o CS за модул LCD #define _DC D4 // pino que conectaremos o RS за módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // конструкторът прави обект, който използва уреда за комуникационния комуникационен LCD дисплей

Настройвам

Във функцията setup () инициализираме променливата "dht", която е отговорна за комуникацията със сензора за влажност и температура. Също така ще инициализираме променливата "display", която се използва за комуникация с LCD модула.

Също така ще конфигурираме обекта да започне да рисува на екрана.

void setup (void) {dht.begin (); // inicialização para se comunicar com o сензор дисплей.begin (); // inicialização para se comunicar com o módulo LCD display.clearScreen (); // Limpa a tela, removendo todos os desenhos display.fillScreen (ЧЕРЕН); // pinta a tela toda de preto display.setTextSize (2); // конфигуриране на таманхо за текстово ком за таманхо 2 display.setTextColor (ЗЕЛЕН); // конфигуриране на cor do texto como verde display.setCursor (5, 10); // позициониране на курсора, за да дойдете и да излезете на част (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // репозиция или курсор display.print ("UMIDADE"); // escreve em tela display.setTextColor (БЯЛ); // конфигурация a cor do texto como branco (a partir de agora) забавяне (1000); // espera de 1 segundo}

Цикъл

Във функцията loop () ще извлечем влажността и температурите, прочетени от сензора и записани на екрана на конкретното място. На всеки интервал от 5 секунди стойността се отчита от сензора и се записва на екрана.

void loop () {int h = dht.readHumidity (); // faz a leitura da umidade do sensor int t = dht.readTemperature (); // faz a leitura da temperature do sensor // as 2 linhas seguintes utilizando o método “fillRect”, são para fazer a limpeza do local onde escreveremos a umidade e a temperature, apagaremos o valor atual para escrever novamente atualizado. display.fillRect (5, 32, 120, 20, ЧЕРЕН); // fillRect (x, y, ширина, височина, цвят); display.fillRect (5, 92, 120, 20, ЧЕРЕН); display.setCursor (40, 35); // репозиция или курсор за показване на дисплея.print (t); // ескревирайте температурата em tela display.print ((char) 247); // escreve o símbolo de grau ° através de código display.print ("C"); // coloca o “C” para indicar que é graus Celcius display.setCursor (40, 95); // репозиция или курсор за показване на дисплея.принт (h); // ескривиране на umidade em tela display.print ("%"); // escreve o símbolo de “porcentagem” para indicar a umidade delay (5000); }

Стъпка 7: Някои други интересни функции

// Завърта съдържанието на екрана (параметри 0, 1, 2 или 3)

display.setRotation (uint8_t);

// Обръща цветовете на дисплея (прави отрицателен)

display.invertDisplay (булев);

// Изчертава един пиксел на екрана в позиция (x, y)

display.drawPixel (x, y, цвят);

// Изчертава вертикална линия в позиция

display.drawFastVLine (x, y, ширина, цвят);

// Изчертава вертикална линия в определената позиция

display.drawFastHLine (x, y, ширина, цвят);

// Изчертава хоризонтална линия на определената позиция

display.drawRect (x, y, ширина, височина, цвят);

// Начертава кръг на определената позиция

display.drawCircle (x, y, радиус, цвят);

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