IOT với MPU6050. Đo và hiển thi gia tốc qua Wifi với Esp8266

19 621 6
IOT với MPU6050. Đo và hiển thi gia tốc qua Wifi với Esp8266

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÁO CÁO MÔN HỌC THU THẬP DỮ LIỆU VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH ĐỀ TÀI: Thiết kế hệ thống đo rung từ xa với smart sensor, có kết nối Wifi Nhóm sinh viên: Nguyễn Sỹ Quyền - 20143696 Nguyễn Thanh Danh - 20140643 Nguyễn Quang Phong- 20143426 Đinh Trọng Tuyên -20144981 Đo rung động dùng cảm biến gia tốc 1.1 Tại phải đo rung động Trong thập niên gần đây, hệ thống công nghiệp chủ yếu hoạt động dựa vào máy móc, việc bảo trì hệ thống máy móc thường xun điều cần thiết Có nhiều nguyên nhân dẫn đến hư hỏng, ví dụ như: máy làm việc q cơng suất, hệ thống động máy bị mài mòn, khơng thường xuyên tra dầu vào chi tiết máy,… nguyên nhân chủ yếu rung động không mong muốn gây 1.2 Nguyên nhân dẫn đến rung động Hầu hết rung động nguyên nhân: có lực tác động lặp lặp lại, lỏng lẻo chi tiết máy cộng hưởng Hình Tác hại rung động 1.3 Đo rung động dùng cảm biến gia tốc Cảm biến gia tốc cảm biến tạo tín hiệu điện tỷ lệ với gia tốc thành phần rung động Từ ta đo rung động Cảm biến gia tốc góc nghiêng MPU6050 2.1 Khái niệm IMU DOF • IMU( Inertial Measurement Unit) loại cảm biến dùng để đo gia tốc góc quay Một modul IMU thường gồm cảm biến: cảm biến gia tốc (accelerometer) cảm biến góc quay (gyroscope) + Accelerometer ( gọi tắt accel): accel đơn giản cảm biến đo gia tốc than module thường có trục XYZ ứng với chiều không gian Accel đo gia tốc trọng lực nên giá trị thực đo bao gồm trọng lực + Gyroscope ( gọi tắt gyro) :là loại cảm biến đo tốc độ quay quanh trục Tương tự với accel, gyro thường có trục XYZ • Mỗi module IMU đầy đủ gọi 6-DOF ( Degrees of Freedom) tức trục độc lập ( accel gyro) Ngồi có module 9DOF( thêm cảm biến từ trường trục), 10-DOF( thêm áp kế để đo độ cao), 11DOF(thêm module GPS để xác định vị trí),… Hinh 2: Ví dụ IMU DOF 2.2 Giới thiệu MPU-6050 Cảm biến MPU-6050 sử dụng để đo thông số: trục góc quay( Gyro) trục gia tốc hướng (Accelerometer) Hình Cảm biến MPU-6050 MPU-6050 module cảm biến hãng InvenSense tích hợp trục cảm biến bao gồm: + Con quay hồi chuyển trục ( 3-axis Gyroscope) + Cảm biến gia tốc chiều ( – axis Accelerometer) MPU-6050 có đơn vị tăng tốc phần cứng chuyên xử lý tín hiệu( Digital motion Processor-DSP) cảm biến thu thập thực tính tốn cần thiết Điều giúp giảm bớt đáng kể phần xử lí tính tốn vi điều khiển, cải thiện tốc độ xử lí cho phản hồi nhanh Các thông số MPU-6050: • Điện áp sử dụng : 3~5 VDC • Điện áp giao tiếp: 3~5 VDC • Chuẩn giao tiếp :I2C • Giá trị Gyroscopes khoảng : +/- 250 500 1000 2000 degree/sec • Giá trị Acceleration khoảng: +/- 2g, +/- 4g, +/- 8g, +/- 16g Giới thiệu Wemos D1 Hình Board mạch Wemos D1 WeMos D1 board mạch phát triển dựa module ESP8266-12E thiết kế theo tiêu chuẩn board mạch Arduino UNO, tương thích với Arduino IDE NodeMCU WeMos D1 tích hợp Wifi, dễ dàng thực ứng dụng thu thập liệu điều khiển thiết bị qua Wifi Wemos D1 có khả chuyển đổi điện áp board, cho phép cấp 1điện áp DC 924V để chuyển thành 5V với dòng tối đa 1A Thông số kit WeMos D1: Vi điều khiển Điện áp hoạt đông I/O Digital Pin Analog Pin Bộ nhớ Flash Điện áp vào Điện áp Giao tiếp ESP8266EX 3.3V 11 ( điện áp vào tối đa 3.3V) 4MB 9-24V 5V- Dòng max: 1A Cable Micro USB Tích hợp giao thức Kích thước Ngơn ngữ lập trình TCP/IP 68.6mm x 53.4 mm C/C++,Micropython, NodeMCU Sơ đồ chân: Wemos ESP8266 D0 GPIO16 D1 GPIO5 D2 GPIO4 D3,D15 GPIO0 D4,D14 GPIO2 D5,D13 GPIO14 D6,D12 GPIO12 D7,D11 GPIO13 D8 GPIO15 D9 GPIO3 D10 GPIO1 Database Database : có nghĩa sở liệu, liệu thường dùng bảng biểu, lược đồ, truy vấn, báo cáo … tập hợp tổ chức gọi database, tức sở liệu Database tồn dạng tập tin hệ điều hành máy tính hệ quản trị sở liệu, lưu trữ thiết bị có chức ghi nhớ : ổ cứng, đĩa CD USB - Đặc điểm Database: Đặc điểm database truy xuất thơng tin, liệu theo nhiều cách khác nhau, thông tin từ CSDL đảm bảo qn tồn vẹn liệu, khơng có trùng lặp thơng tin, có tỷ lệ thấp Một sở liệu Database có nhiều người sử dụng lúc Nhờ việc không bị trùng lặp giúp giảm thời gian xử lý liệu, tránh khỏi sai sót trình kiểm tra sở liệu Database Nhờ việc truy xuất từ nhiều cách khác nên nhiều người sử dụng sở liệu lúc mà qua khâu rườm rà phức tạp, từ tạo điều kiện thuận lợi cho việc sử dụng, quản lý, truy cập liệu… Tuy vậy, database có hạn chế định, chủ quyền người sử dụng khác bị xâm phạm, ngồi vấn đề bảo mật, nguy bị công, đánh cắp liệu • Tính chất : Phản ánh phần giới thực (mini world) cập nhật phản ánh thay đổi giới biểu diễn CSDL tập hợp DL liên kết với cách logic mang ý nghĩa Được thiết kế phổ biến cho mục đích riêng có nhóm người sử dụng • Tổ chức sở liệu: Một sở liệu thông thường tổ chức thành bảng, bảng chứa trường thuộc tính, tập liệu thuộc tính bảng gọi ghi (record) Mỗi bảng có quan hệ với dùng ngơn ngữ SQL để truy vấn liệu từ sở liệu Phân loại: • • Cơ sở liệu dạng file: liệu lưu trữ dạng file text, ascii, *.dbf Tiêu biểu cho sở liệu dạng file là*.mdb Foxpro • Cơ sở liệu quan hệ: liệu lưu trữ bảng liệu gọi thực thể, thực thể có mối liên hệ với gọi quan hệ, quan hệ có thuộc tính, có thuộc tính khóa Các hệ quản trị hỗ trợ sở liệu quan hệ như: MS SQL server, Oracle, MySQL • Cơ sở liệu hướng đối tượng: liệu lưu trữ bảng liệu bảng có bổ sung thêm tính hướng đối tượng lưu trữ thêm hành vi, nhằm thể hành vi đối tượng Mỗi bảng xem lớp liệu, dòng liệu bảng đối tượng Các hệ quản trị có hỗ trợ sở liệu hướng đối tượng như: MS SQL server, Oracle, Postgres • Cơ sở liệu bán cấu trúc: liệu lưu dạng XML, với định dạng thông tin mô tả đối tượng thể tag Đây sở liệu có nhiều ưu điểm lưu trữ hầu hết loại liệu khác nên sở liệu bán cấu trúc hướng nghiên cứu ứng dụng • Cơ sở liệu phân cấp (blockchain): Dữ liệu phân tán mạng máy tính ngang hàng ln mạng lưới kiểm định Ví dụ: Bitcoin blockchain Trong đề tài sở liệu database dùng để lưu trữ giá trị đo gia tốc từ cảm biến MPU6050 tập hợp thành file truy xuất lại file cũ để quan sát SQL - SQL viết tắt Structured Query Language, ngôn ngữ truy vấn mang tính cấu trúc Nó thiết kế để quản lý liệu hệ thống quản lý sở liệu quan hệ (RDBMS) SQL ngôn ngữ sở liệu, sử dụng để tạo, xóa sở liệu, lấy hàng sửa đổi hàng, … Tất DBMS MySQL, Oracle, MS Access, Sybase, Informix, Postgres SQL Server sử dụng SQL ngôn ngữ sở liệu chuẩn • SQL cần thiết để: Tạo sở liệu, bảng view Để chèn ghi vào sở liệu Để xóa ghi từ sở liệu Để lấy liệu từ sở liệu • Chức SQL: Với SQL, truy vấn Database theo nhiều cách khác nhau, sử dụng lệnh Với SQL, người dùng truy cập liệu từ RDBMS SQL cho phép người dùng miêu tả liệu SQL cho phép người dùng định nghĩa liệu Database thao tác cần thiết Cho phép người dùng tạo, xóa Database bảng Cho phép người dùng tạo view, Procedure, hàm Database Cho phép người dùng thiết lập quyền truy cập vào bảng, thủ tục view • Lịch sử SQL: 1970 Dr Edgar F "Ted" Codd IBM biết đến cha đẻ Relational Database (Cơ sở liệu quan hệ) Ông miêu tả mơ hình quan hệ (Relational Model) cho Database 1974 SQL (Structured Query Language) xuất 1978 IBM tiếp tục phát triển ý tưởng Codd công bố sản phẩm tên System/R 1986 IBM phát triển nguyên mẫu Relation Database chuẩn hóa ANSI Relation Database công bố Relational Software sau Oracle • Các lệnh SQL: Lệnh CREATE: Tạo bảng, View bảng, đối tượng khác Database Lệnh ALTER: Sửa đổi đối tượng Database tồn tại, ví dụ bảng Lệnh: Xóa tồn bảng, View bảng đối tượng khác Database Lệnh SELECT: Lấy ghi cụ thể từ nhiều bảng Lệnh INSERT: Tạo ghi Lệnh UPDATE: Sửa đổi ghi Lệnh DELETE: Xóa ghi Lệnh GRANT: Trao quyền tới người dùng Lệnh REVOKE: Thu hồi quyền trao cho người dùng PHP PHP ngơn ngữ lập trình mã nguồn mở phía server thiết kế để dễ dàng xây dựng trang web động Mã PHP thực thi server để tạo mã HTML xuất trình duyệt web theo yêu cầu người sử dụng PHP cho phép xây dựng ứng dụng web mạng internet tương tác với sở liệu như: MySQL, Oracle,… Ngơn ngữ lập trình PHP tối ưu hóa cho ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C Java, dễ học thời gian xây dựng sản phẩm tương đối ngắn so với ngơn ngữ khác nên PHP nhanh chóng trở thành ngơn ngữ lập trình phổ biến giới Các file PHP trả kết cho trình duyệt trang HTML Các file PHP chứa văn ( Text ), thẻ HTML ( HTML tags ) đoạn mã kịch ( Script ) Các file PHP có phần mở rộng là: php, php3, phpml Từ phiên 4.0 trở sau hỗ trợ session Sử dụng Php để thiết lập giao diện database 7 Phương thức thu thập liệu Sơ đồ kết nối Hình 5: Sơ đồ kết nối Wemos D1 với MPU6050 Tương ứng với Wemos D1 mini pro #4, #5 chân D14, D15 Wemos D1 Diễn giải: Khi ESP8266 thu thập liệu từ cảm biến sử dụng PHP Programming để hiển thị liệu Web Ở web hiển thị giá trị x, y, z với giá trị đo current time Và nhờ code PHP Programming mà ta add liệu vào sở liệu My SQL Ở để tạo sở liệu sử dụng phần mềm Xampp Các chương trình phần mềm sử dụng đề tài Code Arduino: #include #include #include #include MPU6050 mpu6050(Wire); float x, y, z; //Thiet lap ket noi Wifi const char* ssid = "Zero9"; const char* pwd = "btth1234"; WiFiServer server(80); // open port 80 for server connection void setup() { Serial.begin(115200); //Set toc truyen thong Wire.begin(); mpu6050.begin(); mpu6050.calcGyroOffsets(true); delay(10); //Thiet Lap ket noi Wifi Serial.println(); Serial.println(); Serial.print("Connecting to wifi "); Serial.println(ssid); WiFi.begin(ssid, pwd); //attempt to connect to wifi while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); //Dat dau cham de the hien qua trinh doi ket noi cong } Serial.println(""); //Trong ket noi cong thi in: "Wifi connected" Serial.println("Wifi connected"); //Bat dau server server.begin(); Serial.println("Server started."); //Lay d/c IP va in man hinh Serial.print("This is your IP address: "); //Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { mpu6050.update(); WiFiClient client = server.available(); if (!client) { return; } //wait for the data to be sent from client Serial.println("New client connection"); while (!client.available()) { delay(1); } //Read the first line of the request String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); //Thiet ke giao dien hien thi tren web client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); client.println(""); client.println(""); client.println(" "); client.println(" h1 {text-align: center}"); client.println(" h3 {text-align: center}"); client.println(" b {text-align: center}"); client.println(" p {text-align: center}"); client.println("div.relative{position:relative; left:200px; height:20px; width:350px; border:2px solid #73AD21;}"); client.println(); client.println(" Dai Hoc Bach Khoa Ha Noi "); client.println(" MPU6050 Project "); client.println(" De Tai: Thu Thap Du Lieu MPU6050 "); client.print("Giam sat rung MPU6050"); if (request.indexOf("/AlwaysOn") != -1) { client.print("Sensor: ON "); client.println(" Gia tri X: "); client.print(mpu6050.getAngleX());//client.print(R); client.println(" ; Gia tri Y: "); client.print(mpu6050.getAngleY()); client.println(" ; Gia tri Z: "); client.print(mpu6050.getAngleZ()); x = mpu6050.getAngleX(); y = mpu6050.getAngleY(); z = mpu6050.getAngleZ(); //luu data toi mysql, voi http client HTTPClient http; String url = "http://127.0.0.1/mpu6050/add.php?x=" + String(x); //access php file de ghi du lieu Serial.println(url); http.begin(url); //Su dung phuong thuc GET de ghi du lieu vao SQL // Neu gia tri url tra ve >0 thi thuc hien ham IF, khong thi thuc hien else int httpCode = http.GET(); if (httpCode > 0) { Serial.printf("[HTTP] GET code: %d\n", httpCode); if (httpCode == HTTP_CODE_OK) { String payload = http.getString(); Serial.println(payload); } } else { Serial.println(httpCode); Serial.printf("[HTTP] GET failed, error: %s\n", http.errorToString(httpCode).c_str()); } http.end(); delay(3000); } client.println(""); //Thiet lap nut nhan client.println("

Ngày đăng: 10/01/2019, 22:23

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan