Мазмуну:

LCD дисплейи бар ESP8266 санариптик термометр: 7 кадам
LCD дисплейи бар ESP8266 санариптик термометр: 7 кадам

Video: LCD дисплейи бар ESP8266 санариптик термометр: 7 кадам

Video: LCD дисплейи бар ESP8266 санариптик термометр: 7 кадам
Video: 4 inch round tft lcd display module 2024, Июль
Anonim
Image
Image
LCD графикалык модулу 128x128 RGB TFT ILI 9163C
LCD графикалык модулу 128x128 RGB TFT ILI 9163C

Бүгүн мен ESP8266 NodeMCU боюнча TFT ЖК дисплейин кантип колдонууну көрсөтөм, бул реалдуу убакытта температура жана нымдуулук маалыматын көрсөтүү үчүн. Мен температураны жана нымдуулукту өлчөөчү DHT22 менен дисплейди колдонуунун мисалын келтирем. Бул видеодо, тактап айтканда, мен санарип термометрибиз үчүн чакан дисплейди колдоном, ал графикалык жана системанын өзүндө байкоо жүргүзүүгө мүмкүндүк берет. Бүгүнкү күндүн максаты - ESP8266 аркылуу суюк кристаллдык дисплей менен иштөө жөнүндө билүү.

1 -кадам: LCD Graphic Module 128x128 RGB TFT ILI 9163C

Бул долбоордо биз колдонгон дисплей 128x128 пиксел. 0, 0 жогорку сол бурчта жана бул моделдин текстти басып чыгаруу жана графикалык басып чыгаруу функциялары бар, алар менен кийинчерээк алектенебиз.

2 -кадам: Нымдуулук жана температура сенсору AM2302 DHT22

Нымдуулук жана температура сенсору AM2302 DHT22
Нымдуулук жана температура сенсору AM2302 DHT22

Биз AM2302 DHT22ди ассамблеябызда колдонобуз, бул мага абдан жаккан сенсор, анткени ал абдан так.

3 -кадам: Circuit

Circuit
Circuit

Долбоордо бизде ESP8266 бар, ал буга чейин программаланган жана USB кубатын колдонот. DHT22 ЖК дисплейин башкаруучу ESP8266 маалыматына жана тартылуу каршылыгына туташкан.

4 -кадам: Ассамблея

Ассамблея
Ассамблея

Бул жерде NodeMCU, сенсор жана дисплейди көрсөткөн биздин жыйындын электр схемасы бар. Эсиңизде болсун, бул i2c сериялык дисплейи, анткени аны колдонуу дагы оңураак, анткени анда дагы казыктар бар.

5 -кадам: Китепкана

Китепкана
Китепкана
Китепкана
Китепкана

Биз дисплейди Arduino C тили менен программалай тургандыктан, бизге DHT22 китепканасы, ошондой эле ЖК керек.

Биринчиден, нымдуулук жана температура сенсору менен байланышуу үчүн төмөнкү "DHT сенсор китепканасы" китепканасын кошуңуз.

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

Эми, төмөнкү китепкананы кошуңуз, "Adafruit-GFX-Library-master".

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

Ошондой эле, LCD графикалык модулу менен байланыш үчүн "TFT_ILI9163C" китепканасын кошуңуз.

Шилтемеге кирүү (((((((https://github.com/sumotoy/TFT_ILI9163C)))))) жана китепкананы жүктөп алыңыз.

Файлды ачып, Arduino IDEнин китепканалар папкасына чаптаңыз.

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

6 -кадам: Код

Алгач биздин коддо колдонула турган китепканаларды кошолу.

#кошуу // коммюникерди иштетүү үчүн ЖК#камтыйт // камтыйт

Аныктамалар

Биз төмөндө программа учурунда колдонула турган өзгөрмөлөрдү жана объекттердин мисалын көрөбүз.

#DHTPIN D6'ди аныктоо // DHT22 сенсорун аныктоо#DHTTYPE DHT22 аныктоо // DHT22 сенсордун жардамы менен сенсорду колдонуу (маанилүү куруучу) DHT dht (DHTPIN, DHTTYPE); // Конструктор сенсорлорго комментарийлерди тапшырат // Түс аныктамалары #КАРА 0x0000 аныктоо #КӨК 0x001F #КЫЗЫЛ 0xF800 #аныктоо ЖАШЫЛ 0x07E0 #define CYAN 0x07FF #FinFineFEFFEFEFEFEFFEFFEFFEFFOFFOFFOFFOFFOFFOFFOFFOFFOFFOFFOFSFFFYYFY _CS D1 // pine que conectaremos же CS кылыңыз LCDди аныктоо #Decine _DC D4 // pure que conectaremos or RS módulo LCD TFT_ILI9163C display = TFT_ILI9163C (_ CS, _DC); // конструктор ЖК менен байланыш түзүү үчүн

Жайгашуу

Setup () функциясында биз нымдуулук сенсору жана температурасы менен байланыш үчүн жооптуу "dht" өзгөрмөсүн баштайбыз. Ошондой эле ЖК модулу менен байланышуу үчүн колдонулган "дисплей" өзгөрмөсүн баштайбыз.

Биз ошондой эле экранда сүрөт тарта баштоо үчүн объектти конфигурациялайбыз.

void setup (void) {dht.begin (); // сенсордук дисплейдеги комментарийлерди баштоо.begin (); // ЖК дисплейи менен байланышуу үчүн. // лимфа жана тела, removendo todos os desenhos display.fillScreen (КАРА); // дисплейде алдын ала көрсөтүү.setTextSize (2); // конфигурация же текст жазуу 2 Display.setTextColor (GREEN); // texto como verde display.setCursor (5, 10); // posiciona or cursor para começar to a partcrace a partir do (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona o cursor display.print ("UMIDADE"); // экранда тела display.setTextColor (АК); // конфигурация текстти комо бранко (бир бөлүгү да) кечиктирүү (1000); // эспера де 1 сегмента}

Loop

Цикл () функциясында сенсор тарабынан окулган жана экранда белгилүү бир жерге коюлган нымдуулукту жана температураны алабыз. Ар бир 5 секунд аралыкта, маани сенсордон окулат жана экранда жазылат.

void loop () {int h = dht.readHumidity (); // сенсор int t = dht.readTemperature (); // сенсорлордун температурасы // сенсор катары "толтуруу" функциясын колдонсоңуз болот, ал эми "толтурууRect" деген сөздүн мааниси, жергиликтүү убакытта жана температурада, апагаремосто же баалуу шарттарда. display.fillRect (5, 32, 120, 20, BLACK); // fillRect (x, y, туурасы, бийиктиги, түсү); display.fillRect (5, 92, 120, 20, КАРА); display.setCursor (40, 35); // reposiciona o cursor para escrever display.print (t); // телевидениенин температурасын сактоо.чап ((char) 247); // escreve o símbolo de grau ° através de código display.print ("C"); // coloca o “C” үчүн Celcius display.setCursor (40, 95); // reposiciona o cursor para escrever display.print (h); // телекөрсөтүүнүн.print ("%") үмүтүн үзбөңүз; // кечигүү үчүн "кечигүү" мөөнөтүн кечеңдетүү (5000); }

7 -кадам: Кээ бир башка кызыктуу функциялар

// Экрандын мазмунун бурат (0, 1, 2 же 3 параметрлери)

display.setRotation (uint8_t);

// Дисплейдин түстөрүн тескери бурат (терс кылат)

display.invertDisplay (логикалык);

// (x, y) абалында экранда бир пикселди тартат

display.drawPixel (x, y, color);

// Вертикаль сызыкты позициясына тартат

display.drawFastVLine (x, y, туурасы, түсү);

// Көрсөтүлгөн позицияда вертикалдуу сызык тартат

display.drawFastHLine (x, y, туурасы, түсү);

// Көрсөтүлгөн позицияда горизонталдык сызык тартат

display.drawRect (x, y, туурасы, бийиктиги, түсү);

// Көрсөтүлгөн позицияга тегерек тартат

display.drawCircle (x, y, radius, color);

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