สารบัญ:

ESP8266 เทอร์โมมิเตอร์ดิจิตอลพร้อมจอ LCD: 7 ขั้นตอน
ESP8266 เทอร์โมมิเตอร์ดิจิตอลพร้อมจอ LCD: 7 ขั้นตอน

วีดีโอ: ESP8266 เทอร์โมมิเตอร์ดิจิตอลพร้อมจอ LCD: 7 ขั้นตอน

วีดีโอ: ESP8266 เทอร์โมมิเตอร์ดิจิตอลพร้อมจอ LCD: 7 ขั้นตอน
วีดีโอ: โมดูลแสดงค่าตัวเลข 4 หลัก Node MCU ESP8266 + 7 segment 4-Digit Display TM1637 | Nursery Arduino 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 เชื่อมต่อกับ Data และตัวต้านทานแบบดึงขึ้นกับ ESP8266 ซึ่งควบคุมจอแสดงผล LCD

ขั้นตอนที่ 4: การประกอบ

การประกอบ
การประกอบ

ที่นี่ เรามีไดอะแกรมไฟฟ้าของชุดประกอบ ซึ่งแสดง NodeMCU เซ็นเซอร์ และจอแสดงผล จำไว้ว่านี่คือจอแสดงผลแบบอนุกรม i2c ซึ่งใช้งานง่ายกว่าเพราะมีพินมากกว่า

ขั้นตอนที่ 5: ห้องสมุด

ห้องสมุด
ห้องสมุด
ห้องสมุด
ห้องสมุด

เนื่องจากเราจะตั้งโปรแกรมการแสดงผลด้วยภาษา Arduino C เราจึงต้องการไลบรารี DHT22 เช่นเดียวกับ LCD

ขั้นแรก เพิ่มไลบรารี "ไลบรารีเซ็นเซอร์ DHT" ต่อไปนี้สำหรับการสื่อสารกับเซ็นเซอร์ความชื้นและอุณหภูมิ

เพียงเข้าไปที่ "Sketch >> Include Libraries >> Manage Libraries …"

ตอนนี้ เพิ่มไลบรารีต่อไปนี้ "Adafruit-GFX-Library-master"

เพียงเข้าไปที่ "Sketch >> Include Libraries >> Manage Libraries …"

นอกจากนี้ ให้เพิ่มไลบรารี "TFT_ILI9163C" สำหรับการสื่อสารกับโมดูลกราฟิก LCD

เข้าไปที่ลิงค์ ((((((https://github.com/sumotoy/TFT_ILI9163C)))))) และดาวน์โหลดไลบรารี่

เปิดเครื่องรูดไฟล์และวางลงในโฟลเดอร์ไลบรารีของ Arduino IDE

C: / ไฟล์โปรแกรม (x86) / Arduino / ไลบรารี

ขั้นตอนที่ 6: รหัส

ขั้นแรกให้เพิ่มไลบรารีที่จะใช้ในโค้ดของเรา

#include //utilizada para se comunicar com o módulo LCD#include //utilizada para se comunicar com o เซ็นเซอร์ de umidade e อุณหภูมิ

คำจำกัดความ

เราจะเห็นด้านล่างของตัวแปรที่เราจะใช้ระหว่างโปรแกรมและอินสแตนซ์ของวัตถุ

#define DHTPIN D6 // pino que conectaremos o เซ็นเซอร์ DHT22#define DHTTYPE DHT22 // DHT22 é o tipo do เซ็นเซอร์ que utilizaremos (ตัวสร้างที่สำคัญ) DHT dht (DHTPIN, DHTTYPE); // คอนสตรัคเตอร์ทำ objeto que utilizaremos para se comunicar com o sensor // คำจำกัดความของสี #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define WFFFFF81F #define YELLOW กำหนด _CS D1 // pino que conectaremos o CS do módulo LCD #define _DC D4 // pino que conectaremos o RS สำหรับโมดูล LCD TFT_ILI9163C display = TFT_ILI9163C(_CS, _DC); // Constructor do objeto que utilizaremos para se comunicar com o โมดูโล LCD

ติดตั้ง

ในฟังก์ชันการตั้งค่า () เราเริ่มต้นตัวแปร "dht" ซึ่งมีหน้าที่ในการสื่อสารกับเซ็นเซอร์ความชื้นและอุณหภูมิ นอกจากนี้ เราจะเริ่มต้นตัวแปร "การแสดงผล" ที่ใช้ในการสื่อสารกับโมดูล LCD ด้วย

เราจะกำหนดค่าวัตถุให้เริ่มวาดบนหน้าจอด้วย

การตั้งค่าเป็นโมฆะ (เป็นโมฆะ) { dht.begin(); // เริ่มต้นสำหรับ comunicar com o เซ็นเซอร์ display.begin(); // เริ่มต้นสำหรับ comunicar com หรือโมดูล LCD display.clearScreen(); // ลบเป็น tela ลบ todos ระบบปฏิบัติการ desenhos display.fillScreen(BLACK); // pinta a tela toda de preto display.setTextSize(2); // configura o tamanho do texto com o tamanho 2 display.setTextColor (สีเขียว); // กำหนดค่า a cor do texto como verde display.setCursor(5, 10); // posiciona o เคอร์เซอร์ para começar a escrita a partir do (x, y) display.print("TEMPERATUR"); // escreve em tela display.setCursor(22, 70); // reposiciona หรือเคอร์เซอร์ display.print ("UMIDADE"); // escreve em tela display.setTextColor(WHITE); // กำหนดค่า a cor do texto como branco (a partir de agora) ล่าช้า (1000); // espera ของ 1 segundo }

ห่วง

ในฟังก์ชันวนรอบ () เราจะดึงความชื้นและอุณหภูมิที่เซ็นเซอร์อ่านและเขียนไว้บนหน้าจอในตำแหน่งเฉพาะ ในแต่ละช่วงเวลา 5 วินาที ค่าจะถูกอ่านจากเซ็นเซอร์และเขียนบนหน้าจอ

วงเป็นโมฆะ () { int h = dht.readHumidity(); // faz a leitura da umidade do sensor int t = dht.readTemperature(); // faz a leitura da temperatura 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 temperatura, apagaremos o valor atualment para escrualizadodo. display.fillRect (5, 32, 120, 20, สีดำ); // fillRect(x, y, ความกว้าง, ความสูง, สี); display.fillRect (5, 92, 120, 20, สีดำ); display.setCursor(40, 35); // reposiciona หรือเคอร์เซอร์สำหรับ escrever display.print(t); // หลีกเลี่ยงอุณหภูมิ display.print ((ถ่าน) 247); // escreve o símbolo de grau ° através de código display.print("C"); // coloca o “C” สำหรับ indicar que é graus Celcius display.setCursor(40, 95); // reposiciona หรือเคอร์เซอร์สำหรับ escrever display.print(h); // หลีกเลี่ยง umidade em tela display.print("%"); // escreve o símbolo de “porcentagem” สำหรับ 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, รัศมี, สี);

แนะนำ: