Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
1,27 MB
Nội dung
BÀI TẬP LỚN MÔN THỰC HÀNH CƠ SỞ THEO DÕI NỒNG ĐỘ KHÍ GAS, NHIỆT ĐỘ VÀ ĐỘ ẨM LỚP: D13DT3 NHÓM: SINH VIÊN: VŨ CHIẾN HOÀNG BÁ HUÂN GIANG XUÂN PHONG I LỜI MỞ ĐẦU………………………………………………… II GIỚI THIỆU CHUNG……………………………………………… … Lịch sử đời phát triển điều khiển tự động…………………… Giới thiệu ứng dụng điều khiển tự động đời sống ngành công nghiệp……………………………………… Tổng quan Internet Of Things………………… Giới thiệu linh kiện sử dụng……………… 4.1.Giới thiệu Arduino………………………………………… 4.2.Cảm Biến Khí Gas MQ2…………………………………………………………………… 4.3.Cảm Biến Nhiệt Độ, Độ Ẩm DHT11 …………………………………… 4.4.Module ESP8266 ……………………………………………………… 4.5.Màn Hình LCD………………………………………………………………… III NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH………………………… Sơ đồ khối mạch……… Lưu đồ thuật toán toàn chương trình……………… Sơ đồ nguyên lý khối mạch……………… 3.1 Khối điều khiển……………………… …………………………………………………… 3.2 Khối cảm biến ………………………………………………………………………… 3.3 Khối đưa liệu lên mạng……………………………………………… 3.4 Khối nguồn………………………… IV THIẾT KẾ PHẦN CỨNG…………………………………………… V THIẾT KẾ PHẦN MỀM……………………… ………………… VI VII KHẢO SÁT TRONG THỰC NGHIỆM……………………… HẠN CHẾ VÀ HƯỚNG KHẮC PHỤC TÀI LIỆU THAM KHẢO………………….……………………………… I LỜI MỞ ĐẦU Ngày với ứng dụng khoa học kỹ thuật tiên tiến, giới ngày thay đổi, văn minh đại Sự phát triển kỹ thuật điện tử tạo hàng loạt thiết bị với đặc điểm bật xác cao, tốc độ nhanh, gọn nhẹ yếu tố cần thiết cho hoạt động người đạt hiệu cao Điện tử trở thành nghành công nghiệp đa nhiệm vụ.Điện tử đáp ứng đòi hỏi không ngừng từ lĩnh vực công nông lâm ngư nghiệp nhu cầu thiết bị đời sống hàng ngày Một ứng dụng quan trọng công nghệ điện tử kỹ thuật điều khiển tự động, góp phần lớn việc điều khiển thiết bị cách thông minh mà không cần đến trợ giúp người, ứng dụng thực tế gắn bó gần gũi với sống hàng ngày chúng ta, hay thiết bị mà người trực tiếp chạm vào đề vận hành điều khiển hệ thống môi trường làm việc độc hại nguy hiểm Xuất phát từ ứng dụng quan trọng trên, em làm đề tài “Thiết bị đo nồng độ khí Gas, đo nhiệt độ, độ ẩm đưa liệu lên mạng” Thiết bị sau thi công mạch xong phát rõ rỉ khí Gas đưa cảnh báo việc kêu còi báo đèn Đo nhiệt độ, độ ẩm đưa tất liệu nồng độ khí gas, nhiệt độ độ ẩm lên trang Web để người dùng theo dõi lúc nơi Trong trình thực đề tài, em cố gắng tránh khỏi thiếu sót, em mong nhận dẫn góp ý thầy cô để thân em đề tài ngày hoàn thiện Em xin chân thành cảm ơn II Ý TƯỞNG SẢN PHẨM Mạch đo nhiệt độ, độ ẩm khí gas sử dụng Arduino Nano, Kit vi điều khiển phổ biến thị trường, sản phầm làm với mục đích để phát việc rò rỉ khí gas nơi hộ gia đình, nhà hàng, xăng, xưởng sản xuất hay nơi sử dụng hay lưu trữ khí gas cảnh báo cho người dùng II GIỚI THIỆU CHUNG Lịch sử đời phát triển điều khiển tự động Tự động hóa ngành thuộc nhóm ngành điện-điện tử dùng để công việc thực mà giúp đỡ can thiệp trưc tiếp người Tự động hóa có nghĩa thực nhiệm vụ đặc biệt với giúp đỡ mạch điện truyền động điện Tự động hóa luôn chứng tỏ ý tưởng có hiệu hầu hết ngành công nghiệp công ty, mà đối phó với sản xuất, vốn hàng hoá tiêu dùng Bất kỳ loại hình sản xuất sẵn sàng tạo điều kiện thuận lợi cách tự động hóa Tự động hóa môn hình thành kỹ thuật điện sử dụng chất bán dẫn phát minh Transitor, diode, thiristor (1949) dần xây dựng vi xử lý(1971) tạo máy tính điều khiển (Role, PLC, 8051, PIC, 8088, PC, ) nên hệ thống truyền động điện động điện - mạch điều khiển thay hệ thống điều khiển khí: xích-bánh răng.Hệ thống tự động hóa phần điện - điện tử của hệ thống có điện - điện tử khí Ví dụ điều khiển lò nhiệt nhà máy thép: có phần Cơ khí Điện, khí phần vỏ lò chịu nhiệt phần Điện tức phần mạch điều khiển nhiệt độ lò để biến điện thành nhiệt Các tên tương đương: Tự động hóa, Điều khiển tự động, Tin học công nghiệp, Điện tự động, Điện tử công nghiệp, thuộc nhóm ngành Kỹ thuật điều khiển - tự động hóa hay rộng thuộc lĩnh vực Kỹ thuật điện Giới thiệu ứng dụng điều khiển tự động đời sống ngành công nghiệp Tự động hóa mang lại nhiều tiện ích cho người sống hàng ngày.ngày có nhiều thiết bị bảo vệ, chăm sóc sức khỏe, robot giúp việc… mang lại nhiều tiện nghi cho người sử dụng Các thiết bị tỏ hữu ích gia đình bạn có người già hay em nhỏ Các thiết bị có mặt nhà giúp nhà đại sang trọng nhiều Trong ngành công nghiệp thiết bị tự động hóa giúp tiết kiệm sức lao động người lao động giúp tiết kiệm nhiều thời gian cho người lao động hướng dẫn đến số trình làm việc khác Lợi lớn việc sử dụng hệ thống tự động công cụ tiết kiệm thời gian quảng cáo đồng thời giúp tiết kiệm chi phí Trong ngành công nghiệp, tham gia vào sản xuất hàng hoá kỹ thuật nặng dịch vụ, ngành công nghiệp hệ thống tự động thực nhiệm vụ, thực thực hiện, nói, 100 người lao động Hệ thống tự động hóa không nửa thời gian người lao động người thực để hoàn thành nhiệm vụ cụ thể Vì lý số lượng bàn tay người yêu cầu phải thực nhiệm vụ cụ thể ngành công nghiệp Điều giúp tiết kiệm thời gian thời gian, công ty toán tiền lương thấp cho người lao động tiết kiệm số tiền lần lợi nhuận nó.Cùng với tất điều này, lợi quan trọng tự động hóa để nâng cao suất công ty.Một ngành công nghiệp, có cài đặt máy tự động trình sản xuất nó, rõ ràng đưa định thông minh Lý thường quan sát thấy tự động hóa trình sản xuất cải thiện suất phần lớn Do đó, tự động hóa văn hóa làm việc công ty cụ thể, công ty tăng tiềm kiếm nhiều cách đầu tư Tổng quan Internet Of Things Internet of Things (IoT) kịch giới, mà đồ vật, người cung cấp định danh riêng mình, tất có khả truyền tải, trao đổi thông tin, liệu qua mạng mà không cần đến tương tác trực tiếp người với người, hay người với máy tính IoT phát triển từ hội tụ công nghệ không dây, công nghệ vi điện tử Internet.Theo khái niệm ta hiểu Internet of Thing (IoT) vật kết nối với qua Internet, người dùng kiểm soát đồ vật minh qua thiết bị thông minh laptop, table PC hay smatphone Internet of Things đời dần cụ thể hóa phim khoa học viễn tưởng thành thực đời sống Internet of Things - Xu hướng công nghệ tương lai ?Mặc dù khái niệm Internet of Things đưa từ lâu.Nhưng năm gần nhiều doanh nghiệp nhà khoa học để ý phát triển mạnh mẽ Trong năm gần triển lãm công nghệ CÉS, triễn lãm di động toàn cầu hãng sản xuất lớn thay đưa thiết bị thông minh: tivi thông minh, tủ lạnh thông minh ý tưởng nhà thông minh liên tục giới thiệu Và gây ý cộng đồng, IoT cho thấy tiềm số đáng kinh ngạc Internet of Things đến năm 2020: • tỉ người kết nối với • ngàn tỷ USD doanh thu • Hơn 25 triệu ứng dụng • Hơn 25 tỷ hệ thống nhúng hệ thống thông minh • 50 ngàn tỷ Gigabytes liệu Đi theo xu hướng toàn cầu cộng với yêu cầu môn học giới hạn, chúng em tìm hiểu thiết bị có khả đo đạc quản lý nồng độ khí gas nhiệt độ phòng Một thiết bị sử dụng công nghệ IOT module ESP 8266, với giá thành rẻ kích thước nhỏ gọn Thiết bị có khả kết nối mạng gửi nhận liệu với wed từ ta sử dụng liệu 4.Giới thiệu linh kiện sử dụng 4.1 Giới thiệu ARDUINO Arduino gì: Arduino board mạch vi xử lý, nhằm xây dựng ứng dụng tương tác với với môi trường thuận lợi Phần cứng bao gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel 8bit, ARM Atmel 32-bit Những Model trang bị gồm cổng giao tiếp USB, chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác Được giới thiệu vào năm 2005, Những nhà thiết kế Arduino cố gắng mang đến phương thức dễ dàng, không tốn cho người yêu thích, sinh viên giới chuyên nghiệp để tạo nhiết bị có khả tương tác với môi trường thông qua cảm biến cấu chấp hành Những ví dụ phổ biến cho người yêu thích bắt đầu bao gồm robot đơn giản, điều khiển nhiệt độ phát chuyển động Đi với môi trường phát triển tích hợp (IDE) chạy máy tính cá nhân thông thường cho phép người dùng viết chương trình cho Aduino ngôn ngữ C C++ a Phần Cứng Một mạch Arduino bao gồm vi điều khiển AVR với nhiều linh kiện bổ sung giúp dễ dàng lập trình mở rộng với mạch khác Một khía cạnh quan trọng Arduino kết nối tiêu chuẩn nó, cho phép người dùng kết nối với CPU board với module thêm vào dễ dàng chuyển đổi, gọi shield Vài shield truyền thông với board Arduino trực tiếp thông qua chân khách nhau, nhiều shield định địa thông qua serial bus I²C-nhiều shield xếp chồng sử dụng dạng song song Arduino thức thường sử dụng dòng chip megaAVR, đặc biệt ATmega8, ATmega168, ATmega328, ATmega1280, ATmega2560 Một vài vi xử lý khác sử dụng mạch Aquino tương thích Hầu hết mạch gồm điều chỉnh tuyến tính 5V thạch anh dao động 16 MHz (hoặc cộng hưởng ceramic vài biến thể), vài thiết kế LilyPad chạy MHz bỏ qua điều chỉnh điện áp onboard hạn chế kích cỡ thiết bị Một vi điều khiển Arduino lập trình sẵn với boot loader cho phép đơn giản upload chương trình vào nhớ flash on-chip, so với thiết bị khác thường phải cần nạp bên Điều giúp cho việc sử dụng Arduino trực tiếp cách cho phép sử dụng máy tính gốc nạp chương trình Theo nguyên tắc, sử dụng ngăn xếp phần mềm Arduino, tất board lập trình thông qua kết nối RS-232, cách thức thực lại tùy thuộc vào đời phần cứng Các board Serial Arduino có chứa mạch chuyển đổi RS232 sang TTL Các board Arduino lập trình thông qua cổng USB, thực thông qua chip chuyển đổi USB-to-serial FTDI FT232 Vài biến thể, Arduino Mini Boarduino không thức, sử dụng board adapter cáp nối USB-to-serial tháo rời được, Bluetooth phương thức khác (Khi sử dụng công cụ lập trình vi điều khiển truyền thống thay ArduinoIDE, công cụ lập trình AVR ISP tiêu chuẩn sử dụng.) Board Arduino đưa hầu hết chân I/O vi điều khiển để sử dụng cho mạch Diecimila, Duemilanove, Uno đưa 14 chân I/O kỹ thuật số, số tạo xung PWM (điều chế độ rộng xung) chân input analog, sử dụng chân I/O số Những chân thiết kế nằm phía mặt board, thông qua header 0.10-inch (2.5 mm).Nhiều shield ứng dụng plug-in thương mại hóa Các board Arduino Nano, Arduino-compatible Bare Bones Board Boarduino cung cấp chân header đực mặt board dùng để cắm vào breadboard Có nhiều biến thể Arduino-compatible Arduino-derived Một vài số có chức tương đương với Arduino sử dụng để thay qua lại Nhiều mở rộng cho Arduino thực thiện cách thêm vào driver đầu ra, thường sử dụng trường học để đơn giản hóa cấu trúc 'con rệp' robot nhỏ Những board khác thường tương đương điện có thay đổi hình dạng-đôi trì độ tương thích với shield, không Vài biến thể sử dụng vi xử lý hoàn toàn khác biệt, với mức độ tương thích khác b Phần Mềm Môi trường phát triển tích hợp (IDE) Arduino ứng dụng cross-platform (nền tảng) viết Java, từ IDE sử dụng cho Ngôn ngữ lập trình xử lý(Processing programming language) project Wiring Nó thiết kế để dành cho nghệ sĩ người tập tành làm quen với lĩnh vực phát triển phần mềm Nó bao gồm chương trình code editor với chức đánh dấu cú pháp, tự động brace matching, tự động canh lề, compile(biên dịch) upload chương trình lên board với cú click chuột Một chương trình code viết cho Arduino gọi sketch.[5] Các chương trình Arduino viết C C++ Arduino IDE kèm với thư viện phần mềm gọi "Wiring", từ project Wiring gốc, giúp thao tác input/output dễ dàng c Chức Arduino mạch Nhận tín hiệu từ cảm biến nhịp tim, sau xử lý tìn hiệu để hiển thị lên hình đưa thông tin lên mạng.Đồng thời thực chức hiển thị thời gian thực 4.2 Cảm Biến Khí Gas MQ2 GIỚI THIỆU: - MQ2 cảm biến khí, dùng để phát khí gây cháy Nó cấu tạo từ chất bán dẫn SnO2.Chất có độ nhạy cảm thấp với không khí sạch.Nhưng môi trường có chất ngây cháy, độ dẫn thay đổi Chính nhờ đặc điểm người ta thêm vào mạch đơn gian để biến đổi từ độ nhạy sang điện áp - Khi môi trường điện áp đầu cảm biến thấp, giá trị điện áp đầu tăng nồng độ khí gây cháy xung quang MQ2 cao - MQ2 hoạt động tốt môi trường khí hóa lỏng LPG, H2, chất khí gây cháy khác Nó sử dụng rộng rãi công nghiệp dân dụng mạch đơn giản chi phí thấp 4.3Cảm Biến Nhiệt Độ, Độ Ẩm DHT11 Giới Thiệu: Cảm biến nhiệt độ độ ẩm DHT11 cảm biến thông dụng chi phí rẻ dễ lấy liệu thông qua giao tiếp one wire Bộ tiền xử lý tín hiệu tích hợp cảm biến giúp bạn có liệu xác mà qua tính toán Thông số kỹ thuật: • Nguồn đén V • Dòng sử dungh 2.5mA • Đo tốt nhiệt độ đén 50 độ C sai số +-2 độ C • Tần số lấy mẫu tối đa 1Hz • Kích thước 15mmx12mmx5.5mm 4.4.Module ESP8266 Giới thiệu : 10 Có nhiều loại LCD với nhiều hình dáng kích thước khác nhau, hình loại LCD thông dụng Khi sản xuất LCD, nhà sản xuất tích hợp chíp điều khiển bên lớp vỏ đưa chân giao tiếp cần thiết Các chân đánh số thứ tự đặt tên hình : III NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH Sơ Đồ Khối Của Mạch 13 MODULE ESP 8266 Internet I KHỐI BÁO HIỆU KHỐI XỬ LÝ TRUNG TÂM KHỐI HIỂN THỊ KHỐI CẢM BIẾN Lưu Đồ Thuật Toán Của Toàn Chương Trình SET UP Cài Đặt Mạng 14 Sai D=analogWrite(A0) Đèn Màu Xanh If(d>40%) Đúng X=DHT.read Đèn đỏ Loa kêu Lặp 15 lần Gửi Dữ Liệu Lên Mạng 3.Sơ đồ nguyên lý khối mạch 3.1Khối điều khiển 15 Khối Arduino, nhận liệu đọc từ cảm biến sau xử lý liệu nồng độ khí gas đạt đến ngưỡng kêu còi đèn báo màu đỏ ngược lại đèn sang màu xanh Dữ liệu cho hiển thị lên hình LCD gửi lên mạng cách đưa liệu lệnh để gửi lên mạng ( Các lệnh tập lệnh AT module ESP8266 ) đến module ESP8266 qua giao tiếp giả UART ( chần chân số ) 3.2Khối cảm biến 3.2.1 Cảm biến khí Gas MQ2 - Trong mạch có chân đầu Aout Dout Trong đó: o Aout: điện áp tương tự Nó chạy từ 0.3à4.5V, phụ thuộc vào nồng độ khí xung quang MQ2 Dout: điện áp số, giá trị 0,1 phụ thuộc vào điện áp tham chiếu nồng độ khí mà MQ2 đo Việc có chân số Dout tiện cho ta mắc ứng dụng đơn giản, không cần đến vi điều khiển Khi ta cần chỉnh giá trị biến trở tới giá trị nồng độ ta muốn cảnh báo Khi nồng độ MQ2 đo thấp mức cho phép Dout = Đèn Led tắt Khi nồng độ khí đo lớn nồng khí cho phép, Dout =0, đèn led sáng Ta ghép nối vào mạch Realy để điều khiển bật tắt đèn, còi, thiết bị cảnh báo khác Một điều khó khăn làm việc với MQ2 khó quy từ điện áp Aout giá trị nồng độ ppm Rồi từ hiển thị cảnh báo theo ppm Do giá trị điện áp 16 trả loại khí khác nhau, lại bị ảnh hưởng nhiệt độ, độ ẩm - Trong thiết bị mình, để xác định điểm cảnh báo làm thủ công o Đầu tiên đo trạng thái không khí sạch, giá trị thu Vout1 o Cho khí ga từ bật lửa rò rỉ Ta thấy giá trị Aout tăng lên Khi đạt khoảng cách khí ga từ bật lửa hợp lý tương ứng với nồng độ khí bắt đầu nguy hiểm, ta ghi lại giá trị Vout2 Ta chọn giá trị Vout2 giá trị ngưỡng cảnh báo Nếu giá trị đo lớn ta cảnh báo o Chỉnh chân biến trở để điện áp đo chân L358 = Vout2 Phần I Cảm biến dùng nồng độ khí ga không khí để thay đổi điện áp, điên áp cảm biến nhỏ hoặc bằng Vcc=5V, điện áp được biến đổi cho vào chân của IC và đẩu AOUT Phần II -Ở dùng IC_KDTT( LM358) với chức là để so sánh điện áp chuẩn với điện áp ở cảm biến -Điện áp ở cảm biến được nối vào chân số của IC và điên áp chuẩn được nối vào chân số với biến trở Rp làm thay đối giá trị điện áp chuẩn nhằm làm tăng độ nhạy cho Modul -Với điện áp chuẩn > điện áp ở cảm biến thì Vout=+V bão hòa=Vcc, DOUT=1, Led không sáng -Với điện áp chuẩn < điện áp ở cảm biến thì Vout=-V bão hòa= GND, DOUT=0, Led thông > sáng -R1 để định thiên -R2 để hạn dòng -Trans Q1 nhận tín hiệu nhị phân từ DOUT thì nó thông , ngược lại nếu nhận thì nó ngắt 17 -Thiết kế vậy để tạo xung có tần số F=1/T với T=0,693(R1+2R2)C1 -Chân số 4(Reset) hoạt động ở sườn âm nhận mức cao( Trans thông, có chênh lệch điện áp của CE và đất, với R3 là để hạn dòng tránh bị doản mạch ) từ Trans Q1 thì ngắt, nhận điện áp từ đất qua R3 ( trans ngắt) thì chân được kích hoạt -> IC 555 không dao động nữa -Khi IC555 không xuất xung thì LED1 không sáng và loa không kêu -Khi mà xuất xung có tần số f ( là chuỗi bit 0,1 liên tục ) thì nhận thì Led1 sáng, nhận thì Led1 tắt ở xung này có tần số f chạy quá nhanh nên Led gần sáng liên tục Xung này qua Trans Q2 được khuếch đại và làm loa kêu Trở R5,R6 hạn dòng Trans, Led R3 là để hạn dòng tránh bị doản mạch 3.2.2 Càm biến nhiệt độ, độ ẩm DHT11 - Sơ đồ kết nối vi xử lý: - Nguyên lý hoạt động: 18 Để giao tiếp với DHT11 theo chuẩn chân vi xử lý thực theo bước: o Gửi tin hiệu muốn đo (Start) tới DHT11, sau DHT11 xác nhận lại o Khi giao tiếp với DHT11, Cảm biến gửi lại byte liệu nhiệt độ đo - Bước 1: gửi tín hiệu Start o MCU thiết lập chân DATA Output, kéo chân DATA xuống khoảng thời gian >18ms Trong Code để 25ms.Khi DHT11 hiểu MCU muốn đo giá trị nhiệt độ độ ẩm o MCU đưa chân DATA lên 1, sau thiết lập lại chân đầu vào o Sau khoảng 20-40us, DHT11 kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko kéo xuống thấp nghĩa ko giao tiếp với DHT11 o Chân DATA mức thấp 80us sau DHT11 kéo nên cao 80us Bằng việc giám sát chân DATA, MCU biết có giao tiếp với DHT11 ko Nếu tín hiệu đo DHT11 lên cao, hoàn thiện trình giao tiếp MCU với DHT - Bước 2: đọc giá trị DHT11 o DHT11 trả giá trị nhiệt độ độ ẩm dạng byte Trong đó: Byte 1: giá trị phần nguyên độ ẩm (RH%) Byte 2: giá trị phần thập phân độ ẩm (RH%) Byte 3: giá trị phần nguyên nhiệt độ (TC) Byte : giá trị phần thập phân nhiệt độ (TC) 19 Byte : kiểm tra tổng Nếu Byte = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) giá trị độ ẩm nhiệt độ xác, sai kết đo nghĩa Đọc liệu: Sau giao tiếp với DHT11, DHT11 gửi liên tiếp 40 bit MCU, tương ứng chia thành byte kết Nhiệt độ độ ẩm Bit 0: Bit 1: 20 Sau tín hiệu đưa 0, ta đợi chân DATA MCU DHT11 kéo lên Nếu chân DATA khoảng 26-28 us 0, tồn 70us Do lập trình ta bắt sườn lên chân DATA, sau delay 50us Nếu giá trị đo ta đọc bit 0, giá trị đo giá trị đo Cứ ta đọc bit 3.3Khối đưa liệu lên mạng Sử dụng module ESP 8266 Module gồm có chân kết nối sau: VCC 3.3 V GND GND EN 3.3V RX Pin 11 TX Pin 10 RST N GPIO N GPIO N ESP điều khiển thông qua truyền thông nối tiếp tấp lệnh AT Đầu tiên phải lệnh AT thiết lập chế độ mạng kết nối wifi cho module Nếu thiết bị kết nối thành công trả tín hiệu cho arduino, arduino hiển thị đoạn tin cửa sổ serial monitor Arduino IDE Thiết lập làm lần đặt hàm setup Sau kết nối mạng xong, muốn gửi liệu lên mạng arduino gửi lệnh cho esp8266 kết nối đến trang wed, cụ thể web sử dụng Thinkspeak.com nên kết nối đến 184.106.153.149/80 miền địa 21 trang web Nếu kết nối lỗi gửi lại phản hồi kết nối lại, thành công gửi độ dài chuỗi liệu ( liệu mà arduino đọc từ cảm biến ) lên trang web Nếu trang web không báo leenhjphanr hồi ACK kết nối lỗi kết nối bận sau Arduino đưa lệnh để ESP8266 đóng kết nối.Nếu trang web xác nhận nhận liệu gửi lại eps8266 lệnh xác nhận ACK, ESP8266 nhận gửi lại lệnh (ACK) báo nhận lệnh xác nhận từ trang Web Khinày ESP8266 gửi tín hiệu phản hồi ( “>”) cho Arduino Arduino nhận phản hồi tức EESP8266 sẵn sàng gửi liệu lênWeb , lức arduino gửi cho esp8266 liệu ( bao gồm nhiệt độ, độ ẩm nồng độ khí gas đọc từ cảm biến ) ESP 8266 đưa liệu lên trang web, trang web nhận liệu gửi lại lệnh xác nhận ACK, ESP nhận gửi lại lệnh nhận xác nhận ACK, phiên giao dịch xong Quá trình truyền, nhận liệu 16s ( Điều phụ thược vào trang web Thinkspeak.com ) 3.4Khối nguồn Sử dụng Adapter 5V, 2A để cung cấp nguồn cho toàn mạch Do module ESP8266 hoạt ngưỡng điện áp từ 3v đến 3.5v theo datasheet nhà sản xuất điện áp để module hoạt động ổn định 3.3v , dòng tối thiểu 250mA Vậy nên phải thiết kế thêm mạch ổn áp 3.3v.Ở nhóm em dùng IC AMS 1117 để ổn áp Nguồn nuôi IC 5v, nguồn 3.3 V lấy từ điện áp tham chiếu IC ( Điện áp tham chiếu 3.3V ) Việc dùng tụ hai bên để giảm độ gợn sóng điên áp vào ra.Ổn định điện áp đầu 22 VIII THIẾT KẾ PHẦN CỨNG IX THIẾT KẾ PHẦN MỀM X PHẦN CODE ARDUINO #include LiquidCrystal lcd(3, 4, 5, 6, 7, 8); #include #include int sensor1State = 0; ///////////////////////////////////////////////////////Gan gia tri cam bien oday int sensor2State = 0; int sensor3State = 0; String apiKey = "BL9UPU79N9IE4Q60"; SoftwareSerial esp8266(10, 11); #include dht DHT; #define DHT11_PIN 12 float gas; int tem; int hum; byte degree[8] = { B01111, B01001, B01001, B01111, B00000, B00000, B00000, B00000, }; void setup() { 23 Serial.begin(9600); esp8266.begin(9600); ATcommands(); // delay(1000); // esp8266.println("AT+RST"); lcd.begin(16, 2); lcd.print("TEMP HUM GAS"); lcd.createChar(1, degree); pinMode(9, OUTPUT); pinMode(13, OUTPUT); } void lcdxx() { lcd.setCursor(0, 1); lcd.print(tem); lcd.write(1); lcd.print("C"); lcd.setCursor(7, 1); lcd.print(hum); lcd.setCursor(9, 1); lcd.print("%"); lcd.setCursor(11, 1); lcd.print(gas); lcd.setCursor(15, 1); lcd.print("%"); } void ATcommands() { esp8266.begin(9600); String TEST = "AT"; String Mode = "AT+CWMODE"; String Wifi "AT+CWJAP=\"PTIT\",\"deotrodau\"";/////////////////////////////////Nhapwfif o day esp8266.println(TEST); 24 = delay(2000); Responds(); esp8266.println(Mode); delay(2000); Responds(); esp8266.println(Wifi); delay(2000); Responds(); } void Responds() { if (esp8266.available()) { while (esp8266.available()) { char c = esp8266.read(); Serial.write(c); } } } void ESP8266() { String state1 = String(sensor1State); String state2 = String(sensor2State); String state3 = String(sensor3State); String cmd = "AT+CIPSTART=\"TCP\",\""; cmd += "184.106.153.149"; cmd += "\",80"; esp8266.println(cmd); Serial.println(cmd); if (esp8266.find("Error")) { Serial.println("AT+CIPSTART error"); return; } String getStr = "GET /update?api_key="; getStr += apiKey; getStr += "&field1="; getStr += String(state1); 25 getStr += "&field2="; getStr += String(state2); getStr += "&field3="; getStr += String(state3); getStr += "\r\n\r\n"; cmd = "AT+CIPSEND="; cmd += String(getStr.length()); esp8266.println(cmd); Serial.println(cmd); if (esp8266.find(">")) { esp8266.print(getStr); Serial.print(getStr); } else { esp8266.println("AT+CIPCLOSE"); Serial.println("AT+CIPCLOSE"); } //delay(16000); } void DHT11() { int chk = DHT.read11(DHT11_PIN); Serial.print("Temperature = "); tem = DHT.temperature; Serial.println(tem); Serial.print("Humidity = "); hum = DHT.humidity; Serial.println(hum); //delay(1000); } void MQ2() { float i = analogRead(A0); gas = ((i / 1023) * 100); if (gas < 40) { digitalWrite(13, 0); 26 digitalWrite(9, 0); } else { digitalWrite(13, 1); digitalWrite(9, 1); } } void loop() { sensor1State = gas; sensor2State = tem; sensor3State = hum; DHT11(); MQ2(); lcdxx(); ESP8266(); } KHẢO SÁT TRONG THỰC NGHIỆM HẠN CHẾ VÀ HƯỚNG KHẮC PHỤC TÀI LIỆU THAM KHẢO XI XII 27 [...]... trên DHT11 o DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó: Byte 1: giá trị phần nguyên của độ ẩm (RH%) Byte 2: giá trị phần thập phân của độ ẩm (RH%) Byte 3: giá trị phần nguyên của nhiệt độ (TC) Byte 4 : giá trị phần thập phân của nhiệt độ (TC) 19 Byte 5 : kiểm tra tổng Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết... Khi nồng độ khí đo được lớn hơn nồng khí cho phép, Dout =0, đèn led sáng Ta có thể ghép nối vào mạch Realy để điều khiển bật tắt đèn, còi, hoặc thiết bị cảnh báo khác Một điều khó khăn khi làm việc với MQ2 là chúng ta khó có thể quy từ điện áp Aout về giá trị nồng độ ppm Rồi từ đó hiển thị và cảnh báo theo ppm Do giá trị điện áp 16 trả về từng loại khí khác nhau, lại bị ảnh hưởng nhiệt độ, độ ẩm nữa... là Aout và Dout Trong đó: o Aout: điện áp ra tương tự Nó chạy từ 0.3à4.5V, phụ thuộc vào nồng độ khí xung quang MQ2 Dout: điện áp ra số, giá trị 0,1 phụ thuộc vào điện áp tham chiếu và nồng độ khí mà MQ2 đo được Việc có chân ra số Dout rất tiện cho ta mắc các ứng dụng đơn giản, không cần đến vi điều khiển Khi đó ta chỉ cần chỉnh giá trị biến trở tới giá trị nồng độ ta muốn cảnh báo Khi nồng độ MQ2 đo... để hạn dòng tránh bị doản mạch 3.2.2 Càm biến nhiệt độ, độ ẩm DHT11 - Sơ đồ kết nối vi xử lý: - Nguyên lý hoạt động: 18 Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước: o Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại o Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo được - Bước 1: gửi tín hiệu Start o MCU thiết... nãy arduino sẽ gửi cho esp8266 dữ liệu ( bao gồm nhiệt độ, độ ẩm và nồng độ khí gas đọc từ các cảm biến ) ESP 8266 sẽ đưa dữ liệu này lên trang web, trang web nhận được dữ liệu sẽ gửi lại lệnh xác nhận ACK, ESP nhận được sẽ gửi lại lệnh đã nhận được xác nhận ACK, vậy phiên giao dịch này xong Quá trình truyền, nhận dữ liệu sẽ mất 16s ( Điều này phụ thược vào trang web Thinkspeak.com ) 3.4Khối nguồn Sử... lý dữ liệu nếu nồng độ khí gas đạt đến một ngưỡng nào đó thì sẽ kêu còi và đèn báo màu đỏ ngược lại thì đèn sang màu xanh Dữ liệu sẽ cho hiển thị lên màn hình LCD và gửi lên mạng bằng cách đưa dữ liệu và lệnh để gửi lên mạng ( Các lệnh này là các tập lệnh AT của module ESP8266 ) đến module ESP8266 qua giao tiếp giả UART ( các chần này có thể là chân số ) 3.2Khối cảm biến 3.2.1 Cảm biến khí Gas MQ2 -... độ, độ ẩm nữa - Trong thiết bị của mình, để xác định điểm cảnh báo mình làm khá thủ công o Đầu tiên đo trạng thái không khí sạch, giá trị thu được Vout1 o Cho khí ga từ bật lửa rò rỉ ra Ta thấy giá trị Aout tăng lên Khi đạt khoảng cách khí ga từ bật lửa hợp lý rồi tương ứng với nồng độ khí bắt đầu nguy hiểm, ta ghi lại giá trị Vout2 Ta chọn giá trị Vout2 là giá trị ngưỡng cảnh báo Nếu giá trị đo được... quả của Nhiệt độ và độ ẩm Bit 0: Bit 1: 20 Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1 Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay 50us Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì giá trị đo được là 1 Cứ như thế ta đọc các bit tiếp theo 3.3Khối... hiệu Start o MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms Trong Code mình để 25ms.Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm o MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào o Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11 o Chân DATA sẽ ở mức... từ 3v đến 3.5v và theo datasheet của nhà sản xuất thì điện áp để module này hoạt động ổn định nhất là 3.3v , dòng tối thiểu là 250mA Vậy nên phải thiết kế thêm một mạch ổn áp 3.3v.Ở đây nhóm em dùng IC AMS 1117 để ổn áp Nguồn nuôi IC là 5v, nguồn 3.3 V sẽ lấy từ điện áp tham chiếu của IC ( Điện áp tham chiếu bằng 3.3V ) Việc dùng các tụ ở hai bên là để giảm độ gợn sóng của điên áp vào và ra.Ổn định