Professional Documents
Culture Documents
Hà Nội - 2023
MỤC LỤC
DANH MỤC HÌNH ẢNH..................................................................................................4
LỜI MỞ ĐẦU .....................................................................................................................5
CHƯƠNG I: CẤU TẠO, CHỨC NĂNG VÀ NGUYÊN TẮC HOẶT ĐỘNG CỦA
CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH ..............................................................6
1. KIT ESP32 WROOM 32U..............................................................................6
1.2 Cấu tạo và nguyên tắc hoạt động ...............................................................6
1.3 Thông số kỹ thuật........................................................................................7
1.4 Sơ đồ chân ...................................................................................................8
2. Giới thiệu về LCD 20x4.................................................................................12
2.1 Thông số kỹ thuật......................................................................................13
2.2 Sơ đồ chân LCD 20x4 ...............................................................................13
3. DHT11 ...........................................................................................................14
3.1 Giới thiệu DHT11 .....................................................................................14
3.2 Cấu tạo cảm biến nhiệt độ độ ẩm DHT11 ...............................................14
3.3 Sơ đồ chân DHT11 ...................................................................................14
3.4 Nguyên lý hoạt động .................................................................................15
3.5 Thông số kĩ thuật ......................................................................................16
4. MQ135 ............................................................................................................16
4.1 Giới thiệu dòng cảm biến MQ .................................................................16
4.2 Nguyên lý hoạt động .................................................................................17
4.3 Thông số kỹ thuật MQ135 ........................................................................17
5. Module chuyển đổi I2C cho LCD 20x4 .......................................................18
5.1 Tính năng ..................................................................................................18
5.2 Thông số kĩ thuật ......................................................................................19
CHƯƠNG II: DỊCH VỤ ĐÁM MÂY ............................................................................20
1. Thingspeak .....................................................................................................20
1.1 Các tính năng quan trọng của Thinkspeak .............................................20
1.2 Phương thức hoạt động thingspeak .........................................................20
2
2 Google Sheets ..................................................................................................21
2.1 Giới thiệu Google Sheets ..........................................................................21
2.2 Các tính năng nổi bật của Google Sheets ................................................21
CHƯƠNG III: CÁC GIAO THỨC SỬ DỤNG TRONG MẠCH ...............................22
1. Giao thức I2C .................................................................................................22
1.1 Khái niệm ..................................................................................................22
1.2 Quá trình truyền nhận dữ liệu .................................................................22
1.3 Các chế độ hoạt động của I2C: ................................................................23
2 Giao thức HTTP ............................................................................................23
2.1 Khái niệm của HTTP ................................................................................23
2.2 Cấu trúc cơ bản của HTTP .....................................................................23
3. Giao thức One – wire ....................................................................................23
3.1 Khái niệm ..................................................................................................23
3.2: Cách thức liên kiết ...................................................................................24
CHƯƠNG IV: THIẾT KẾ LẮP RÁP MẠCH ĐIỆN THỰC TẾ ................................25
1. Sơ đồ khối .......................................................................................................25
2. Sơ đồ nguyên lý ..............................................................................................25
3. Hình ảnh mạch trong thực tế .......................................................................26
4. Kết quả khảo sát thực tế thu được ...............................................................26
4.1 Kết quả trên Thingspeak ...........................................................................27
4.2 Kết quả trên Google Sheets.......................................................................28
5. Đánh giá kết quả ............................................................................................28
6.Code .................................................................................................................29
TÀI LIỆU THAM KHẢO ...............................................................................................33
3
DANH MỤC HÌNH ẢNH
Hình 1. Kit ESP32 WROOM 32U ………………………………………………………..6
Hình 2. chip ESP32-D0WD………………………………………………………… ........7
Hình 3. Sơ đồ chân KIT ESP32 WROOM 32U…………………………………………..8
Hình 4: Hình ảnh LCD 20x4………………………………………………………….......11
Hình 5: Sơ đồ chân DHT11…………………………………………………………........13
Hình 6: Hình ảnh cảm biến MQ135………………………………………………………14
Hình 7: Sơ đồ chân I2C…………………………………………………………..............16
Hình 8: Module chuyển đổi I2C cho LCD 20x4…………………………………………16
Hình 9: Mô hình của Thinkspeak…………………………………………………………18
Hình 10: Sơ đồ hoạt động của HTTP…………………………………………………….21
Hình 11: Mạch thực tế hàn trên PCB lỗ………………………………………………….24
Hình 12: Kết quả trên Thingspeak………………………………………………………..25
Hình 13; Kết quả trên Goolesheet………………………………………………………..26
4
LỜI MỞ ĐẦU
Hiện nay, ngành kỹ thuật điện tử và công nghệ thông tin tiến bộ không liên tục.
Chúng đang ngày càng phát triển và được ứng dụng trong tất cả các mặt của cuộc sống.
Các thiết bị điện tử sử dụng Vi Điều Khiển được sử dụng rộng rãi trong các ứng dụng tự
động. Nó giúp chúng ta trong mọi công việc cũng như giải trí. Các bộ Vi Điều khiển ngày
càng hiện đại, tốc độ xử lý nhanh hơn và các ứng dụng mở rộng hơn.
Một trong những ứng dụng quan trọng của Vi Điền Khiển đó là xây dựng trong đo
lường và điều khiển. Nhờ các loại cảm biến, ứng dụng của đo lường bằng Vi Điều khiển
không chỉ giới hạn trong các đại lượng điện mà còn mở rộng ra các tín hiệu không phải
điện. Sử dụng Vi Điều Khiển chung ta thu thập các đại lượng cần đo dễ dàng hơn, cụ thể
là có thể xử lý ngay các đại lượng đó và đưa ra kết quả như mong muốn.
Để làm khái quát về những kiến thức trong môn Thực hành cơ sở và kết thúc học
phần môn Thực hành cơ sở. Chúng em xin làm bài tập lớn này để tổng hợp lại những gì
em đã nghiên cứu và nghiên cứu trong môn học. Trong bài tập lớn này, chúng em xin được
khám phá và trình bày nội dung:
“Sử dụng KIT ESP32 WROOM 32U xây dựng ứng dụng thu thập dữ liệu nhiệt độ, độ
ẩm, chất lượng không khí của môi trường xung quanh hiển thị LCD 20x4 tại chỗ và gửi
dữ liệu lên Thingspeak vẽ đồ thị đồng thời lưu lại dữ liệu thu được bằng công cụ google
sheeet.”
5
CHƯƠNG I: CẤU TẠO, CHỨC NĂNG VÀ NGUYÊN TẮC HOẶT ĐỘNG CỦA
CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH
1. KIT ESP32 WROOM 32U
6
Cấu tạo của ESP32-WROOM-32U bao gồm chip ESP32-D0WD, bộ nhớ flash dung
lượng 64 Mbits, đầu nối U.FL, và các linh kiện khác như điện trở, tụ điện, điện áp ổn áp,
và các linh kiện điện tử khác được lắp đặt trên một board mạch nhỏ gọn.
Nguyên lý hoạt động của ESP32-WROOM-32U là sử dụng chip ESP32-D0WD để
thực hiện các chức năng liên quan đến mạng và kết nối, bao gồm Wi-Fi, Bluetooth và BLE.
Chip này được tích hợp hai lõi CPU có thể điều khiển riêng lẻ và tần số xung nhịp CPU có
thể điều chỉnh từ 80MHz đến 240MHz.
Khi được kết nối với một anten thông qua đầu nối U.FL, ESP32-WROOM-32U sẽ
có khả năng truyền và nhận tín hiệu Wi-Fi và Bluetooth từ các thiết bị khác. Nó cũng có
thể giao tiếp với các thiết bị khác thông qua các cổng giao tiếp như UART, SPI, I2C và
GPIO.
ESP32-WROOM-32U cũng được trang bị bộ nhớ flash dung lượng 64 Mbits, cung
cấp đủ không gian lưu trữ cho các ứng dụng IoT khác nhau. Các ứng dụng này có thể được
phát triển và nạp vào chip thông qua một trình biên dịch và trình nạp.
8
Hình 3. Sơ đồ chân KIT ESP32 WROOM 32U
Mô tả các chân ESP32
Chân Input Only
GPIO từ 34 đến 39 là GPI – chân chỉ đầu vào. Các chân này không có điện trở kéo lên hoặc
kéo xuống bên trong. Chúng không thể được sử dụng làm đầu ra, vì vậy chỉ sử dụng các
chân này làm đầu vào:
GPIO 34
GPIO 35
GPIO 36
GPIO 39
Chân tích hợp Flash trên ESP32
GPIO 6 đến GPIO 11 dùng để kết nối Flash SPI, không khuyến khích sử dụng trong các
ứng dụng khác
GPIO 6 (SCK/CLK)
GPIO 7 (SDO/SD0)
GPIO 8 (SDI/SD1)
GPIO 9 (SHD/SD2)
GPIO 10 (SWP/SD3)
GPIO 11 (CSC/CMD)
Chân cám biến điện dung
9
Các chân ESP32 này có chức năng như 1 nút nhấn cảm ứng, có thể phát hiện sự thay đổi
về điện áp cảm ứng trên chân.
Các cảm biến cảm ứng bên trong đó được kết nối với các GPIO sau:
T0 (GPIO 4)
T1 (GPIO 0)
T2 (GPIO 2)
T3 (GPIO 15)
T4 (GPIO 13)
T5 (GPIO 12)
T6 (GPIO 14)
T7 (GPIO 27)
T8 (GPIO 33)
T9 (GPIO 32)
Analog to Digital Converter (ADC)
ESP32 có các kênh đầu vào ADC 18 x 12 bit (trong khi ESP8266 chỉ có ADC 1x 10 bit).
Đây là các GPIO có thể được sử dụng làm ADC và các kênh tương ứng:
ADC1_CH0 (GPIO 36)
ADC1_CH1 (GPIO 37)
ADC1_CH2 (GPIO 38)
ADC1_CH3 (GPIO 39)
ADC1_CH4 (GPIO 32)
ADC1_CH5 (GPIO 33)
ADC1_CH6 (GPIO 34)
ADC1_CH7 (GPIO 35)
ADC2_CH0 (GPIO 4)
ADC2_CH1 (GPIO 0)
ADC2_CH2 (GPIO 2)
ADC2_CH3 (GPIO 15)
ADC2_CH4 (GPIO 13)
10
ADC2_CH5 (GPIO 12)
ADC2_CH6 (GPIO 14)
ADC2_CH7 (GPIO 27)
ADC2_CH8 (GPIO 25)
ADC2_CH9 (GPIO 26)
Các kênh đầu vào ADC có độ phân giải 12 bit. Điều này có nghĩa là bạn có thể nhận được
các số đọc tương tự từ 0 đến 4095, trong đó 0 tương ứng với 0V và 4095 đến 3,3V. Bạn
cũng có thể lập trình độ phân giải của các kênh của mình trên code.
Digital to Analog Converter (DAC)
Có các kênh DAC 2 x 8 bit trên ESP32 để chuyển đổi tín hiệu kỹ thuật số thành đầu ra tín
hiệu điện áp tương tự. Các kênh này chỉ có độ phân giải 8 bit, nghĩa là có giá trị từ 0 – 255
tương ứng với 0 – 3.3V
Đây là các kênh DAC:
DAC1 (GPIO25)
DAC2 (GPIO26)
Các chân thời gian thực RTC
Các chân này có tác dụng đánh thức ESP32 khi trong chế độ Low Power Mode. Sử dụng
như 1 chân ngắt ngoài.
Các chân RTC:
RTC_GPIO0 (GPIO36)
RTC_GPIO3 (GPIO39)
RTC_GPIO4 (GPIO34)
RTC_GPIO5 (GPIO35)
RTC_GPIO6 (GPIO25)
RTC_GPIO7 (GPIO26)
RTC_GPIO8 (GPIO33)
RTC_GPIO9 (GPIO32)
RTC_GPIO10 (GPIO4)
RTC_GPIO11 (GPIO0)
RTC_GPIO12 (GPIO2)
11
RTC_GPIO13 (GPIO15)
RTC_GPIO14 (GPIO13)
RTC_GPIO15 (GPIO12)
RTC_GPIO16 (GPIO14)
RTC_GPIO17 (GPIO27)
Chân PWM
ESP32 LED PWM có 16 kênh độc lập có thể được định cấu hình để tạo tín hiệu PWM với
các thuộc tính khác nhau. Tất cả các chân có thể hoạt động như đầu ra đều có thể được sử
dụng làm chân PWM (GPIO từ 34 đến 39 không thể tạo PWM).
Để xuất PWM, bạn cần xác định các thông số này trong code:
Frequency – tần số
Duty cycle
Kênh PWM
Chân GPIO nơi bạn muốn xuất tín hiệu
Chân I2C
ESP32 có hai kênh I2C và bất kỳ chân nào cũng có thể được đặt làm SDA hoặc SCL. Khi
sử dụng ESP32 với Arduino IDE, các chân I2C mặc định là:
GPIO 21 (SDA)
GPIO 22 (SCL)
Nếu các bạn muốn sử dụng chân khác cho việc điều khiển I2C có thể sử dụng code:
Wire.begin(SDA, SCL);
Chân Ngắt Ngoài
Tất cả các chân ESP32 đều có thể sử dụng ngắt ngoài
2. Giới thiệu về LCD 20x4
Màn hình text LCD 20 x 4 xanh dương /xanh lá sử dụng driver HD44780, có khả
năng hiển thị 4 dòng với mỗi dòng 20 ký tự, màn hình có độ bền cao, rất phổ biến, nhiều
code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án.
12
Hình 4: Hình ảnh LCD 20x4
2.1 Thông số kỹ thuật
Điện áp hoạt động là 5 V.
Kích thước: 98 x 60 x 13.5 mm
Chữ trắng, nền xanh dương/chữ đen nền xanh lá
Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít
điện năng hơn.
Có thể được điều khiển với 6 dây tín hiệu
Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật, xem thêm HD44780
datasheet để biết thêm chi tiết.
2.2 Sơ đồ chân LCD 20x4
13
7 D0 Đường truyền dữ liệu 0
3. DHT11
3.1 Giới thiệu DHT11
DHT11 là một cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ và độ ẩm. Cảm
biến này có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino,
Raspberry Pi, ... để đo độ ẩm và nhiệt độ ngay lập tức.
DHT11 là một cảm biến độ ẩm tương đối. Để đo không khí xung quanh, cảm biến này sử
dụng một điện trở nhiệt và một cảm biến độ ẩm điện dung.
3.2 Cấu tạo cảm biến nhiệt độ độ ẩm DHT11
Cảm biến DHT11 bao gồm một phần tử cảm biến độ ẩm điện dung và một điện trở
nhiệt để cảm nhận nhiệt độ. Tụ điện cảm biến độ ẩm có hai điện cực với chất nền giữ ẩm
làm chất điện môi giữa chúng. Thay đổi giá trị điện dung xảy ra với sự thay đổi của các
mức độ ẩm. IC đo, xử lý các giá trị điện trở đã thay đổi này và chuyển chúng thành dạng
kỹ thuật số.
Để đo nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ âm, làm giảm
giá trị điện trở của nó khi nhiệt độ tăng. Để có được giá trị điện trở lớn hơn ngay cả đối
với sự thay đổi nhỏ nhất của nhiệt độ, cảm biến này thường được làm bằng gốm bán dẫn
hoặc polymer.
3.3 Sơ đồ chân DHT11
14
Số chân Tên chân Mô tả
1 Vcc Nguồn 3.5V đến 5.5V
Đầu ra cả nhiệt độ và độ ẩm thông qua dữ liệu nối
2 Data
tiếp
3 NC Không có kết nối và do đó không sử dụng
15
3.5 Thông số kĩ thuật
- Điện áp hoạt động: 3V - 5V DC
- Dòng điện tiêu thụ: 2.5mA
- Phạm vi cảm biến độ ẩm: 20% - 90% RH, sai số ±5%RH
- Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C
- Tần số lấy mẫu tối đa: 1Hz (1 giây 1 lần)
- Kích thước: 23 * 12 * 5 mm
4. MQ135
4.1 Giới thiệu dòng cảm biến MQ
17
Nồng độ phát hiện của một số chất: 10 - 300 ppm NH3, 10 - 1000 ppm Benzene,
10 - 300 Alcol, 1-10 ppm khói, 100-5000 ppm CO2
Kích thước: 32mm*20mm
Khoảng đo rộng
Bền, tuổi thọ cao
Phát hiện nhanh, độ nhạy cao
Mạch đơn giản
5. Module chuyển đổi I2C cho LCD 20x4
19
CHƯƠNG II: DỊCH VỤ ĐÁM MÂY
1. Thingspeak
Thingspeak là một nền tảng mà bạn có thể trực quan hóa và phân tíchdữ liệu trên
đám mây. Nó là một sản phẩm Matlab và bạn có thể xử lý và phân tích dữ liệu trực tiếp từ
đám mây. Chủ yếu nó được sử dụng trong các dự án IoT cần phân tích để theo dõi những
thay đổi về giá trị cảm biến trên đám mây.
20
Ba bước chính mà Thingspeak yêu cầu để hoàn thành công việc đó là thu thập dữ liệu,
phân tích và thực hiện một hành động.
Thingspeak hoạt động với điện toán đám mây, tất cả các thiết bị mà bạn muốn lấy dữ liệu
phải nằm trong mạng với cơ sở dữ liệu đám mây. Thingspeak cũng kết nối với cơ sở dữ
liệu đám mây và hiển thị luồng dữ liệu.
2 Google Sheets
2.1 Giới thiệu Google Sheets
Google Sheets (Google SpreadSheet) là một chương trình bảng tính được cung cấp
miễn phí bởi Google nằm trong dịch vụ Google Drive. Dịch vụ này cũng bao gồm Google
Docs và Google Slides, một trình xử lý văn bản và chương trình trình bày tương ứng. Hiểu
một cách đơn giản thì Google Sheets là ứng dụng về bảng tính của Google Docs.
2.2 Các tính năng nổi bật của Google Sheets
21
CHƯƠNG III: CÁC GIAO THỨC SỬ DỤNG TRONG MẠCH
1. Giao thức I2C
1.1 Khái niệm
I2C (Inter – Integrated Circuit) là 1 giao thức giao tiếp nối tiếp đồng bộ được phát
triển bởi Philips Semiconductors, sử dụng để truyền nhận dữ liệu giữa các IC với
nhau chỉ sử dụng hai đường truyền tín hiệu.
Các bit dữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặn được
thiết lập bởi 1 tín hiệu đồng hồ.
Bus I2C thường được sử dụng để giao tiếp ngoại vi cho rất nhiều loại IC khác nhau
như các loại vi điều khiển, cảm biến, EEPROM,…
1.2 Quá trình truyền nhận dữ liệu
Bắt đầu: Thiết bị Master sẽ gửi đi 1 xung Start bằng cách kéo lần lượt các đường
SDA, SCL từ mức 1 xuống 0.
Tiếp theo đó, Master gửi đi 7 bit địa chỉ tới Slave muốn giao tiếp cùng với bit
Read/Write.
Slave sẽ so sánh địa chỉ vật lý với địa chỉ vừa được gửi tới. Nếu trùng khớp, Slave
sẽ xác nhận bằng cách kéo đường SDA xuống 0 và set bit ACK/NACK bằng ‘0’.
Nếu không trùng khớp thì SDA và bit ACK/NACK đều mặc định bằng ‘1’.
Thiết bị Master sẽ gửi hoặc nhận khung bit dữ liệu. Nếu Master gửi đến Slave thì
bit Read/Write ở mức 0. Ngược lại nếu nhận thì bit này ở mức 1.
Nếu như khung dữ liệu đã được truyền đi thành công, bit ACK/NACK được set
thành mức 0 để báo hiệu cho Master tiếp tục.
22
Sau khi tất cả dữ liệu đã được gửi đến Slave thành công, Master sẽ phát 1 tín hiệu
Stop để báo cho các Slave biết quá trình truyền đã kết thúc bằng các chuyển lần lượt
SCL, SDA từ mức 0 lên mức 1.
1.3 Các chế độ hoạt động của I2C:
Chế độ chuẩn (standard mode) với tốc độ 100 kBit/s.
Chế độ tốc độ thấp (low speed mode) với tốc độ 10 kBit/s.
2 Giao thức HTTP
2.1 Khái niệm của HTTP
HTTP là tên viết tắt của cụm từ HyperText Transfer Protocol, dịch . HTTP được
dùng trong www (world wide web) với mục đích tạo nên nền tảng kết nối giữa client và
server. Client ở đây đại diện cho bất kỳ loại thiết bị hoặc chương trình nào, có thể là PC,
smartphone… Còn Server được dùng để chỉ những máy tính trên đám mây. HTTP là một
giao thức cho phép trao đổi và sử dụng các nguồn tài nguyên khác nhau, chẳng hạn như
HTML doc. Một doc hoàn chỉnh sẽ được tạo nên từ nhiều doc con bao gồm văn bản, layout,
media, video, script…
2.2 Cấu trúc cơ bản của HTTP
Cấu trúc hoạt động của HTTP rất đơn giản và dễ hiểu. HTTP là một nền tảng cho
phép sự giao tiếp giữa 2 phía là Client và Server. Client ở đây là người dùng, thường truy
cập vào HTTP thông qua một công cụ bất kỳ như trình duyệt web. Còn Server sẽ đại diện
cho phía website, đằng sau giao diện web gồm có kịch bản phản ứng từ máy chủ và cơ sở
dữ liệu.
24
CHƯƠNG IV: THIẾT KẾ LẮP RÁP MẠCH ĐIỆN THỰC TẾ
1. Sơ đồ khối
2. Sơ đồ nguyên lý
25
3. Hình ảnh mạch trong thực tế
26
4.1 Kết quả trên Thingspeak
27
4.2 Kết quả trên Google Sheets
#include <WiFi.h>
#include <ThingSpeak.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#include <HTTPClient.h>
// Thông số Wifi
const char* ssid = "P.401";
const char* password = "0967158696";
// Thông số ThingSpeak
unsigned long channelID = 2161411;
const char* apiKey = "3RS0AX5S71RP0DU1";
int value1;
int value2;
int value3;
DHT dht(DHTPIN, DHTTYPE); // Khai báo đối tượng cảm biến DHT11
LiquidCrystal_I2C lcd(0x27, 20, 4); // Khai báo đối tượng màn hình LCD
20x4 với địa chỉ I2C là 0x27
// Khởi tạo WifiClient
WiFiClient client;
void setup() {
Serial.begin(115200);
delay(1000);
// Kết nối Wifi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
29
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
Serial.println(url);
//Start to send data to IFTTT
HTTPClient http;
Serial.print("[HTTP] begin...\n");
http.begin(url); //HTTP
30
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if(httpCode > 0) {
// HTTP header has been send and Server response header has been
handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n",
http.errorToString(httpCode).c_str());
}
http.end();
}
void loop() {
value1 = dht.readTemperature();// độ ẩm
value2 = dht.readHumidity();/// nhiệt độ
value3 = getAirquality(); //ánh sáng
Serial.print("nhiệt đô - độ ẩm - chất lượng không khí : ");
Serial.print(value1);
Serial.print(' ');
Serial.print(value2);
Serial.print(' ');
Serial.println(value3);
Serial.print(' ');
sendDataToSheet();
lcd.setCursor(0, 0);
lcd.print("NHIET DO: ");
lcd.print(value1);
lcd.print("'C");
lcd.setCursor(0, 1);
lcd.print("DO AM: ");
lcd.print(value2);
lcd.print("%");
31
lcd.setCursor(0, 2);
lcd.print("CHAT LUONG KHONG KHI");
lcd.setCursor(0, 3);
lcd.print(value3);
lcd.print(" PPM");
lcd.setCursor(0, 2);
lcd.print("CHAT LUONG KHONG KHI");
lcd.setCursor(0, 3);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(value3);
lcd.print(" PPM");
32
TÀI LIỆU THAM KHẢO
1. M. Đ. Nguyễn and V. Đ. Nguyễn , Bài giảng thực hành cơ sở, Hà Nội: Học Viện Công
Nghệ Bưu Chính Viễn Thông, 2020.
2. ESP32 Data Logging to Google Sheets with Google Scripts:
https://iotdesignpro.com/articles/esp32-data-logging-to-google-sheets-with-google-scripts
3. Đọc nhiệt độ - độ ẩm và xuất ra màn hình LCD: http://arduino.vn/bai-viet/91-doc-
nhiet-do-do-am-va-xuat-ra-man-hinh-
lcd?fbclid=IwAR0sLmVLrCGvMh0mfEc2czA11swoGclQiLlRrHNdNgktDmQ0UqZyjst
4VQc
4. Giới thiệu cảm biến chất lượng không khí MQ135: http://arduino.vn/bai-viet/1545-
gioi-thieu-cam-bien-chat-luong-khong-khi-mq135http://arduino.vn/bai-viet/1545-gioi-
thieu-cam-bien-chat-luong-khong-khi-mq135
5. Tổng quan về sơ đồ chân ESP32 và ngoại vi: https://khuenguyencreator.com/tong-
quan-ve-so-do-chan-esp32-va-ngoai-vi/
33