Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
1,21 MB
Nội dung
1 LỜI CẢM ƠN Lời đầu tiên, cho chúng em xin gửi lời cảm ơn sâu sắc đến cô giáo TS Bùi Văn Huy tận tình hướng dẫn, bảo, cung cấp tài liệu cần thiết, giúp đỡ động viên để em hồn thành đồ án Chúng Em xin gửi lời cảm ơn chân thành tới thầy cô khoa Điện Điện tử nói riêng Trường Đại học Cơng Nghiệp Hà Nội nói chung tận tình giảng dạy, giúp đỡ truyền đạt kiến thức quý báu cho em suốt năm học tập rèn luyện trường vừa qua Em xin chân thành cảm ơn! Hà Nội , tháng 03 năm 2018 MỤC LỤC Trang Lời nói đầu CHƯƠNG I: CƠ SỞ LÝ THUYẾT A Tổng quan Arduino Giới thiệu chung Cấu trúc phần cứng B Cơ sở lý thuyết Module Wifi ESP8266 Giới thiệu ESP8266 Cấu tạo NODEMCU ESP8266 Tính NODEMCU ESP8266 Quản lý lượng NODE MCU ESP8266 Cấu trúc phần mềm lập trình Arduino C Đặc điểm cảm biến DHT11 D Cơ sở lý thuyết APP Blynk CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG A Yêu cầu hệ thống 2.1 Mô tả hoạt động hệ thống 2.2 Yêu cầu hệ thống CHƯƠNG 3: MÔ PHỎNG VÀ XÂY DỰNG HỆ THỐNG THỰC NGHIỆM 3.1 Bài toán đặt 3.2 Thiết kế hệ thống Bảng liệt kê linh kiện Cài đặt giao diện Blynk Viết chương trình code cho Vi điều khiển NODEMCU 3.3 Lưu đồ thuật toán 3.4 Kết thực nghiệm KẾT LUẬN LỜI NÓI ĐẦU Trong xu phát triển nay, với bùng nổ ngành cơng nghệ thơng tin, điện tử, tự động hóa,… Đã làm cho đời sống người ngày hồn thiện Các thiết bị tự động hóa ngày xâm lấn vào sản xuất chí vào sống sinh hoạt hàng ngày người Do ngơi nhà thơng minh giám sát điều khiển từ xa trở thành thực Là sinh viên khoa Điện trường Đại học công Nghiệp Hà Nội , kiến thức học mong muốn thiết kế mơ hình nhà tự động hóa đáp ứng nhu cầu sinh hoạt hàng ngày Nhóm em mạnh dạn chọn “Thiết kế mạch điều khiển thiết bị giám sát nhiệt độ , độ ẩm qua internet” làm đề tài cho đồ án Trong trình thực đồ án mình, hướng dẫn thầy BÙI VĂN HUY em cố gắng để hoàn thiện cách tốt Nhưng với kiến thức hiểu biết có hạn nên khơng tránh khỏi thiếu sót mong thầy bạn đóng góp ý kiến đề tài em hoàn thiện Chương CƠ SỞ LÝ THUYẾT A Tổng quan Arduino Giới thiệu chung Arduino mã nguồn mở điện tử tạo thành từ phần cứng phần mềm.Về mặt kĩ thuật coi Arduino điều khiển logic lập trình Đơn giản hơn, Arduino thiết bị tương tác với ngoại cảnh thông qua cảm biến hành vi lập trình sẵn Với thiết bị việc lắp ráp điều khiển thiết bị điện tử dễ dàng hết Hiện có nhiều loại vi điều khiển đa số lập trình ngơn ngữ C/C++ Assembly nên khó khăn cho người có kiến thức sâu điện tử lập trình Nó trở ngại cho người muốn tạo riêng cho đồ mang tính cơng nghệ Song Arduino giải vấn đề này, Arduino phát triển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử lập trình vi điều khiển người tiếp cận dễ dàng với thiết bị điện tử mà không cần nhiều kiến thức điện tử thời gian Những mạnh Arduino so với tảng vi điều khiển khác: - Chạy đa tảng: Việc lập trình Arduino thực hệ điều hành khác Windows, Mac Os, Linux Desktop, Android di động - Ngơn ngữ lập trình đơn giản dễ hiểu - Mã nguồn mở: Arduino phát triển dựa nguồn mở nên phần mềm chạy Arduino chia sẻ dễ dàng tích hợp vào tảng khác - Mở rộng phần cứng: Arduino thiết kế sử dụng theo dạng modul nên việc mở rộng phần cứng dễ dàng - Đơn giản nhanh: Rất dễ dàng lắp ráp, lập trình sử dụng thiết bị - Dễ dàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với mà không lo lắng ngôn ngữ hay hệ điều hành sử dụng Arduino chọn làm não xử lý nhiều thiết bị từ đơn giản đến phức tạp Trong số có vài ứng dụng thực chứng tỏ khả vượt trội Arduino chúng có khả thực nhiều nhiệm vụ phức tạp Arduino biết đến nhiều phần cứng nó, phải có phần mềm để lập trình phần cứng Cả phần cứng phần mềm gọi chung Arduino ♦ Phần mềm Arduino: Phần mềm Arduino gọi sketches, tạo máy tính có tích hợp mơi trường phát triển (IDE) IDE cho phép viết, chỉnh sửa code chuyển đổi cho phần cứng hiểu IDE dùng để biên dịch nạp vào Arduino (quá trinh xử lý gọi UPLOAD) ♦ Phần cứng Arduino: Phần cứng Arduino board Arduino, nơi thực thi chương trình lập trình Các board điều khiển đáp trả tín hiệu điện, thành phần ghép trực tiếp vào nhằm tương tác với giới thực để cảm nhận truyền thơng Ví dụ cảm biến bao gồm thiết bị chuyển mạch, cảm biến siêu âm, gia tốc Các thiết bị truyền động bao gồm đèn, motor, loa thiết bị hiển thị Có nhiều ứng dụng sử dụng Arduino để điều khiển Arduino có nhiều module, module phát triển cho ứng dụng.Về mặt chức năng, bo mạch Arduino chia thành hai loại: loại bo mạch có chip Atmega loại mở rộng thêm chức cho bo mạch Các bo mạch giống chức năng, nhiên mặt cấu số lượng I/O, dung lượng nhớ, hay kích thước có khác Một số bo mạch có trang bị thêm tính kết nối Ethernet Bluetooth Các bo mở rộng chủ yếu mở rộng thêm số tính cho bo mạch ví dụ tính kết nối Ethernet, Wireless, điều khiển động Cấu trúc phần cứng ♦ Cấu trúc chung Arduino Uno bo mạch vi điều khiển dựa chip ATmega168 ATmega 328 Cấu trúc chung bao gồm: - 14 chân vào tín hiệu số, có chân sử dụng để điều chế độ rộng xung - Có chân đầu vào tín hiệu tương tự cho phép kết nối với cảm biến bên để thu thập số liệu - Sử dụng dao động thạch anh tần số dao động 16MHz - Có cổng kết nối chuẩn USB để nạp chương trình vào bo mạch chân cấp nguồn cho mạch, nút reset - Nó chứa tất thứ cần thiết để hỗ trợ vi điều khiển, nguồn cung cấp cho Arduino từ máy tính thơng qua cổng USB từ nguồn chuyên dụng biến đổi từ xoay chiều sang chiều nguồn lấy từ pin Hình 1.1 Cấu trúc phần cứng của Arduino Uno Thông số kỹ thuật của Uno: Khối xử lý trung tâm vi điều khiển Atmega328 Điện áp hoạt động 5V Điện áp đầu vào khuyến nghị 5-12V Điện áp đầu vào giới hạn 6-20V Dòng điện chiều chân vào 40mA Dòng điện chiều cho chân 3.3V 50mA Clock Speed 16 MHz Flash Memory 16 Kb (ATmega 168) 32 Kb (ATmega 328), SRAM Kb (ATmega 168) Kb (ATmega 328), EEPROM 512 bytes (ATmega 168) Kb (AT mega 328) ♦ Nguồn ni Arduino hỗ trợ thơng qua kết nối USB với nguồn cung cấp điện bên Các nguồn lượng lựa chọn tự động Hệ thống vi điều khiển hoạt động nguồn cung cấp bên từ 6V đến 20V Nên cung cấp với 7V, nhiên pin 5V cung cấp 5V hệ thống vi điều khiển khơng ổn định Nếu sử dụng nhiều 12V điều chỉnh điện áp nóng Phạm vi khuyến nghị 7V đến 12V Chân Vin: Điện áp đầu vào Arduino dùng nguồn điện bên Chúng ta cung cấp nguồn thơng qua chân Chân 5V: Cung cấp nguồn vi điều khiển phận khác bo mạch cung cấp nguồn cho thiết bị ngoại vi kết nối tới bo mạch Chân 3V3: Cung cấp nguồn cho thiết bị cảm biến Chân GND : Chân nối đất B.Cơ sở lý thuyết Module Wifi ESP8266 1.Giới thiệu ESP8266 ♦ Khái niệm:Module ESP8266 module wifi đánh giá cao cho ứng dụng liên quan đến Internet Wifi ứng dụng truyền nhận sử dụng thay cho module RF khác với khoảng cách truyền lên tới 100 mét( Môi trường khơng có vật cản) Trên 400m với anten router thích hợp ESP8266 cung cấp giải pháp kết nối mạng Wi-Fi hồn chỉnh khép kín, cho phép lưu trữ ứng dụng để giảm tải tất chức kết nối mạng Wi-Fi từ xử lý ứng dụng Khi ESP8266 máy chủ ứng dụng hay vi xử lý ứng dụng có thiết bị, khởi động trực tiếp từ flash ngồi Nó có tích hợp nhớ cache để cải thiện hiệu suất hệ thống ứng dụng này, để giảm thiểu yêu cầu nhớ Luôn phiên, phục vụ chuyển đổi Wi-Fi, truy cập internet không dây thêm vào thiết kế vi điều khiển dựa kết nối đơn giản qua giao diện UART giao diện cầu CPU AHB Khả lưu trữ xử lý mạnh mẽ cho phép tích hợp với cảm biến, vi điều khiển thiết bị ứng dụng cụ thể khác thơng qua GPIOs với chi phí tối thiểu PCB tối thiểu Với mức độ tích hợp cao chip, bao gồm anten chuyển đổi balun, chuyển đổi quản lý điện năng… Hình 1.6: Hình ảnh thực tế của Chip NODEMCU ESP8266 2.Cấu tạo NODEMCU ESP8266 Module ESP8266 có chân dùng để cấp nguồn thực kết nối Chức chân sau: + VCC: 3.3V lên đến 300Ma + GND: Chân Nối đất 10 Blynk Server: truyền tải thông tin Smarthome thiết bị Blynk Server đám mây Blynk cài đặt máy cá nhân Có thể cài đặt Raspberry Pi Blynk Libraries: thư viện cung cấp kết nối phần cứng đến server, xử lý lệnh đến Để bắt đầu Blynk cần gì? Thiết bị Thiết bị dùng kit phát triển Arduino, Raspberry, ESP8266 Blynk hoạt động Internet thiết bị Smartphone Ứng dụng Blynk hoạt động iOS Android Có thể download từ điện thoại Thư viện Blynk cho Arduino: https://github.com/blynkkk/blynklibrary/releases/latest 22 Trong Arduino IDE thêm thư viện từ Manager Libraries cách tìm kiếm từ khóa Blynk cài đặt Blynk thực là app điện thoại, cho phép người dùng tạo giao diện và điều khiển thiết bị theo ý thích cá nhân Mình lựa chọn Blynk số lý sau: Dễ sử dụng: Quá đơn giản, việc vào store, cài đặt, sau đăng ký tài khoản khơng q phút để làm quen Đẹp và đầy đủ: Giao diện Blynk tuyệt vời, sử dụng cách kéo thả, bạn cần nút bấm, kéo thả nút bấm, bạn cần đồ thị, kéo thả đồ thị, bạn cần LCD, kéo thả LCD, tóm lại bạn cần kéo thả Khơng phải lập trình android hay ios: Nếu khơng có kiên thức làm app điện thoại việc điều khiển thiết bị từ smartphone điều vơ khó khăn phức tạp Nhờ blynk bỏ qua bước lập trình tạo app Có thể thử nhanh chóng ứng dụng dự án vào thực tế Thử nghiệm nhanh chóng, điều khiển giám sát nơi nào có internet Chương PHÂN TÍCH THIẾT KẾ HỆ THỐNG A Yêu cầu hệ thống 2.1 Mô tả hoạt động hệ thống Hệ thống hoạt động dựa kết hợp Module Nodemcu Esp8266 app Blynk smartphone Blynk lưu liệu App Blynk chức 23 lưu trữ liệu từ mạch đo gửi lên có chức hiển thị giao diện điều khiển thiết bị, liệu nhiệt độ, độ ẩm giao diện người dùng - Khi nhận tín hiệu nhiệt độ báo từ cảm biến vi xử lý hệ thống module Nodemcu Wifi ESP8266 xử lý tín hiệu sau truyền lên phần mềm blynk thơng qua mơi trường ko dây wifi - Khi module wifi ESP8266 gửi tín hiệu lên App blynk người dùng truy cập vào hệ thống để điều khiển thiết bị gia đình giám sát nhiệt độ, độ ẩm từ xa có mạng internet - Tại Blynk , thơng qua mạng LAN (nội bộ) thông qua internet, nhà quản lý : + Giám sát nhiệt độ liên tục thời điểm ngày Có thể xem nhiệt độ điểm đo thời điểm + Hiển thị nhiệt độ cao thơi điểm nhiệt độ cao nhất, thuận tiên cho việc theo dõi nhiệt độ vượt ngưỡng 2.2 Yêu cầu hệ thống a Module đo nhiệt độ Yêu cầu chức - Kết nối với mạng internet qua wifi sử dụng module wifi8266 - Module đo có chức đọc tham số nhiệt độ, độ ẩm từ cảm biến DHT11 sau gửi qua module wifi ESP8266 để truyền lên webserver - Điều khiển cấu chấp hành qua relay để điều khiển thiết bị điện nhà như: quạt, bóng đèn, điều hòa, tivi - Điều khiển thiết bị: Người dùng điều khiển bật tắt thiết bị điện từ giao diện web phù hợp với tất thiết bị PC, laptop, máy tính bảng, điện thoại thơng qua internet 24 Yêu cầu phi chức - Hoạt động ổn định, xác - Sản phẩm nhỏ gọn, dễ sử dụng đẹp mắt - Hệ thống chạy ổn định b App blynk Để hệ thống hoạt động ổn định cần có kết hợp hồn hảo thiết kế phù hợp liên kết module Nhiệt độ độ ẩm – module Nodemcu với giao diện blynk CHƯƠNG MÔ PHỎNG VÀ XÂY DỰNG HỆ THỐNG THỰC NGHIỆM 3.1 Bài toán đặt Trong q trình đại hóa , cơng nghiệp hóa ngày : Người tiêu dùng ưa thích tiện lợi , phát triển đất nước ta người dân có xu 25 hướng xây dựng nhà thông minh hướng tới 10-15 năm sau không lỗi thời áp dụng kĩ thuật điều khiển từ xa tự động Vì , nhóm chúng em xin tìm hiểu chủ đề : giám sát nhiệt độ điều khiển thiết bị từ xa Yêu cầu mô : phải giám sát nhiệt độ , độ ẩm phòng điều khiển thiết bị thơng qua mạng internet 3.2 Thiết kế hệ thống Cảm Biến DHT11 Vi Điều Khiển Đối tượng điều khiển Module Kit Wifi NodeMcu ESP 8266 Smartphone (Blynk) Hình 3.1 Sơ đờ khối của mạch thiết bị đo - Khối vi điều khiển có chức điều khiển hoạt động mạch Đọc nhiệt độ, độ ẩm từ cảm biến gửi module wifi để truyền lên App Ngoài khối vi điều khiển có nhiệm vụ đọc giải mã lệnh nhận từ giao diện Blynk người dùng để đưa lệnh điều khiển tương ứng để điều chỉnh nhiệt độ Kit wifi vai trò giao tiếp mạch internet, vận chuyển liệu hai module Nodemcu App blynk - Khối cảm biến nhiệt độ sử dụng cảm biến DHT11 có khả đo thông số nhiệt độ độ ẩm - Đối tượng điều khiển : sử dụng led red (có thể thay thiết bị khác) 1.Bảng liệt kê linh kiện Linh kiện Thông số kỹ thuật 26 NodeMcu ESP8266 Module DHT11 RED LED 10MM Relay 12V10A Dây nối Breadboard - IC chính: ESP8266 Wifi SoC - Phiên firmware: Node MCU - Chip giao tiếp UART: CP2102 - GPIO tương thích hồn tồn với firmware - Node MCU - Cấp nguồn: 5VDC MicroUSB Vin - GIPO giao tiếp mức 3.3VDC - 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 - Wifi chuẩn Wireless 802.11 b / g / n - 03 chế độ hoạt động: STA / AP / STA + AP - Hỗ trợ chuẩn giao tiếp I2C, SPI - Hỗ trợ ngõ ADC, PWM - Điện áp nguồn: 4.5V ~ 9V (USB powered) - Hỗ trợ giao tiếp UART: 110 – 460800bps - Hỗ trợ cập nhật FW từ xa (OTA) - Hỗ trợ Smart Networking - Nhiệt độ hoạt động: -40 ℃ ~ + 125 ℃ Phạm vi đo độ ẩm: 20%-95% Sai số: + 5% - Phạm vi đo nhiệt độ: -50 °C sai số: °C - Điện áp hoạt động: 3.3V-5V - Kích thước PCB: 3,2cm x 1.4cm - Trọng lượng: 8g Imax : 20mA - Điện áp : - 2.3V - Bước sóng : 380 - 385nm - Led siêu sáng đỏ - Điện áp :12V - Dòng : 10A Cài đặt giao diện Blynk 27 B1: Tạo tài khoản Blynk ( nhập email pass) B2: Tạo project cho blynk B3: THêm nút Nhấn vào blynk “Cài đặt Button settings : chân output : Gp13( điều khiển Led)” B4: Thêm Labeled Value : cài đặt gauge settings đặt tên Độ ẩm V5 ; Nhiệt Độ V6 Kết : Giao Diện Thực Tế 3.Viết chương trình code cho Vi điều khiển NODEMCU Để sử dụng blynk cần phải tải thư viện thông qua Arduino IDE Chọn Sketch -> Include Library -> Manage Libraries, tìm kiếm blynk install 28 Thêm Thư viện simple DHT11 cho Arduino1.8.5 Chọn Tool -> Board chọn Nodemcu 0.9 Code chương trình điều khiển thiết bị giám sát nhiệt độ , độ ẩm : /* Comment this out to disable prints and save space */ 29 #define BLYNK_PRINT Serial #include #include #include // You should get Auth Token in the Blynk App // Go to the Project Settings (nut icon) char auth[] = "d979b983931a4f4f85d9906c51243532"; // Your WiFi credentials // Set password to "" for open networks char ssid[] = "Duc Thinh"; char pass[] = "12345678"; #define DHTPIN // What digital pin we're connected to // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 //#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321 //#define DHTTYPE DHT21 // DHT 21, AM2301 DHT dht(DHTPIN, DHTTYPE); 30 BlynkTimer timer; // This function sends Arduino's up time every second to Virtual Pin (5) // In the app, Widget's reading frequency should be set to PUSH This means // that you define how often to send data to Blynk App void sendSensor() { float h = dht.readHumidity(); float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } // You can send any value at any time // Please don't send more that 10 values per second Blynk.virtualWrite(V5, h); Blynk.virtualWrite(V6, t); } void setup() { // Debug console 31 Serial.begin(9600); Blynk.begin(auth, ssid, pass); // You can also specify server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442); //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442); dht.begin(); // Setup a function to be called every second timer.setInterval(1000L, sendSensor); } void loop() { Blynk.run(); timer.run(); } 3.3 Lưu đồ thuật toán 32 Bắt đầu Khởi tạo IO,cảm biến nhiệt độ Cấu hình module kết nối wi fi connected Sai Not connected Sai Yêu cầu kết nối lại Đúng Đọc nhiệt độ gửi lên Cấu hình blynk 33 3.4 Kết thực nghiệm 34 KẾT LUẬN Việc thiết kế hệ thống điều khiển thiết bị giám sát nhiệt độ, độ ẩm từ xa qua internet có ý nghĩa to lớn, ứng dụng nhiều lĩnh vực đời sống xã hội cơng nghiệp Ngồi ra, module wifi kết hợp với Arduino mở nhiều hướng ứng dụng khác, phục vụ tốt cho việc học tập nghiên cứu sinh viên Việc xây dựng hệ thống giám sát nhiệt độ, độ ẩm từ xa qua internet liên quan đến nhiều tảng kiến thức từ kiến thức lý thuyết kiến thức thực tiễn Hướng phát triển đề tài Trong thời gian tới, em tiếp tục nghiên cứu phát triển đề tài theo hướng sau đây: - Tăng tính xác ổn định - Giám sát nhiệt độ độ ẩm điều khiển thiết bị qua wepsever điều khiển máy tính điện thoại - Tích hợp nhiều cảm biến phù hợp với nhiều đối tượng người dùng để phục vụ cho sống phục vụ công nghiệp 35 TÀI LIỆU THAM KHẢO Nguyễn Phùng Quang (2002), Truyền động điện thông Minh, NXB KHKT Nguyễn Phùng Quang (2007), Bài giảng Điện tử công suất, Bài giảng ĐHBKHN Trần Trọng Minh (2012), Giáo trình Điện tử công suất, NXBGD Đặng Danh Hoằng, Nguyễn Phùng Quang (2011), "Thiết kế điều khiển máy phát điện không đồng nguồn kép kết hợp phương pháp tựa theo thụ động Euler-Lagrange (EL) luật Hamiltonian", Hội nghị toàn Điều khiển Tự động hố tồn quốc lần thứ nhât- VCCA-2011 [5] https://www.arduino.cc/ [6] http://docs.blynk.cc/ [7] http://arduino.vn/bai-viet/1172-lap-trinh-esp8266-bang-arduino-ide [8] https://hocarm.org/dieu-khien-va-giam-sat-qua-dien-thoai-voi-esp8266-va- blynk/ [9] https://www.youtube.com/watch?v=RxnAHfStrVY [10] https://www.youtube.com/watch?v=8dyWSs54anI [11] https://www.youtube.com/watch?v=tMRpYmDgkL0 36 ... kĩ thuật điều khiển từ xa tự động Vì , nhóm chúng em xin tìm hiểu chủ đề : giám sát nhiệt độ điều khiển thiết bị từ xa Yêu cầu mô : phải giám sát nhiệt độ , độ ẩm phòng điều khiển thiết bị thông... trữ liệu từ mạch đo gửi lên có chức hiển thị giao diện điều khiển thiết bị, liệu nhiệt độ, độ ẩm giao diện người dùng - Khi nhận tín hiệu nhiệt độ báo từ cảm biến vi xử lý hệ thống module Nodemcu. .. cho phép điều khiển Arduino, Raspberry Pi, ESP8266 Bạn xây dựng ứng dụng điều khiển cách kéo, thả Widget Cách hoạt động Blynk thiết kế cho IoT, điều khiển phần cứng từ xa, hiển thị liệu cảm biến,