Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
870,95 KB
Nội dung
BÁO CÁO CUỐI KÌ MƠN IOT CƠ BẢN THIẾT KẾ MƠ HÌNH GIÁM SÁT NHIỆT ĐỘ VÀ ĐỘ ẨM TRONG KHƠNG KHÍ Giảng viên hướng dẫn: TS HÀ DUY HƯNG Sinh viên thực hiện: TẠ QUỐC KHÁNH – 51900356 HUỲNH THANH DUY – 519H0286 HỒ NHẬT DUY – 519H0285 PHẠM HỮU KHƠI – 518H0522 VŨ BẢO AN – 521H0435 Nhóm: THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022 0 BÁO CÁO CUỐI KÌ MƠN IOT CƠ BẢN THIẾT KẾ MƠ HÌNH GIÁM SÁT NHIỆT ĐỘ VÀ ĐỘ ẨM TRONG KHƠNG KHÍ Giảng viên hướng dẫn: TS HÀ DUY HƯNG Sinh viên thực hiện: TẠ QUỐC KHÁNH – 51900356 HUỲNH THANH DUY – 519H0286 HỒ NHẬT DUY – 519H0285 PHẠM HỮU KHƠI – 518H0522 VŨ BẢO AN – 521H0435 Nhóm: THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022 0 CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Tính cấp thiết đề tài Nhu cầu người phát triển thúc đẩy công nghệ 4.0 ngày tiến bộ, kèm theo bùng nổ cơng nghệ IoT (Internet of Things) Đặc biệt ngành cơng nghiệp mơ hình văn phịng IoT chiếm vai trị vơ lớn đặc biệt quan trọng giúp người tiết kiệm chi phí, kiểm sốt xác nhiệt độ, độ ẩm môi trường xung quanh,… Nội dung đề tài: thiết bị giám sát theo dõi nhiệt độ độ ẩm khơng khí, kết thể qua hình LCD I2C 1.2 Lý chọn đề tài Thời đại công nghệ tiên tiến phát triển, nhằm chạy theo phục vụ nhu cầu tiện ích người dùng sinh hoạt đời sống nói chung Đề tài IoT giúp cho chủ động việc theo dõi trạng thái nhiệt độ độ ẩm khơng khí 1.3 u cầu nhiệm vụ đề tài - Tìm hiểu loại linh kiện đề tài: Module wifi ESP8266, LCD I2C, DHT11, - Tìm hiểu cảm biến chuyển động cảm biến lửa - Tìm hiểu thiết kế App - Thiết kế mạch thử nghiệm, điều khiển ba thiết bị văn phòng - Hiển thị trạng thái điều khiển ba thiết bị (đèn, quạt, cửa) thông qua App điện thoại - Hoàn thiện viết báo cáo 0 CHƯƠNG TÌM HIỂU LINH KIỆN 2.1 Module wifi ESP8266 ~Hình Module wifi ESP8266~ Giới thiệu ESP8266 - Module wifi ESP8266 linh kiện dùng để cung cấp khả kết nối mạng wifi đầy đủ khép kín, sử dụng module để tạo web server đơn giản sử dụng access point - Module Wifi ESP8266 NodeMCU Lua CP2102 kit phát triển dựa chip Wifi SoC ESP8266 với thiết kế dễ sử dụng, đặc biệt sử dụng trực tiếp trình biên dịch Arduino lập trình nạp code kiến cho việc sử dụng lập trình trở nên dễ dàng - Module Wifi ESP8266 NodeMCU Lua CP2102 dùng cho ứng dụng cần kết nối, thu thập liệu điều khiển qua sóng wifi, đặc biệt ứng dụng liên quan đến IoT - Module Wifi ESP8266 NodeMCU Lua CP2102 sử dụng chip nạp giao tiếp UART CH340.[1] Thông số kỹ thuật - IC chính: ESP8266 Wifi SoC - Phiên firmware: Node MCU - Chip nạp giao tiếp UART: CH340 - GPIO tương thích hồn tồn với firmware – Node MCU Cấp nguồn: %VDC MicroUSB Vin - GPIO giao tiếp mức 3.3VDC 0 - Tích hợp Led báo trạng thái, nút Reset, Flash - Tương thích hồn tồn với trình biên dịch Arduino - Kích thước: 25 x 50 mm [1] Sơ đồ chân chức chân linh kiện: ~Hình Sơ đồ chân~ Một số chân thường sử dụng: - URXD (RX): Thường dùng để nhận tín hiệu giao tiếp UART với vi điều khiển - VCC: Đầu vào 3.3v - GPIO 0: Kéo xuống thấp cho chế độ upload bootloader - RST: Chân reset cứng module, kéo xuống mass để reset cho bo mạch - I2C: Trong phần cứng ESP8266 khơng có chân I2c, nhiên triển khai phần mềm Ta sử dụng chân GPIO làm chân I2C Thông thường sử dụng hai chân để làm I2C là: - GPIO5: SCL - GPIO4 : SDA - GPIO 2: thường dùng cổng TX giao tiếp UART để debug lỗi Các chân sử dụng làm SPI ESP8266 là: 0 - GPIO12: MISO - GPIO13: MOSI - GPIO14: SCLK - GPIO15: CS - CH_PD: kích hoạt chip, sử dụng cho Flash Boot updating lại module, nối với mức cao - GND: nối với mass - UTXD (TX): dùng để truyền tín hiệu giao tiếp UART với vi điều khiển - ESP8266 hỗ trợ chân ngắt GPIO nào, ngồi GPIO16 0 2.2 Cảm biến nhệt đô độ ẩm DHT 11 Giới thiệu cảm biến nhiệt độ độ ẩm DHT 11: DHT11 cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ độ ẩm Cảm biến dễ dàng giao tiếp với vi điều khiển vi Arduino, Raspberry Pi, để đo độ ẩm nhiệt độ DHT11 cảm biến độ ẩm tương đối Để đo khơng khí xung quanh, cảm biến sử dụng điện trở nhiệt cảm biến độ ẩm điện dung Chức chân linh kiện: - DHT11 có chân: VCC, DATA, NC, GND - Module DHT11 gắn sẵn điện trở led báo nguồn, nên có chân Thơng số kỹ thuật: - Nguồn điện 3,5v đến 5v - Mức tiêu thụ 2,5mA - Tín hiệu đầu kỹ thuật số -Phạm vi nhiệt độ từ 0ºC đến 50ºC - Độ xác để đo nhiệt độ 25ºC, dao động khoảng 2ºC - Độ phân giải để đo nhiệt độ 8-bit, 1ºC - Độ ẩm đo từ 20% RH đến 90% RH - Độ ẩm xác 5% RH cho nhiệt độ từ 0-50ºC - Độ phân giải 1% RH, khơng thể nhận biến thể mức ~Hình 2-3 Cảm biến nhiệt độ độ ẩm (DHT11)~ 0 2.3 Module chuyển đổi LCD I2C ~Hình 2-7 Module chuyển đổi LCD IC2~ Giới thiệu module chuyển đổi IC2: - Module giúp giải vấn đề khó khăn thực kết nối LCD, với LCD thay ta phải sử dụng tối thiểu chân vi điều khiển để kết nói với LCD mà module cần chân để kết nối với chân hai chân(SCL SDA) Module có tính tương thích với hầu hết vi điều khiển nay.[5] Các thông số kỹ thuật: - Điện áp hoạt động: 2.5V – 6V DC - Hỗ trợ hình: LCD1602, 1604, 2004 - Giao tiếp: I2C - Địa mặc định: 0x27 - Trọng lượng: 5g - Tích hợp Jump chốt để cung cấp đèn cho LCD ngắt - Tích hợp biến trở xoay điều chỉnh độ tương phẩn cho LCD [5] Ưu điểm - Giúp tiết kiệm chân cho vi điều khiển - Kết nối dễ dàng với LCD [5 0 2.4 LCD 16x2 hiển thị ~Hình 2-8 LCD 16x2 hiển thị~ Giới thiệu hình LCD 16x2: LCD 16x2 thành phần sử dụng nhiều dự án điện tử lập trình - LCD 16 × để hiển thị trạng thái văn thông số LCD 16 × gồm 16 chân, chân liệu từ chân D0 đến chân D7, RS, RW, EN để điều khiển Các chân lại dùng để cung cấp nguồn đầu vào đèn hoạt động cho LCD 16 × Các chân điều khiển giúp bạn dễ dàng cấu hình hình LCD chế độ lệnh chế độ liệu Ngoài ra, chúng cịn giúp cấu hình chế độ đọc ghi cách dễ dàng Chức chân: - Vss: Đây chân nối đất LCD thiết kế ta nối chân với chân GND mạch điều khiển - VDD: Chân có chức cấp nguồn cho LCD, thiết kế mạch nối chân với chân VCC = 5V mạch vi điều khiển - VEE: Chân dùng để điều khiển mức độ tương phản LCD - RS: Chân chọn ghi - R / W: Pin chọn chế độ đọc ghi Tiếp tục kết nối chân R / W (đọc / ghi) với mức logic "0" để LCD hoạt động chế độ ghi, với mức logic "1" để LCD hoạt động chế độ đọc 0 - E (Enable): Đây chân kích hoạt Chân kích hoạt tín hiệu áp dụng cho bus DB0-DB7 lệnh chấp nhận chân E có xung kích hoạt - DB0-DB7: chân liệu sử dụng để trao đổi thông tin với MPU 0 CHƯƠNG THIẾT KẾ VÀ THI CÔNG MẠCH 3.1 Mạch thực tế ~Hình Mạch thực tế mặt trước sau~ 3.2 Phần mềm hay driver điều khiển giao tiếp 3.2.1 Phần mềm lập trình Arduino ~Hình Giao diện phần mềm lập trình Arduino~ 0 Arduino mơi trường để phát triển tích hợp đa tảng hoạt động với điều khiển Arduino để viết, biên dịch tải mã lên bảng phát triển Phần mềm hỗ trợ nhiều bảng Arduino khác nhau, chẳng hạn Arduino Uno, Nano, Mega, Esplora, Ethernet, Fio, Pro Pro Mini LilyPad Arduino Arduino C C ++ ngôn ngữ thông dụng nên phần mềm phù hợp với lập trình viên làm quen với hai ngơn ngữ Đánh dấu cú pháp, thụt lề tự động tính khác làm cho trở thành giải pháp thay đại cho IDE khác Arduino đóng gói giao diện đồ họa đơn giản, có chức thu hút nhà phát triển Arduino mở đường cho đầu thành công thông qua mô-đun gỡ lỗi Tất chức lưu trữ số nút menu, giúp dễ hiểu điều hướng, đặc biệt lập trình viên chun nghiệp Ngồi ra, việc tích hợp mẫu giúp người làm quen với Arduino làm quen làm chủ ứng dụng nhanh chóng Với điều kiện bạn kết nối bảng Arduino với máy tính cài đặt trình điều khiển cần thiết, bạn chọn mơ hình để làm việc cách sử dụng menu Cơng cụ ứng dụng Sau đó, bạn bắt đầu viết chương trình cách sử dụng mơi trường làm việc thoải mái mà Arduino cung cấp Chương trình bao gồm mảng thư viện phong phú EEPROM, Firmata, GSM, Servo, TFT, WiFi, Tất nhiên, bạn thêm vào thư viện riêng ~Hình Thư viện tích hợp Arduino~ 0 3.2.2 Giao diện Blynk 0 ~Hình Giao diện Blynk điện thoại~ 0 0 CHƯƠNG KẾT LUẬN 4.1 Kết luận 4.2 Ưu nhược điểm Ưu điểm: Nhược điểm: 4.3 Hướng phát triển Công nghệ 4.0 phát triển mạnh lai mơ hình văn phịng IoT phát triển tích cực đa nhiệm với chức cao điều khiển nhiều thiết bị tạo môi trường làm việc tối ưu cho nhân viên, nguồn lượng tiêu hao giảm, bảo mật, nhận dạng,… môi trường lớn tòa nhà hay trung tâm lớn TÀI LIỆU THAM KHẢO Tài liệu tham khảo từ nguồn internet [1] https://linhkien888.vn/module-wifi-esp8266-nodemcu-lua-cp2102 [2] https://dientutuonglai.com/cam-bien-nhiet-do-va-do-am-dht11.html [3] https://iotmaker.vn/mach-chuyen-doi-i2c-cho-lcd.html Tài liệu tham khảo tiếng Việt [1] TS.Đặng Phước Vinh (2009) Giáo trình kỹ thuật vi điều khiển Pic, NXB Xây Dựng PHỤ LỤC #define BLYNK_TEMPLATE_ID "TMPLQ4XMsh4K" #define BLYNK_DEVICE_NAME "ESMART DHT11 407AC" #define BLYNK_AUTH_TOKEN "62Z40DuMRwQWdUjZiw93rPFBn0k6QSnC" //#include #include "DHTesp.h" #include "DHT.h" 0 #include #include LiquidCrystal_I2C lcd(0x27,16,2); #define BLYNK_FIRMWARE_VERSION "0.1.0" #define BLYNK_PRINT Serial #define APP_DEBUG #define USE_NODE_MCU_BOARD #include "BlynkEdgent.h" //DHT dht(13, DHT11); //DHT out >D7 DHTesp dht; float t_canhbao; float h_canhbao; float t,h; bool eventTrigger = false; byte degree[8] = {0B01110,0B01010,0B01110,0B00000,0B00000,0B00000,0B00000,0B00000}; BlynkTimer timer; WidgetLED led(V0); boolean blynkState=0; #define SDA //D2 #define SCL //D1 #define DHTPIN //D4 void setup(){ Serial.begin(115200); delay(1000); Wire.begin(SDA, SCL); //Khởi tạo chân kết nối I2C lcd.init(); //Khởi tạo LCD lcd.clear(); //Xóa hình lcd.backlight(); //Bật đèn cho LCD lcd.createChar(0, degree); //Tạo ký tự lưu vào byte thứ lcd.setCursor(4,0); //Cột 2, dòng lcd.print("He thong"); //Ghi chữ cột thứ dòng lcd.setCursor(0,1); //Cột 0, dòng thứ lcd.print("canh bao nhiet!"); delay(2000); lcd.clear(); lcd.setCursor(1,0); //Cột 2, dòng lcd.print("Dang thiet lap"); //Ghi chữ cột thứ dòng lcd.setCursor(2,1); //Cột 0, dòng thứ lcd.print("cau hinh !"); BlynkEdgent.begin(); //dht.begin(); dht.setup(DHTPIN, DHTesp::DHT11); 0 timer.setInterval(3000,readSensor); timer.setInterval(1000,updateBlynk); } void loop(){ BlynkEdgent.run(); timer.run(); if(Blynk.connected()){ if(blynkState==0){ blynkState=1; lcd.clear(); lcd.setCursor(0,0); lcd.print("Nhiet do: "); lcd.setCursor(0,1); lcd.print("Do am : "); } } } void readSensor(){ // float h_temp = dht.readHumidity(); // float t_temp = dht.readTemperature(); float h_temp = dht.getHumidity(); float t_temp = dht.getTemperature(); if (isnan(h_temp) || isnan(t_temp)) { Serial.println("Failed to read from DHT sensor!"); //return; }else{ h = h_temp; t = t_temp; if(blynkState==1){ lcd.setCursor(10,0); lcd.print(t,1); lcd.write(0); lcd.print("C "); lcd.setCursor(10,1); lcd.print(h,0); lcd.print("%"); } Serial.print("Nhiệt độ: "); Serial.println(t); Serial.print("Độ ẩm: "); Serial.println(h); eventTrigger = false; if (t > 26.0){ 0 eventTrigger = true; Blynk.logEvent("qua_nong", "Nhiet cao hon 27 C"); Serial.print("Qua nong"); } else eventTrigger = false; } } void updateBlynk(){ if (led.getValue()) { led.off(); } else { led.on(); } Blynk.virtualWrite(V1,t); Blynk.virtualWrite(V2,h); } 0