PHẦN II: NỘI DUNG CHƯƠNG 1: GIỚI THIỆU CHUNG • Việc xác định được nồng độ bụi và việc thu thập dữ liệu trên lcd và website (thông qua địa chỉ IP) để có được số liệu cần thiết giúp chúng ta phòng tránh kịp thời những nguy cơ bệnh tật. 1. Yêu cầu • Xác định được nồng độ bụi trong khoảng từ 02000PPM • Hoạt động ổn định dưới sự thay đổi của môi trường. • Có ứng dụng khái niệm IoT vào hệ thống. • Hiển thị thông số lên màn hình LCD và websever 2. Giới hạn • Chỉ sử dụng được nguồn điện từ 6V trở xuống • Chỉ xác định được tình trạng không khí ở một không gian giới hạn. 3. Giải pháp thiết kế • Ngôn ngữ lập trình và phần mêm biên dịch Arduino • Công cụ Terminal Hecules • Công cụ Ms Visio 4. Các bước phải thực hiện • Kiểm tra các tập lệnh, thông số ESP 8266 • Tìm hiểu kĩ về chuẩn giao tiếp UART • Các chân kết nối các module
Trang 1HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Trang 2HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
PHẦN I: MỞ ĐẦU
1 Tính cấp thiết của đề tài
1.1 Bối cảnh hiện nay
1.1.1 Bối cảnh thế giới
Mô hình mới đánh giá chất lượng không khí được Tổ chức Y tế Thế giới (WHO) phốihợp với Đại học Bath tại Anh phát triển khẳng định rằng 92% dân số thế giới đangphải sống trong các địa điểm nơi không khí hít thở có chất lượng quá kém
Hình 0.1 ONKK một công ty tại Hà Nội
Theo Tổ chức Y tế Thế giới, khoảng 3 triệu người tử vong mỗi năm có liênquan tới việc tiếp xúc với ô nhiễm không khí bên ngoài, và ô nhiễm không khítrong nhà cũng có thể gây ra tử vong
Trang 3HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Vào năm 2012, theo đánh giá, 6,5 triệu trường hợp tử vong (chiếm khoàng11,6% tổng số ca tử vong trên toàn thế giới) có liên quan tới ô nhiễm khôngkhí bên ngoài và ô nhiễm không khí trong nhà
Mức độ ô nhiễm không khí đặc biệt cao tại khu vực Đông Nam Á và phía TâyThái Bình Dương; trong đó Trung Quốc, Việt Nam và Malaysia là những quốcgia chịu ảnh hưởng nặng nề nhất
WHO nhấn mạnh ngoại trừ khu vực châu Mỹ, tất cả các khu vực khác trên thếgiới đều có dưới 20% dân số sống ở những nơi có chất lượng không khí đạtchuẩn của WHO
Một trong những mặt tồi tệ nhất của ô nhiễm không khí,đó là các hạt phân tửnhỏ hơn 2,5 micron (PM2,5), bởi chúng chứa nhiều chất độc hại như sulfate,bụi than đen và có thể thâm nhập sâu vào phổi và trong hệ thống tim mạch,gây ảnh hưởng nghiêm trọng tới sức khỏe con người
Các cách thức vận tải không hiệu quả, chất đốt của các hộ gia đình, việc đốtrác thải, trung tâm điện chạy bằng than và hoạt động công nghiệp là nhữngnguồn chính gây ô nhiễm không khí
Tuy nhiên, hoạt động của con người không phải là nguồn duy nhất dẫn tới tìnhtrạng ô nhiễm Các cơn bão cát, đặc biệt là trong những khu vực nằm gần một
sa mạc, cũng có thể ảnh hưởng tới chất lượng không khí
Giám đốc Văn phòng sức khỏe cộng đồng, các yếu tố quyết định của xã hội vàmôi trường đối với sức khỏe của WHO
Ngày càng nhiều thành phố đang tiến hành giám sát ô nhiễm không khí, các dữliệu vệ tinh cũng toàn diện hơn và nhiều tiến bộ được hoàn thành trong việc cụthể hóa các đánh giá về sức khỏe tương ứng
Trang 4HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Như chúng ta biết, không khí là thành phần quan trọng tất yếu trong cuộc sốngcon người giúp chúng ta tồn tại trong cuộc sống.Ô nhiễm không khi đã vàđang ảnh hưởng rất nhiều đến sức khỏe của chúng ta và là mầm móng củanhiều căn bệnh mang đến cho chúng ta
Vào tháng 9/2015, các nhà lãnh đạo thế giới đã ấn định mục tiêu trong cácMục tiêu Phát triển bền vững là giảm đáng kể vào năm 2030 số ca tử vong vàbệnh tật do ô nhiễm không khí
Hình 0.2 ONKK trong giờ cao điềm tại TPHCM
1.1.2 Bối cảnh Việt Nam
Trang 5HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Báo cáo nghiên cứu của Liên minh Năng lượng bền vững Việt Nam cũng cho rằngnăm 2016, Hà Nội trải qua 8 đợt ô nhiễm không khí nghiêm trọng Trong đó, nguồngây ô nhiễm xuất phát từ các khu công nghiệp lớn của thành phố và có thêm sự cộnghưởng từ nguồn gây ô nhiễm ngoài biên giới
Ở TPHCM những con số trên thấp hơn nhiều Hà Nội Cụ thể, năm 2016, thành phốđông dân và có nhiều phương tiện giao thông nhất của Việt Nam chỉ có 14 ngày vượtquá quy chuẩn quốc gia và 175 ngày vượt quá tiêu chuẩn của WHO; trong khi chỉ sốAQI trung bình là 86, nồng độ bụi mịn PM2.5 là 28,3 Mg/m3
Nhóm nghiên cứu đánh giá, các nguồn gây ô nhiễm chủ yếu của Hà Nội và TPHCM
là do khí thải từ phương tiện giao thông, phát thải từ hoạt động công nghiệp, hoạtđộng xây dựng, nhà máy nhiệt điện, đốt chất thải, đun nấu hộ gia đình và ô nhiễmxuyên biên giới
Báo cáo hiện trạng ô nhiễm môi trường không khí năm 2013 cũng cho thấy,các đô thị bị ô nhiễm không khí có tỷ lệ người mắc các bệnh đường hô hấp caogấp nhiều lần các đô thị khác Các bệnh hô hấp cấp tính và mãn tính ở vùnggần các khu vực sản xuất công nghiệp cao hơn rõ rệt so với các vùng đốichứng khác, ảnh hưởng không chỉ người lao động mà còn người dân và trẻ em
Ngoài ra, độ che phủ cây xanh cũng là yếu tố giúp giảm lượng khí thải trongkhí quyển đáng kể Theo thống kê ở nước ta, mặc dù tổng diện tích rừng đãtăng, đạt mức độ che phủ 40%, nhưng chất lượng rừng đang tiếp tục suy thoái
Đối với các khu vực đô thị, mật độ cây xanh chưa đạt tiêu chuẩn về độ chephủ Cụ thể, tại thủ đô Hà Nội và TP Hồ Chí Minh diện tích này mới đạt
<4m2/người, thấp hơn so với yêu cầu của tiêu chuẩn (10-15 m2/người) vàkhông đáp ứng vai trò lá phổi xanh giảm thiểu ONKK
Trang 6HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hình 0.3 ONKK tại nhà máy sản xuất A tại TPHCM
Một số ngành công nghiệp (Khai khoáng, nhiệt điện, xi măng )tiếp tục thải một lượng bụi lớn vào MTKK(Hình 1.3: diễn giải)
Quá trình đô thị hóa cùng với các hoạt động phát triển kinh tế-xã hội chưađược quản lý và kiểm soát tốt gây ảnh hưởng tiêu cực đến chất lượng
Giao thông với xu hướng số lượng phương tiện giao thông gia tăng mạnh mẽqua các năm được đánh giá là nguồn đóng góp đáng kể gây suy giảm chấtlượng MTKK Trong đó, các khí CO, VOC, TSP chủ yếu do các loại xe máyphát thải còn đối với ô tô thì nguồn ô nhiễm chính gồm các khí SO2 và NO2
Các nguồn ONKK từ hoạt động sản xuất công nghiệp có đặc thù phân bố cục
bộ quanh khu vực sản xuất và có nồng độ các chất độc hại cao Ngành khai
Trang 7HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
thác, chế biến than thường tập trung ở khu vực phía Bắc với đặc trưng phátthải các loại bụi (TSP, PM10) và SO2, CO, CH4
Ngành sản xuất thép thì tập trung khu vực đồng bằng sông Hồng và ĐôngNam Bộ, với thành phần khí thải gồm bụi, gỉ sắt chứa các oxit kim loại Ngành sản xuất vật liệu xây dựng phát sinh chủ yếu bụi, CO, SO2 và H2S vànguyên nhân gây ô nhiễm chính do cung cao hơn nhu cầu thị trường
Hình 0.4 Tỷ lệ phát thải các chất gây ô nhiễm do các phương tiện cơ giới đường
bộ toàn quốc năm 2016
Nhìn chung, nguyên nhân ô nhiễm chủ yếu từ các ngành được lý giải do côngnghệ sản xuất chưa được cải tiến đáng kể, hiệu suất sử dụng năng lượng và tàinguyên chưa cao, đầu tư cho công tác bảo vệ môi trường của các doanh nghiệpchưa được chú trọng và các chế tài quản lý đối với vấn đề ô nhiễm không khíchưa hiệu quả
1.1.3 Internet of thing
Internet of thing là thuật ngữ dùng để chỉ các đối tượng có thể được nhận biết cũng nhưchỉ sự tồn tại của chúng trong một kiến trúc mang tính kết nối Cụm từ này được đưa ra bởi Kevin Ashton vào năm 1999
Trang 8HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hình 0.5 Úng dụng IoT phục vụ nhu cầu con người
Sự thông minh và tự động trong điều khiển thực chất không phải là một phầntrong ý tưởng về internet of thing các máy móc có thể dễ dàng nhận biết
Tuy nhiên, trong thời gian gần đây người ta bắt đầu nghiên cứu kết hợp haikhái niệm IoT và autonomous control lại với nhau Tương lai của IoT có thể làmột mạng lưới các thực thể thông minh có khả năng tự tổ chức và hoạt độngriêng lẻ tùy theo tình huống, môi trường, đồng thời chúng cũng có thể liên lạcvới nhau để trao đổi thông tin, dữ liệu
Việc tích hợp trí thông minh vào IoT còn có thể giúp các thiết bị, máy móc,phần mềm thu thập và phân tích các dấu vết điện tử của con người khi chúng
ta tương tác với những thứ thông minh, từ đó phát hiện ra các tri thức mới liênquan tới cuộc sống, môi trường, các mối tương tác xã hội cũng như hành vicon người
Trang 9HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Khi mà vạn vật đều có chung một mạng kết nối thì việc liên lạc và làm việc trởnên rất dễ dàng Con người có thể hiện thực hóa mục đích của mình trongtương lai Chúng ta hoàn toàn có thể kiểm soát mọi thứ
Điều kì diệu ở Io đó chính là cảm biến Các thiết bị cần kết nối phải được tíchhợp một chip cảm biến để có thể chuyển đổi, phát hiện các hiện tượng trongmôi trường tự nhiên và biến nó thành dữ liệu trong môi trường Internet để xử
lý dữ liệu và tiến hành thực thi các điều hướng trong mạng Internet đó theocách mà người dùng mong muốn
Hình 0.6 Một góc Smart Home ở BKAV
Với lí do trên, chúng tôi quyết định nghiên cứu đề tài “Hệ thống hiển thị ONKK(Air pollution monitoring system) dùng Arduino và module wifi”
2 Mục đích nghiên cứu
Xác định mức độ ô nhiễm môi trường sống của chúng ta
Các ứng dụng và khái niệm cơ bản của IoT
Tìm hiểu về board mạch Arduino, sensor, ngôn ngữ lập trình
3 Đối tượng nghiên cứu
Trang 10HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hệ thống đo lượng và hiển thị mức độ ô nhiễm
4 Nhiệm vụ nghiên cứu
Ứng dụng board mạch Arduino, module WIFI ESP8266 và các linh kiện điện tửkhác để xây dựng mô hình cảnh báo ô nhiễm không khí, phục vụ tìm hiểu môitrường sống của chúng ta
5 Phương pháp nghiên cứu
Nghiên cứu ngôn ngữ lập trình và phần mềm biên dịch cho Arduino
Tìm hiểu cấu trúc, phương thức vận hành và giao tiếp của board Arduino, moduleWIFI ESP 8266 cũng như các loại cảm biến
Thiết kế và đánh giá nhiệm vụ của từng khối kỹ thuật
Hoàn thiện tổng thể, chỉnh định thông số và thi công mô hình
6 Kết quả đạt được của đề tài
Hiển thị được nồng độ trên LCD và website
Trang 11CHƯƠNG 1: GIỚI THIỆU CHUNG
Việc xác định được nồng độ bụi và việc thu thập dữ liệu trên lcd và website(thông qua địa chỉ IP) để có được số liệu cần thiết giúp chúng ta phòng tránh kịpthời những nguy cơ bệnh tật
1 Yêu cầu
Xác định được nồng độ bụi trong khoảng từ 02000PPM
Hoạt động ổn định dưới sự thay đổi của môi trường
Có ứng dụng khái niệm IoT vào hệ thống
Hiển thị thông số lên màn hình LCD và websever
2 Giới hạn
Chỉ sử dụng được nguồn điện từ 6V trở xuống
Chỉ xác định được tình trạng không khí ở một không gian giới hạn
3 Giải pháp thiết kế
Ngôn ngữ lập trình và phần mêm biên dịch Arduino
Công cụ Terminal Hecules
Công cụ Ms Visio
4 Các bước phải thực hiện
Kiểm tra các tập lệnh, thông số ESP 8266
Tìm hiểu kĩ về chuẩn giao tiếp UART
Các chân kết nối các module
Trang 13HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
Trang 14HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
1 Mô hình tổng quát
Hình 2.1 Sơ đồ các khối trong hệ thống
Trang 15HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
lưu đồ 2.1 Giải thuật hệ thống toàn mạch
1.1 Khối xử lý ( Arduino)
Trang 16HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
ATmega328 có tên đầy đủ là ATmega328P-PU ATmega328 là linh hồncủa, sức mạnh phần cứng mà Arduino Uno có được là từ đây
Nếu bạn có vi điều khiển ATmega328, bạn hoàn toàn có thể tạo ra
1 Arduino board đơn giản cho những dự án của mình
Các vi điều khiển ATmega328 đều được ghi sẵn bootloader ArduinoBảng 2.1 Thống số kĩ thuật board Arduino
Trang 17HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
có 1 bộ nạp ROM đặc biệt nào cả
Các thông số chính của vi điều khiển Atmega328P-PU như sau:
Trang 18HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hình 2.3 Sơ đồ chân Atmega 328
Kiến trúc: AVR 8bit
Số timer: 3 timer gồm 2 timer 8-bit và 1 timer 16-bit
Số kênh xung PWM: 6 kênh (1timer 2 kênh)
1.1.2 Các chân năng lượng của Arduino
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạndùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân nàyphải được nối với nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
Trang 19HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cựcdương của nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thểđược đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn khôngđược lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó khôngphải là cấp nguồn
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đươngvới việc chân RESET được nối với GND qua 1 điện trở 10KΩ
1.1.3 Bộ nhớ
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong
bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong sốnày sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cầnquá 20KB bộ nhớ này đâu
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạnkhai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càngcần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớRAM lại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trênSRAM sẽ bị mất
1KBEEPROM (Electrically Eraseble Programmable Read Only Memory):đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu
của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệutrên SRAM
Trang 20HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với
độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàmanalogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp
ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V nhưnhững chân khác
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài cácchức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằnggiao thức SPI với các thiết bị khác
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khibấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nốivới chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Vớichân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sửdụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thìbạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V →2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn riêng.Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng nóichung Và Wiring lại là một biến thể của C/C++
1.1.5 Ưu điểm của Arduino
Giá thành rẻ thích hợp cho việc sử dụng phổ biến
Các chân có các chuẩn giao tiếp khác nhau
1.1.6 Nhược điểm của Arduino Uno
Arduino Uno không có bảo vệ cắm ngược nguồn vào,kiểm tra các cực âmdương của nguồn trước khi cấp cho Arduino Uno
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra chocác thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồnsai vị trí có thể làm hỏng board
Trang 21HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Cấp nguồn ngoài không qua cổng USB cho Arduino Uno với điện áp dưới6V có thể làm hỏng board
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điềukhiển ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog củaArduino Uno nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của ArduinoUno vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng đểtruyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng
Qua những thông số trên nên Arduino Uno là module thích hợp cho đề tàinghiên cứu của em
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của ArduinoUNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng đểtruyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng
1.2 Khối cảm biến (MQ-135)
Trang 22HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hình 2.4 Cảm biến MQ-135
I.2.1 Giới thiệu chung
Cảm biến MQ135 là một cảm biến khí được dùng trong các thiết bị kiểm tra chấtlượng không khí phát hiện NH3, NOx, Ancol, Benzen, khói, CO2,… Với nhữngtính năng như khoảng đo rộng, phát hiện nhanh độ nhạy cao và đặc biệt là mạchđơn giản chi phí thấp nên được ứng dụng rộng dãi trong công nghiệp và dândụng
1.2.2 Thông số kĩ thuật
Điện áp của heater: 5V±0.1 AC/DC
Điện trở tải: thay đổi được (2kΩ-47kΩ)
Điện trở của heater: 33Ω±5%,
Công suất tiêu thụ của heater: ít hơn 800mW
Khoảng phát hiện: 10 - 300 ppm NH3, 10 - 1000 ppm Benzene, 10 - 300 Alcol
Kích thước: 32mm*20mm
Đầu ra tương tự ( AOUT): Điện áp ra tương tự thay đổi tuyến tính trong khoảng
từ 0.5V-4.5V phụ thuộc vào nồng độ khí xung quanh
Đầu ra số (DOUT): Đầu ra số 0-1 rất tiện cho các bạn thực hiện các ứng dụngnhỏ mà không cần vi điều khiển.Kết hợp với module relay để bật tắt các thiết bịnhư còi, đèn để cảnh báo khí mà cảm biến có thể nhận biết được
I.3 Khối hiển thị ( LCD16x2)
Trang 23HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hình 2.5 Màn hình LCD 16x2
I.3.1 Giới thiệu chung
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rấtnhiều các ứng dụng của VĐK LCD có rất nhiều ưu điểm so với các dạng hiển thịkhác:
Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễdàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất íttài nguyên hệ thống và giá thành rẽ
Mỗi khi được cấp nguồn, mạch khởi tạo bên trong LCD sẽ tự động khởi tạo chonó
Trong thời gian khởi tạo này cờ BF bật lên 1 đến khi việc khởi tạo hoàn tất cờ BFcòn giữ trong khoảng 10ms sau khi Vcc đạt đến 4.5V (vì 2.7V thì LCD đã hoạtđộng)
Mạch khởi tạo nội sẽ thiết lập các thông số làm việc của LCD
I.3.2 Sơ đồ chân
Bảng 2.2 Sơ đồ chân LCD 16x2
Trang 24HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
I.3.3 Sơ đồ khối của HD44780
Để hiểu rõ hơn chức năng các chân và hoạt động của chúng, ta tìm hiểu sơ quachíp HD44780 thông qua các khối cơ bản của nó
Tập lệnh mã HEX của LCD 16x2
Mỗi khi được cấp nguồn, mạch khởi tạo bên trong LCD sẽ tự động khởi tạocho nó
Trong thời gian khởi tạo này cờ BF bật lên 1, đến khi việc khởi tạo hoàn tất
cờ BF còn giữ trong khoảng 10ms sau khi Vcc đạt đến 4.5V (vì 2.7V thì LCD
đã hoạt động) Mạch khởi tạo nội sẽ thiết lập các thông số làm việc
Bảng 2.3 Tập lệnh mã Hex của LCD
Hình 2.6 Sơ đồ khối của HD44780
Trang 25HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Chíp HD44780 có 2 thanh ghi 8 bit quan trọng: Thanh ghi lệnh IR (InstructorRegister) và thanh ghi dữ liệu DR (Data Register)
Thanh ghi IR: Để điều khiển LCD, người dùng phải “ra lệnh” thông qua támđường bus DB0-DB7 Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.Người dùng chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR Nghĩa
Trang 26HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng
mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó
Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAMDDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùngRAM này gởi ra cho MPU (ở chế độ đọc) Nghĩa là, khi MPU ghi thông tin vào
DR, mạch nội bên trong chíp sẽ tự động ghi thông tin này vào DDRAMhoặc CGRAM Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉnày trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền choMPU
Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanhghi này khi giao tiếp với MPU Bảng sau đây tóm tắt lại các thiết lập đối với haichân RS và R/W theo mục đích giao tiếp
Bảng 2.4 Chức năng chân RS và R/W theo mục đích sử dụng
RS R/W Chức năng
0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD
0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở
cờ BF lại mức 0
Trang 27HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Như trong sơ đồ khối, thanh ghi IR không trực tiếp kết nối với vùng RAM(DDRAM và CGRAM) mà thông qua bộ đếm địa chỉ AC Bộ đếm này lại nối với
2 vùng RAM theo kiểu rẽ nhánh
Khi một địa chỉ lệnh được nạp vào thanh ghi IR, thông tin được nối trực tiếp cho
2 vùng RAM nhưng việc chọn lựa vùng RAM tương tác đã được bao hàm trong
mã lệnh
Sau khi ghi vào (đọc từ) RAM, bộ đếm AC tự động tăng lên (giảm đi) 1 đơn vị vànội dung của AC được xuất ra cho MPU thông qua DB0-DB6 khi có thiết lậpRS=0 và R/W=1 (xem bảng tóm tắt RS - R/W)
Hình 2.7 Giản đồ xung cập nhật AC
Trang 28HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Hình 2.8 Mối liên hệ giữa địa chỉ của DDRAM và vị trí hiển thị của LCD
Vùng RAM này có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit.Những vùng RAM còn lại không dùng cho hiển thị có thể dùng như vùngRAM đa mục đích
Lưu ý là để truy cập vào DDRAM, ta phải cung cấp địa chỉ cho AC theo
mã HEX
Vùng ROM này dùng để chứa các mẫu kí tự loại 5x8 hoặc 5x10 điểmảnh/kí tự, và định địa chỉ bằng 8 bit Tuy nhiên, nó chỉ có 208 mẫu kí tự5x8 và 32 mẫu kí tự kiểu 5x10 (tổng cộng là 240 thay vì 2^8 = 256 mẫu kítự) Người dùng không thể thay đổi vùng ROM này
Bảng 2.5 : Bảng mã kí tự (ROM code A00)
Trang 29HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Như vậy, để có thể ghi vào vị trí thứ x trên màn hình một kí tự y nào đó, ngườidùng phải ghi vào vùng DDRAM tại địa chỉ x (xem bảng mối liên hệ giữaDDRAM và vị trí hiển thị)
Một chuỗi mã kí tự 8 bit trên CGROM Chú ý là trong bảng mã kí tự trongCGROM ở hình bên dưới có mã ROM A00
Ví dụ: Ghi vào DDRAM tại địa chỉ “01” một chuỗi 8 bit “01100010” thì trênLCD tại ô thứ 2 từ trái sang (dòng trên) sẽ hiển thị kí tự “b”
Trang 30HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
Với mỗi lệnh, LCD cần một khoảng thời gian để hoàn tất, thời gian này cóthể khá lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi(delay) cho LCD thực thi xong lệnh hiện hành mới có thể ra lệnh tiếptheo
Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnhghi vào RAM (Điều này giúp chương trình gọn hơn)
Các lệnh của LCD có thể chia thành 4 nhóm như sau :
Các lệnh về kiểu hiển thị VD : Kiểu hiển thị (1 hàng / 2 hàng), chiều dài
dữ liệu (8 bit / 4 bit), … Bảng 2.6: Tập lệnh của LCD
Tên lệnh Hoạt động
Clear
Display
Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 0 0 0 0 0 1Lệnh Clear Display (xóa hiển thị) sẽ ghi một khoảng trống-blank (mã hiện
kí tự 20H) vào tất cả ô nhớ trong DDRAM, sau đó trả bộ đếm địa AC=0, trảlại kiểu hiển thị gốc nếu nó bị thay đổi Nghĩa là : Tắt hiển thị, con trỏ dời
về góc trái (hàng đầu tiên), chế độ tăng AC
Return
home
Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 0 0 0 0 1 *Lệnh Return home trả bộ đếm địa chỉ AC về 0, trả lại kiểu hiển thị gốc nếu
nó bị thay đổi Nội dung của DDRAM không thay đổi
Entry
mode set
Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 0 0 0 1 [I/D] [S]
I/D: Tăng (I/D=1) hoặc giảm (I/D=0) bộ đếm địa chỉ hiển thị AC 1 đơn vịmỗi khi có hành động ghi hoặc đọc vùng DDRAM Vị trí con trỏ cũng dichuyển theo sự tăng giảm này
S: Khi S=1 toàn bộ nội dung hiển thị bị dịch sang phải (I/D=0) hoặc sangtrái (I/D=1) mỗi khi có hành động ghi vùng DDRAM Khi S=0: không dịchnội dung hiển thị Nội dung hiển thị không dịch khi đọc DDRAM hoặcđọc/ghi vùng CGRAM
Display
on/off
control
Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 0 0 0 1 [D] [C] [B]
D: Hiển thị màn hình khi D=1 và ngược lại Khi tắt hiển thị, nội dung
Trang 31HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
DDRAM không thay đổi
C: Hiển thị con trỏ khi C=1 và ngược lại
B: Nhấp nháy kí tự tại vị trí con trỏ khi B=1 và ngược lại
Chu kì nhấp nháy khoảng 409,6ms khi mạch dao động nội LCD là250kHz
Dữ liệu hàng đầu và hàng 2 dịch cùng một lúc Chi tiết sử dụng xem bảngbên dưới:
S/C R/L Hoạt động
0 0 Dịch vị trí con trỏ sang trái (Nghĩa là giảm AC một đơn vị)
0 1 Dịch vị trí con trỏ sang phải (Tăng AC lên 1 đơn vị)
1 0 Dịch toàn bộ nội dung hiển thị sang trái, con trỏ cũng dịch
N: Thiết lập số hàng hiển thị Khi N=0 : hiển thị 1 hàng, N=1: hiển thị 2hàng
F: Thiết lập kiểu kí tự Khi F=0: kiểu kí tự 5x8 điểm ảnh, F=1: kiểu kí tự5x10 điểm ảnh
Set
CGRAM
address
Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 0 1 [ACG][ACG][ACG][ACG][ACG][ACG]Lệnh này ghi vào AC địa chỉ của CGRAM Kí hiệu [ACG] chỉ 1 bit củachuỗi dữ liệu 6 bit Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từ CGRAM
Trang 32HỆ THỐNG GIÁM SÁT Ô NHIỄM KHÔNG KHÍ DÙNG ARDUINO VÀ MODULE WIFI
tại địa chỉ đã được chỉ định
Set
DDRAM
address
Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD] [AD]
Lệnh này ghi vào AC địa chỉ của DDRAM, dùng khi cần thiết lập tọa độhiển thị mong muốn Ngay sau lệnh này là lệnh đọc/ghi dữ liệu từDDRAM tại địa chỉ đã được chỉ định
Khi ở chế độ hiển thị 1 hàng: địa chỉ có thể từ 00H đến 4FH
Read BF
and
address
Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 DBx = [BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC]
(RS=0,R/W=1)Như đã đề cập trước đây, khi cờ BF bật, LCD đang làm việc và lệnh tiếptheo (nếu có) sẽ bị bỏ qua nếu cờ BF chưa về mức thấp Cho nên, khi lậptrình điều khiển, phải kiểm tra cờ BF trước khi ghi dữ liệu vào LCD
Khi đọc cờ BF, giá trị của AC cũng được xuất ra các bit [AC] Nó là địa chỉcủa CG hay DDRAM là tùy thuộc vào lệnh trước đó
Khi thiết lập RS=1, R/W=0, dữ liệu cần ghi được đưa vào các chân DBx từmạch ngoài sẽ được LCD chuyển vào trong LCD tại địa chỉ được xác định
từ lệnh ghi địa chỉ trước đó (lệnh ghi địa chỉ cũng xác định luôn vùng RAMcần ghi) Sau khi ghi, bộ đếm địa chỉ AC tự động tăng/giảm 1 tùy theo thiếtlập Entry mode
Khi thiết lập RS=1, R/W=1, dữ liệu từ CG/DDRAM được chuyển ra MPUthông qua các chân DBx (địa chỉ và vùng RAM đã được xác định bằng lệnhghi địa chỉ trước đó)
1.3.5 Khởi tạo LCD:
Khởi tạo là việc thiết lập các thông số làm việc ban đầu Đối với LCD, khởi tạogiúp ta thiết lập các giao thức làm việc giữa LCD và MPU