THIẾT kế THÙNG PHÂN LOẠI (có code và sơ đồ mạch) ..................... THIẾT kế THÙNG PHÂN LOẠI (có code và sơ đồ mạch) ..................... THIẾT kế THÙNG PHÂN LOẠI (có code và sơ đồ mạch) ..................... THIẾT kế THÙNG PHÂN LOẠI (có code và sơ đồ mạch) ..................... THIẾT kế THÙNG PHÂN LOẠI (có code và sơ đồ mạch) .....................
ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ THÙNG PHÂN LOẠI VỎ CHAI MỤC LỤC DANH MỤC CÁC HÌNH VẼ IX DANH MỤC CÁC TỪ VIẾT TẮT X CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 GIỚI THIỆU CHUNG 1.2 MỤC ĐÍCH VÀ Ý NGHĨA .2 1.3 YÊU CẦU KỸ THUẬT 1.4 PHƯƠNG PHÁP NGHIÊN CỨU CHƯƠNG THIẾT KẾ PHẦN CỨNG 2.1 SƠ ĐỒ KHỐI .3 2.2 KHỐI POWER LM2596 2.3 KHỐI USER INTERFACE 2.3.1 Khối LCD 2.3.2 Module ghi âm giọng nói ISD1820 2.3.3 Servo RC 2.4 CẢM BIẾN 2.4.1 Cảm biến tiệm cận hồng ngoại 2.4.2 Cảm biến thu phát hồng ngoại V1 2.4.3 Cảm biến phát kim loại tiệm cận 2.5 WEMOS 2.6 NGUYÊN LÝ HOẠT ĐỘNG 10 CHƯƠNG THIẾT KẾ MƠ HÌNH 11 3.1 LƯU ĐỒ GIẢI THUẬT 11 3.2 THIẾT KẾ PHÂN LOẠI VỎ CHAI 12 3.2.1 Code mô .12 3.2.2 Thực tế 13 3.3 THIẾT KẾ WEB TRUYỀN DỮ LIỆU LÊN 14 3.3.1 Code mô .14 3.3.2 Kết mô 15 3.4 THIẾT KẾ TRẢ PHIẾU TỪNG THUỘC VÀO LOẠI VỎ CHAI 16 3.4.1 Code mô .16 3.4.2 Kết mô 17 CHƯƠNG ĐÁNH GIÁ KẾT QUẢ .18 4.1 NHẬN XÉT .18 4.2 ƯU ĐIỂM 18 4.3 NHƯỢC ĐIỂM 18 4.4 KẾT QUẢ THIẾT KẾ 19 CHƯƠNG KẾT LUẬN 20 5.1 KẾT LUẬN .20 5.2 HƯỚNG PHÁT TRIỂN 20 TÀI LIỆU THAM KHẢO 21 PHỤ LỤC A 22 DANH MỤC CÁC HÌNH VẼ HÌNH 1-1: VỎ CHAI ĐƯỢC VỨT RA BIỂN HÌNH 2-2: SƠ ĐỒ CỦA HỆ THỐNG HÌNH 2-3: SƠ ĐỒ NGUYÊN LÝ CỦA MẠCH NGUỒN LM2596 HÌNH 2-4: SƠ ĐỒ NGUYÊN LÝ CỦA KHỐI USER INTERFACE HÌNH 2-5: ARDUINO KẾT NỐI LCD VÀ I2C HÌNH 2-6: MODULE GHI ÂM GIỌNG NĨI HÌNH 2-7: SƠ ĐỒ NGUYÊN LÝ CỦA KHỐI SENSOR HÌNH 2-8: CẢM BIẾN TIỆM CẬN HỒNG NGOẠI .7 HÌNH 2-9: CẢM BIẾN PHÁT HIỆN KIM LOẠI TIỆM CẬN HÌNH 2-10: SƠ ĐỒ NGUYÊN LÝ CỦA WEMOS HÌNH 2-11: WEMOS D1 MINI HÌNH 2-12: SƠ ĐỒ NGUYÊN LÝ HỆ THỐNG 10 HÌNH 3-13: LƯU ĐỒ GIẢI THUẬT 11 HÌNH 3-14: KẾT QUẢ MÔ PHỎNG PHÂN LOẠI VỎ CHAI 13 HÌNH 3-15: KẾT QUẢ MƠ PHỎNG WEB 15 HÌNH 3-16: KẾT QUẢ MÔ PHỎNG NHẢ PHIẾU .17 HÌNH 4-17: MƠ HÌNH THIẾT KẾ 19 HÌNH 4-18: BÊN TRONG MƠ HÌNH 19 DANH MỤC CÁC TỪ VIẾT TẮT HTML HyperText Markup Language HTTP HyperText Transfer Protocol I2C Inter-Intergrated Circuit LCD Liquid crystal display LED Light Emitting Diode MCU Microcontrollers PWM Pulse Width Modulation TCP/IP Transfer Control Protocol/Internet Protocol Trang 1/31 CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu chung Hiện môi trường sống ngày bị đe dọa chất thải công nghiệp, sinh hoạt, ô nhiễm tiếng ồn, ô nhiễm nguồn nước Đặc biệt, rác thải từ bao nilon, loại vỏ chai nguy hiểm Mỗi năm có đến hàng trăm tỷ chai nhựa tiêu thụ Những chai nhựa nhiều thời gian để phân hủy đến mức bạn muốn bảo vệ mơi trường nên dừng việc tiêu thụ chúng Hiện có khoảng 100 tỷ đồ uống sử dụng chai nhựa bán tính riêng nước Mỹ Theo trang Guardian, hàng triệu chai nhựa sản xuất phút, với khoảng 20.000 chai bán giây Khoảng 70 450 năm, tùy vào loại nhựa Bên cạnh đó, q trình phân hủy chai, vi khuẩn tạo khí CO làm gây hại cho mơi trường Vậy ta cần làm để bảo vệ môi trường sống ngày bị đe dọa Đề tài đồ án tốt nghiệp “Thiết kế thùng phân loại vỏ chai” giải pháp để giải tạm thời vấn đề Hình 1-1: Vỏ chai vứt biển [nguồn internet] 1.2 Mục đích ý nghĩa Thiết Kế Thùng Phân Loại Vỏ Chai Trang 2/31 Với xu hướng phát triển mạnh mẽ cơng nghệ internet tồn cầu, thiết kế thùng phân loại vỏ chai có khả hiển thị lên Web WiFi giúp người truy cập xem số lượng vỏ chai bỏ vào trước Đề tài nghiên cứu nhằm mục đích nâng cao nhận thức tác hại rác thải môi trường đồng thời khuyến khích người ý thức bỏ rác nơi quy định phân loại rác thải hợp lý 1.3 Yêu cầu kỹ thuật Để thực đề tài ta cần làm bước sau: - Thiết kế hệ thống có khả ghi nhận rác thải dạng vỏ chai phân thành loại khác nhau: chai nhựa, vỏ kim loại, thủy tinh Hệ thống có chức trả cho người sử dụng phiếu ghi nhận tùy thuộc giá trị vỏ chai bỏ vào cho hệ thống - Thông báo lên Web số lượng vỏ chai loại (sử dụng giao tiếp WiFi) thông báo thùng chứa bị đầy - Thi công phần cứng dựa theo tảng ESP8266, hỗ trợ code Arduino 1.4 Phương pháp nghiên cứu Thời buổi cơng nghệ phát triển mạnh mẽ WiFi có mặt khác nơi vấn đề ứng dụng việc sử dụng WiFi vào sống dễ dàng nhanh chóng WeMos lựa chọn hợp lý tích hợp khối MCU module giao tiếp WiFi WeMos nhận tín hiệu cảm biến truyền để xử lý truyền theo giao thức Web server Để phân loại chai nhôm, nhựa, thủy tinh ta cần dùng cảm biến kim loại công tắc hành trình Trả phiếu ta dùng servo, phần mềm hỗ trợ lập trình cho tồn dự án chủ yếu phần mềm Arduino CHƯƠNG 2.1 Sơ đồ khối Thiết Kế Thùng Phân Loại Vỏ Chai THIẾT KẾ PHẦN CỨNG Trang 3/31 Hình 2-2: Sơ đồ hệ thống Khối nguồn LM2596 cấp nguồn 5V cho toàn hệ thống WeMos trung tâm điều khiển nhận liệu từ cảm biến để truyền cho LCD, module ghi âm giọng nói, servo, Web thơng qua WiFi 1.1 Khối Power LM2596 Sơ đồ nguyên lý Hình 2-3: Sơ đồ nguyên lý mạch nguồn LM2596 Module LM2596 Mạch giảm áp LM2596-5V có khả ổn định điện áp đầu đầu vào thay đổi giúp mạch nguồn LM2596 giúp ổn định điện áp 5V cho khối module WeMos, Sensor,… Hoạt động ổn định điện áp 5V bảo vệ thiết bị khỏi áp Thiết Kế Thùng Phân Loại Vỏ Chai Trang 4/31 2.2 Khối user interface Sơ đồ nguyên lý Hình 2-4: Sơ đồ nguyên lý khối user interface 1.1.1 Khối LCD LCD20x4 hình thị ký tự, kết hợp mạch chuyển I2C nhằm rút ngắn số chân kết nối với Arduino từ 12 chân xuống chân Trong đề tài LCD dùng để thị số lượng loại vỏ chai bỏ vào tổng số lượng tất vỏ chai, hiển thị trạng thái đầy chứa bị đầy hay không đầy để người sử dụng biết Hình 2-5: Arduino kết nối LCD I2C [nguồn www.arduino.cc] 2.2.1 Module ghi âm giọng nói ISD1820 Module ghi âm giọng nói ISD1820 hoạt động điện áp 3-5V Dùng để ghi âm, ghi điều khiển với nút điều khiển vi điều khiển, kiểm sốt tín hiệu vào ISD1820 đề tài dùng để ghi âm giọng nói có sẵn sau lập trình vi điều khiển để phát vào thời điểm mà mong muốn tức có người xuất Thiết Kế Thùng Phân Loại Vỏ Chai Trang 5/31 Hình 2-6: Module ghi âm giọng nói [nguồn internet] 1.1.2 Servo RC RC servo thiết bị có gắn động mini hệ bánh giảm tốc, mục đích giúp trục quay đến góc mong muốn mà giữ góc xác khơng bị trơi lệch Ngồi ra, RC servo có khả chịu tải lớn nhiều lần so với trọng lượng RC servo thường ứng dụng robot, đồ chơi mơ hình RC Hoạt động RC servo dựa nguyên lý nhận xung PWM cho góc quay RC servo xoay góc cố định có nghĩa khơng thể xoay quanh trục loại động bình thường Tùy loại RC servo mà góc quay hoạt động 90o hay 180o, đa phần 90o Servo đề tài sử dụng để nhả thẻ tương ứng với loại vỏ chai mà người dùng bỏ vào thùng 2.3 Cảm biến Sơ đồ nguyên lý Thiết Kế Thùng Phân Loại Vỏ Chai Trang 17/31 Hình 3-16: Kết mơ nhả phiếu Thiết Kế Thùng Phân Loại Vỏ Chai Trang 18/31 CHƯƠNG - ĐÁNH GIÁ KẾT QUẢ 4.1 Nhận xét Trong q trình thực đề tài gặp khơng khó khăn: o Khi bỏ chai vào thùng chai số lượng tăng liên tục, cảm biến không nhận đồng thời, khắc phục cách đặt thêm biến để trì trạng thái thêm thời gian để cảm biến nhận o Phân loại thủy tinh ban đầu sử dụng cảm biến cân nặng để quan sát xem vỏ chai nặng thủy tinh cảm biến cân nặng cần khoảng thời gian delay lâu thông báo số cân mong muốn Khắc phục vấn đề cách thay công tắc hành trình tức có vật đủ nặng tác động vào cơng tắc báo chai thủy tinh - 4.2 Ưu điểm Mạch nhỏ gọn, giá thành hợp lý phù hợp để sản xuất số lượng lớn đặt nhiều nơi - Mơ hình giúp người dùng giám sát số vỏ chai thu gom đâu giới thông qua giao diện Web - Nâng cao tính tự giác người việc bỏ rác nơi quy định, cách trả thưởng phiếu hiển thị Web giúp người xem thành - 4.3 Nhược điểm Còn hạn chế phân loại vỏ chai chất liệu thủy tinh - Khi điện liệu khơng phục hồi liệu trước - Thỉnh thoảng bị nhiễu ánh sáng mạnh - Tính bảo mật thấp 4.4 Kết thiết kế Thiết Kế Thùng Phân Loại Vỏ Chai Trang 19/31 Hình 4-17: Mơ hình thiết kế Hình 4-18: Bên mơ hình Thiết Kế Thùng Phân Loại Vỏ Chai Trang 20/31 CHƯƠNG KẾT LUẬN - 5.1 Kết luận Mơ hình có khả tự động phân loại đếm số kượng vỏ chai bỏ vào - Hệ thống tự động trả phiếu tùy thuộc số lượng loại vỏ chai bỏ vào để quy đổi giá trị chẳng hạn nước hay đồ vật - Mơ hình hoạt động ổn định, dễ sử dụng, bị nhiễu ánh sáng tác động - Truyền liệu lên Web giúp người truy cập dễ dàng để biết số lượng vỏ chai bỏ vào thùng kiểm soát trạng thái thùng chứa - 5.2 Hướng phát triển Giao diện Web thiết kế đa dạng chẳng hạn thêm ngày, giờ, tên tài khoản truy cập - Thiết kế mô hình bên thùng để tự phân loại vỏ chai xếp vào vị trí thích hợp - Nhận dạng vỏ chai thủy tinh xử lý ảnh - Xuất phiếu ghi nhận cách tự động in phiếu cập nhật tài khoản cá nhân người dùng - Lắp đặt Camera để giám sát thuận tiện Thiết Kế Thùng Phân Loại Vỏ Chai Trang 21/31 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] Kiều Xuân Thực, Vũ Thị Thu Hương (2014), “Vi điều khiển cấu trúc lập trình ứng dụng”, Nhà xuất Giáo dục [2] Nguyễn Hữu Khánh Nhân (2013), Slide giảng “Truyền số liệu mạng máy tính”, Tp Hồ Chí Minh: Đại học Tôn Đức Thắng Tiếng Anh: [3] Alasdair Allan (2016), Learning ESP8266 — Build the Internet of Things with the Arduino IDE and Raspberry Pi, O’Reilly [4] Richard Blum (2015), Arduino Programming in 24 Hours Thiết Kế Thùng Phân Loại Vỏ Chai Trang 22/31 PHỤ LỤC A #include #include #include #include #include "HX711.h" #include //****************Dinh nghia wifi #define ssid "Nguyen Toi" // WiFi SSID #define password "123456789" // WiFi password //****************Dinh nghia pin sensor #define pin_dispenser 15 //D8 nha phieu #define pin_sensor_people 12 //D6 #define pin_sensor_bottle 13 //D7 #define pin_sensor_metal 14 //D5 #define pin_sensor_full //D3 #define pin_play_e //D4 #define pin_load_cell 16 //D0 //Timeout unsigned long time_upload; unsigned long time_bottle; unsigned long time_people; unsigned char total_bottle; unsigned char total_bottle_plastic; unsigned char total_bottle_metal; Thiết Kế Thùng Phân Loại Vỏ Chai Trang 23/31 unsigned char total_bottle_glass; unsigned char detect_people; unsigned char detect_bottle; unsigned char detect_metal; unsigned char detect_glass; unsigned char detect_full; //flag for sensor unsigned char f_people = 0; unsigned char f_bottle = 0; unsigned char f_metal = 0; unsigned char f_play = 0; unsigned char f_glass = 0; String status_full = "NORMAL"; //byte mac[] = { // 0x60, 0x01 0x94, 0x36, 0x22, 0x28 //}; // Création des objets / create ObjectsDHT dht(DHTPIN, DHTTYPE); IPAddress ip(192, 168, 1, 200); IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 255, 0); IPAddress dns(8, 8, 8, 8); ESP8266WebServer server ( 80 ); LiquidCrystal_I2C lcd(0x3F,20,4); String getPage(){ Thiết Kế Thùng Phân Loại Vỏ Chai Trang 24/31 String page = ""; page += "thung phan loai vo chai - www.projetsdiy.fr"; page += " body { background-color: #fffff; font-family: Arial, Helvetica, Sans-Serif; Color: #000088; }"; page += "THUNG PHAN LOAI CHAI"; page += "Tong so chai"; page += "- tong so chai : "; page += total_bottle; page += " chai
- Tong so chai nhua : "; page += total_bottle_plastic; page += " chai
- Tong so chai nhom : "; page += total_bottle_metal; page += " chai
- Tong so chai thuy tinh : "; page += total_bottle_glass; page += " chai
- Trang thai thung chua ( "; page += status_full; page += ")"; page += "
diyprojects.io
"; Thiết Kế Thùng Phân Loại Vỏ Chai VO Trang 25/31 page += ""; return page; } void handleRoot(){ if ( server.hasArg("LED") ) { handleSubmit(); } else { server.send ( 200, "text/html", getPage() ); } } void handleSubmit() { // clear gia tri eeprom } void setup() { lcd.init(); lcd.backlight(); Serial.begin (9600 ); //setup pin mode pinMode(pin_sensor_people,INPUT_PULLUP); pinMode(pin_sensor_bottle,INPUT_PULLUP); pinMode(pin_sensor_metal,INPUT_PULLUP); pinMode(pin_sensor_full,INPUT_PULLUP); pinMode(pin_load_cell,INPUT_PULLUP); pinMode(pin_play_e,OUTPUT); pinMode(pin_dispenser,OUTPUT); //setup wifi Thiết Kế Thùng Phân Loại Vỏ Chai Trang 26/31 WiFi.begin ( ssid, password ); while ( WiFi.status() != WL_CONNECTED ) { delay ( 50 ); Serial.print ( "." ); } WiFi.config(ip, gateway, subnet, dns); // WiFi connexion is OK Serial.println ( "" ); Serial.print ( "Connected to " ); Serial.println ( ssid ); Serial.print ( "IP address: " ); Serial.println ( WiFi.localIP() ); Serial.println(WiFi.macAddress()); // On branche la fonction qui gère la premiere page / link to the function that manage launch page server.on ( "/", handleRoot ); server.begin(); Serial.println ( "HTTP server started" ); time_upload = millis(); digitalWrite(pin_play_e,HIGH); lcd.clear(); EEPROM.begin(512); total_bottle_plastic = EEPROM.read(10); total_bottle_metal = EEPROM.read(20); total_bottle_glass = EEPROM.read(30); EEPROM.end(); if(total_bottle_plastic > 250) total_bottle_plastic = 0; if(total_bottle_metal > 250) total_bottle_metal = 0; Thiết Kế Thùng Phân Loại Vỏ Chai Trang 27/31 if(total_bottle_glass > 250) total_bottle_glass = 0; } void loop() { if ( (unsigned long) (millis() - time_upload) > 10000){ // 10 giay upload du lieu len web mot lan server.handleClient(); time_upload = millis(); EEPROM.begin(512); EEPROM.write(10,total_bottle_plastic); EEPROM.write(20,total_bottle_metal); EEPROM.write(30,total_bottle_glass); EEPROM.end(); } //*******************kiem tra cam bien detect_people = digitalRead(pin_sensor_people); detect_bottle = digitalRead(pin_sensor_bottle); detect_metal = digitalRead(pin_sensor_metal); detect_full = digitalRead(pin_sensor_full); detect_glass = digitalRead(pin_load_cell); //****************keim tra cam bien phat hien nguoi if(detect_people == 1){ time_people = millis(); f_play = 0; } if(detect_people == && f_play == 0){ //nguoi toi, phat loi chao moi ban bo chai vao thung digitalWrite(pin_play_e,LOW); Thiết Kế Thùng Phân Loại Vỏ Chai Trang 28/31 delay(50); digitalWrite(pin_play_e,HIGH); delay(50); f_play = 1; } if((unsigned long) (millis() - time_people ) > 15000 ) { f_play = 0; } //*****************phan loai va dem so chai bo vao if(detect_bottle == 0){ f_bottle = 1; time_bottle = millis(); } if(detect_metal == 0){ f_metal = 1; time_bottle = millis(); } if(detect_glass == 0){ f_glass = 1; time_bottle = millis(); } if((unsigned long) (millis() - time_bottle ) > 30 && (unsigned long) (millis() time_bottle ) < 500 ){ //doi chi bo vao if(f_bottle == && f_metal == && f_glass == 0){ total_bottle_plastic++; digitalWrite(pin_dispenser,HIGH); delay(10); digitalWrite(pin_dispenser,LOW); // Kich xung cho Uno Thiết Kế Thùng Phân Loại Vỏ Chai Trang 29/31 } if(f_bottle == && f_metal == && f_glass == 0){ total_bottle_metal++; digitalWrite(pin_dispenser,HIGH); delay(10); digitalWrite(pin_dispenser,LOW); // Kich xung cho Uno delay(10); digitalWrite(pin_dispenser,HIGH); delay(10); digitalWrite(pin_dispenser,LOW); // Kich xung cho Uno } if(f_bottle == && f_metal == && f_glass == 1){ total_bottle_glass++; digitalWrite(pin_dispenser,HIGH); delay(10); digitalWrite(pin_dispenser,LOW); // Kich xung cho Uno } f_bottle = 0; f_metal = 0; f_glass = 0; } //*******************hien thi LCD total_bottle = total_bottle_plastic + total_bottle_metal + total_bottle_glass; if(total_bottle >=100){ total_bottle_plastic = 0; total_bottle_metal = 0; total_bottle_glass = 0; } lcd.setCursor(0,0); Thiết Kế Thùng Phân Loại Vỏ Chai Trang 30/31 lcd.print("Tong chai "); lcd.print(total_bottle); lcd.print(" "); lcd.setCursor(14,0); lcd.setCursor(0,1); lcd.print("Chai nhua "); lcd.print(total_bottle_plastic); lcd.print(" "); lcd.setCursor(0,2); lcd.print("Chai thuy tinh "); lcd.print(total_bottle_glass); lcd.print(" "); lcd.setCursor(0,3); lcd.print("Chai nhom "); lcd.print(total_bottle_metal); lcd.print(" "); lcd.setCursor(14,3); if(detect_full == 0){ lcd.print("FULL "); status_full = "FULL"; } else { lcd.print("NORMAL"); status_full = "NORMAL"; } Thiết Kế Thùng Phân Loại Vỏ Chai Trang 31/31 } Thiết Kế Thùng Phân Loại Vỏ Chai ... servonhaphieu.write(0); } 3.4.2 Kết mô Thiết Kế Thùng Phân Loại Vỏ Chai Trang 17/31 Hình 3-16: Kết mơ nhả phiếu Thiết Kế Thùng Phân Loại Vỏ Chai Trang 18/31 CHƯƠNG - ĐÁNH GIÁ KẾT QUẢ 4.1 Nhận xét Trong... sử dụng để nhả thẻ tương ứng với loại vỏ chai mà người dùng bỏ vào thùng 2.3 Cảm biến Sơ đồ nguyên lý Thiết Kế Thùng Phân Loại Vỏ Chai Trang 6/31 Hình 2-7: Sơ đồ nguyên lý khối sensor Đề tài sử... 4-17: Mơ hình thiết kế Hình 4-18: Bên mơ hình Thiết Kế Thùng Phân Loại Vỏ Chai Trang 20/31 CHƯƠNG KẾT LUẬN - 5.1 Kết luận Mô hình có khả tự động phân loại đếm số kượng vỏ chai bỏ vào - Hệ thống