Мазмұны:

LCD дисплейі бар ESP8266 цифрлық термометрі: 7 қадам
LCD дисплейі бар ESP8266 цифрлық термометрі: 7 қадам

Бейне: LCD дисплейі бар ESP8266 цифрлық термометрі: 7 қадам

Бейне: LCD дисплейі бар ESP8266 цифрлық термометрі: 7 қадам
Бейне: #5 Жидкокристаллический дисплей I2C || ESP8266 FLPROG ЛЕСТНИЧНАЯ ЛОГИКА 2024, Қараша
Anonim
Image
Image
СКД графикалық модулі 128x128 RGB TFT ILI 9163C
СКД графикалық модулі 128x128 RGB TFT ILI 9163C

Бүгін мен сізге нақты уақыттағы орта үшін температура мен ылғалдылық туралы ақпаратты көрсету үшін ESP8266 NodeMCU дисплейіндегі TFT LCD дисплейін қалай қолдану керектігін көрсетемін. Мен температураны және ылғалдылықты өлшейтін DHT22 дисплейін қолданудың мысалын келтіремін. Бұл бейнеде мен, атап айтқанда, біздің цифрлық термометр үшін жинақы дисплейді қолданамын, ол графикалық және жүйенің өзін бақылауға мүмкіндік береді. Бүгінгі күннің мақсаты - ESP8266 көмегімен сұйық кристалды дисплеймен жұмыс жасауды үйрену.

1 -қадам: СКД графикалық модулі 128x128 RGB TFT ILI 9163C

Біз бұл жобада қолданатын дисплей 128x128 пиксель. 0, 0 жоғарғы сол жақ бұрышта орналасқан және бұл модельде мәтінді басып шығару және графикалық басып шығару функциялары бар, олармен кейінірек айналысамыз.

2 -қадам: Ылғалдылық пен температура сенсоры AM2302 DHT22

Ылғалдылық пен температура сенсоры AM2302 DHT22
Ылғалдылық пен температура сенсоры AM2302 DHT22

Біз өз жинағымызда AM2302 DHT22 қолданамыз, бұл сенсор, маған өте ұнайды, себебі бұл өте дәл.

3 -қадам: Схема

Схема
Схема

Жобада бізде ESP8266 бар, ол қазірдің өзінде бағдарламаланған және USB қуатын қолданады. DHT22 СКД дисплейін басқаратын ESP8266 деректеріне және тартылатын резисторға қосылған.

4 -қадам: құрастыру

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

Мұнда NodeMCU, сенсор мен дисплейді көрсететін біздің құрастырудың электрлік схемасы бар. Есіңізде болсын, бұл i2c сериялық дисплейі, оны пайдалану оңай, себебі оның түйреуіштері көп.

5 -қадам: Кітапхана

Кітапхана
Кітапхана
Кітапхана
Кітапхана

Біз дисплейді Arduino C тілінде бағдарламалайтын болғандықтан, бізге DHT22 кітапханасы, сонымен қатар СКД қажет.

Алдымен ылғалдылық пен температура сенсорымен байланысу үшін келесі «DHT сенсорлық кітапханасы» кітапханасын қосыңыз.

«Эскиз >> кітапханаларды қосу >> кітапханаларды басқару …» бөліміне кіріңіз.

Енді келесі кітапхананы қосыңыз, «Adafruit-GFX-Library-master».

«Эскиз >> кітапханаларды қосу >> кітапханаларды басқару …» бөліміне кіріңіз.

Сондай -ақ, СКД графикалық модулімен байланыс үшін «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 #анықтаңыз CYAN 0x07FF #defineFEFFEFEFEFOFEFOFFOFFOFO _CS D1 анықтаңыз // ДК -ді анықтаңыз #LCD -ді анықтаңыз _DC D4 анықтаңыз // RS -ті байланыстыратын LCD TFT_ILI9163C дисплейі = TFT_ILI9163C (_ CS, _DC); // СКД немесе коммуналдық қызметтерді пайдалану үшін құрылтайшы

Орнату

Setup () функциясында біз ылғалдылық сенсоры мен температурамен байланысқа жауап беретін «dht» айнымалысын инициализациялаймыз, сонымен қатар СКД модулімен байланысу үшін қолданылатын «дисплей» айнымалысын инициализациялаймыз.

Біз сондай -ақ объектіні экранда сурет салуды бастайтын етіп конфигурациялаймыз.

void setup (void) {dht.begin (); // сенсорлық дисплейде комментарийлерді енгізу.begin (); // СКД дисплейі.clearScreen () үшін комуникарлық нұсқаулар; // limpa a tela, removendo todos os desenhos display.fillScreen (BLACK); // алдын ала көрсету.setTextSize (2); // мәтіндік немесе конфигурациялық конфигурация 2 display.setTextColor (GREEN); // configo a coro texto como verde display.setCursor (5, 10); // (x, y) display.print («ТЕМПЕРАТУРА») белгісі бойынша курсордың келуі; // escreve em tela display.setCursor (22, 70); // reposiciona o cursor display.print («UMIDADE»); // escreve em tela display.setTextColor (WHITE); // texto como branco (partir de agora) кешігуінің конфигурациясы (1000); // 1 -ші кезеңнің нұсқасы}

Цикл

Цикл () функциясында сенсор оқыған және экранда белгілі бір жерде жазылған ылғалдылық пен температураны шығарамыз. Әр 5 секундтық аралықта мән сенсордан оқылады және экранға жазылады.

void loop () {int h = dht.readHumidity (); // сенсор int t = dht.readTemperature (); // сенсор сенсоры // «fillRect» деген екі нұсқада да, жергілікті желіде де, жергілікті температурада да, температурада да, апартамен де, ең маңыздысы да бар. display.fillRect (5, 32, 120, 20, ҚАРА); // fillRect (x, y, ені, биіктігі, түсі); display.fillRect (5, 92, 120, 20, ҚАРА); display.setCursor (40, 35); // reposiciona o cursor para escrever display.print (t); // escalve a temperatura em tela display.print ((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); // tela display.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, радиусы, түсі);

Ұсынылған: