Mündəricat:

LCD Ekranlı ESP8266 Rəqəmsal Termometr: 7 addım
LCD Ekranlı ESP8266 Rəqəmsal Termometr: 7 addım

Video: LCD Ekranlı ESP8266 Rəqəmsal Termometr: 7 addım

Video: LCD Ekranlı ESP8266 Rəqəmsal Termometr: 7 addım
Video: ESP Block - ESP 8266 12F + LCD 1602a 2024, Noyabr
Anonim
Image
Image
LCD Qrafik Modulu 128x128 RGB TFT ILI 9163C
LCD Qrafik Modulu 128x128 RGB TFT ILI 9163C

Bu gün sizə ESP8266 NodeMCU-da bir TFT LCD ekranın necə istifadə ediləcəyini göstərəcəyəm. İstilik və rütubət göstəricisi olan DHT22 ilə ekranın istifadəsinə bir nümunə verirəm. Bu videoda, xüsusi olaraq, rəqəmsal termometrimiz üçün qrafik və sistemin özündə izləməyə imkan verən kompakt bir ekran istifadə edirəm. Bu günün məqsədi, ESP8266 istifadə edərək maye kristal ekranın işlənməsini öyrənməkdir.

Addım 1: LCD Qrafik Modulu 128x128 RGB TFT ILI 9163C

Bu layihədə istifadə etdiyimiz ekran 128x128 pikseldir. 0, 0 yuxarı sol küncdədir və bu modeldə həm mətn, həm də qrafik çap funksiyaları var ki, bunları daha sonra müzakirə edəcəyik.

Addım 2: Rütubət və Temperatur Sensoru AM2302 DHT22

Rütubət və Temperatur Sensoru AM2302 DHT22
Rütubət və Temperatur Sensoru AM2302 DHT22

Çox dəqiq olduğu üçün çox bəyəndiyim bir sensor olan AM2302 DHT22 -dən istifadə edəcəyik.

Addım 3: Dövrə

Dövrə
Dövrə

Layihədə, artıq proqramlaşdırılmış və USB gücünü istifadə edən bir ESP8266 var. DHT22, Məlumat və çəkmə müqavimətini LCD ekranı idarə edən ESP8266 ilə əlaqələndirir.

Addım 4: Montaj

Məclis
Məclis

Burada, NodeMCU, sensoru və ekranı göstərən montajımızın elektrik diaqramı var. Unutmayın ki, bu daha çox sancağa malik olduğu üçün istifadəsi daha asan olan i2c seriyalı ekrandır.

Addım 5: Kitabxana

Kitabxana
Kitabxana
Kitabxana
Kitabxana

Ekranı Arduino C dili ilə proqramlaşdıracağımız üçün DHT22 kitabxanasına və LCD -yə ehtiyacımız var.

Əvvəlcə rütubət və temperatur sensoru ilə əlaqə yaratmaq üçün aşağıdakı "DHT sensor kitabxanası" kitabxanasını əlavə edin.

Sadəcə "Sketch >> Kitabxanaları Daxil Et >> Kitabxanaları İdarə et …" bölməsinə daxil olun.

İndi, "Adafruit-GFX-Library-master" kitabxanasını əlavə edin.

Sadəcə "Sketch >> Kitabxanaları Daxil Et >> Kitabxanaları İdarə et …" bölməsinə daxil olun.

Ayrıca, LCD qrafik modulu ilə əlaqə üçün "TFT_ILI9163C" kitabxanasını əlavə edin.

Linkə daxil olun ((((((((https://github.com/sumotoy/TFT_ILI9163C))))))) və kitabxananı yükləyin.

Faylı açın və Arduino IDE kitabxana qovluğuna yapışdırın.

C: / Proqram Faylları (x86) / Arduino / kitabxanaları

Addım 6: Kod

Əvvəlcə kodumuzda istifadə ediləcək kitabxanaları əlavə edək.

#Daxil edin /komunikasiya etmək üçün LCD -ni istifadə edin#daxildir // komunikatorun istiliyi və istiliyi üçün istifadə edin

Təriflər

Proqram zamanı istifadə edəcəyimiz dəyişənləri və obyektlərin nümunəsini aşağıda görəcəyik.

#DHTPIN D6 təyin edin // DHT22 sensoru yoxlayın#DHTTYPE DHT22 təyin edin // DHT22 və ya sensoru istifadə edin (qurucu üçün vacib) DHT dht (DHTPIN, DHTTYPE); // konstruktor, komunik və ya sensorlar üçün // rəng anlayışları #QARA 0x0000 #MAVİ təyin 0x001F #QIRMIZI 0xF800 təyin et #YEŞİL 0x07E0 #Cefan 0x07FF #DefineFineFEFFEFFEFFE _CS D1 müəyyən etmək // LCD ekranını təyin etmək #Decine _DC D4 // müəyyən etmək üçün LCD ekran TFT_ILI9163C ekran = TFT_ILI9163C (_ CS, _DC); // LCD qurmaq üçün istifadəçi ilə əlaqə qurun

Qurmaq

Setup () funksiyasında rütubət sensoru və temperaturla ünsiyyətdən məsul olan "dht" dəyişənini işə salırıq. Həmçinin LCD modulu ilə əlaqə yaratmaq üçün istifadə olunan "ekran" dəyişənini işə salacağıq.

Ekranda rəsm çəkmək üçün obyekti də konfiqurasiya edəcəyik.

void setup (void) {dht.begin (); // sensorun göstərilməsi ilə əlaqədar məlumatların göstərilməsi.begin (); // LCD displey və ya LCD ekran üçün rəsmi məlumatları təmizləyin. Screen (); // məhdudlaşdırma, removendo todos os desenhos display.fillScreen (SİYAH); // əvvəlcədən göstərmək üçün bir şey tapın. setTextSize (2); // mətn yazmaq və ya yazmaq üçün 2 display.setTextColor (YAŞIL); // konfiqurasiya etmək üçün ekran görüntüsü.setCursor (5, 10); // işarəsi və ya işarəsi (x, y) display.print ("TEMPERATUR"); // escreve em tela display.setCursor (22, 70); // reposiciona və ya kursor display.print ("UMIDADE"); // tela display.setTextColor (BEYAZ); // gecikmə (1000) gecikdirmək üçün bir mətn yazmaq üçün konfiqurasiya; // espera de segundo}

Döngə

Döngü () funksiyasında, sensor tərəfindən oxunan və müəyyən bir yerdə ekranda yazılan rütubəti və temperaturu alacağıq. Hər 5 saniyəlik fasilədə dəyər sensordan oxunur və ekranda yazılır.

void loop () {int h = dht.readHumidity (); // sensorlar int t = dht.readTemperature (); // sensoru yoxlamaqla // "fillRect" funksiyasını yerinə yetirmək üçün iki əsas funksiyanı yerinə yetirmək lazımdır, bu da yerli və ya yerli temperaturun hər hansı bir hissəsini yoxlamaq üçün çox vacibdir. display.fillRect (5, 32, 120, 20, SİYAH); // fillRect (x, y, en, boy, rəng); display.fillRect (5, 92, 120, 20, SİYAH); display.setCursor (40, 35); // reposiciona və ya kursor üçün escrever display.print (t); // tela display.print ((char) 247); // craigo ekranını çıxarmaq üçün ekran.print ("C"); // "C" işarəsi Celcius display.setCursor (40, 95); // reposiciona və ya kursor üçün escrever display.print (h); // tela display.print ("%") bir ümiddən qaçın; // bir gecikmə gecikməsi (5000); }

Addım 7: Bəzi digər maraqlı funksiyalar

// Ekranın məzmununu döndərir (parametrlər 0, 1, 2 və ya 3)

display.setRotation (uint8_t);

// Ekran rənglərini geri çevirir (mənfi edir)

display.invertDisplay (boolean);

// (x, y) mövqeyində ekranda tək piksel çəkir

display.drawPixel (x, y, rəng);

// Mövqeyində şaquli bir xətt çəkir

display.drawFastVLine (x, y, en, rəng);

// Göstərilən mövqedə şaquli xətt çəkir

display.drawFastHLine (x, y, en, rəng);

// Göstərilən mövqedə üfüqi bir xətt çəkir

display.drawRect (x, y, en, boy, rəng);

// Göstərilən mövqedə bir dairə çəkir

display.drawCircle (x, y, radius, rəng);

Tövsiyə: