Trang 1 Báo cáo kết quả đề tài nghiên cứu khoa học Xây dựng các thí nghiệm IoT a TRƯỜNG ĐẠI HỌC HỊA BÌNH KHOA CƠNG NGHỆ THÔNG TIN & ĐIỆN TỬ VIỄN THÔNG Trang 2 Xây dựng các thí nghiệm I
NỘI DUNG
Tất cả các nước tiên tiến đều coi IoT là một trong số 5 ngành then chốt của cuộc cách mạng công nghiệp 4.0
Khái niệm và thuật ngữ IoT lần đầu tiên được đưa ra bởi người sáng lập nhóm nghiên cứu Auto-ID tại Viện Công nghệ Massachusetts Kevin Ashton vào năm 1999 tại một buổi thuyết trình cho lãnh đạo của Procter & Gamble Bài thuyết trình nói về cách triển khai toàn diện các thẻ tần số vô tuyến có thể sửa đổi hệ thống quản lý chuỗi hậu cần trong một tập đoàn
Vào năm 2004, Science American đã xuất bản một bài báo viết về cho IoT, trong đó cho thấy rõ khả năng của IoT trong những ứng dụng thực tiễn Bài báo cung cấp những minh họa cho thấy các thiết bị gia dụng (đồng hồ báo thức, điều hòa không khí), hệ thống nhà ở (hệ thống tưới vườn) hệ thống an ninh, hệ thống chiếu sáng), cảm biến (cảm biến nhiệt, ánh sáng và chuyển động) và những thứ khác (ví dụ, các loại thuốc có dấu hiệu nhận dạng) tương tác với nhau thông qua các mạng truyền thông (hồng ngoại, không dây mạng có dây, điện và dòng điện thấp) và cung cấp các quy trình thực hiện hoàn toàn tự động (bao gồm cả từ máy pha cà phê, máy thay đổi ánh sáng, máy nhắc nhở bện nhân về thuốc, duy trì nhiệt độ, cung cấp nước cho khu vườn, cho phép ta tiết kiệm năng lượng và quản lý mức tiêu thụ của nó) Các biến thể được trình bày trong quá trình tự động hóa điều khiển các thiết bị trong gia đình không phải là cái mới đối với bản thân chúng, nhưng sự nhấn mạnh trong việc kết hợp các thiết bị và các thứ khác vào một mạng máy tính được phục vụ bởi các giao thức Internet và coi Internet là một công nghệ đặc biệt góp phần làm cho khái niệm này trở nên phổ biến
Tại Việt Nam IoT đã được ứng dụng từ lâu dưới các hình thức tự động hóa như hệ thống điều khiển đèn giao thông, hệ thống tưới tiêu tự động,… Tuy nhiên chỉ đến những năm gần đây thì khái niệm IoT tại Việt Nam mới được nhắc đến nhiều thông qua các hội thảo, hội nghị về xu hướng công nghệ của Cisco, Intel, Hội Tin học TP HCM và một số công ty trong nước như Mobiphone, DTT, Sao Bắc Đẩu Trước đó, IBM có chiến dịch “Hành tinh thông minh hơn” và nhấn mạnh vào các thành phố thông minh trong đó Đà Nẵng được chọn thực hiện thí điểm này từ năm 2012-2013 Ở thời điểm hiện tại Việt Nam đang có rất nhiều công ty tập trung phát triển giải pháp và sản phẩm công nghệ thông minh với nền tảng IoT Có thể kể đến những cái tên quen thuộc và được thị trường dần đón nhận trong thời gian vừa qua như: Lumi, BKAV, SmartHome,… Một điểm chung dễ nhận thấy ở các nhà cung cấp này là họ tập trung vào thiết bị cho ngôi nhà ở thông minh (SmartHome) hướng tới đối tượng khách hàng là những người sẵn sàng bỏ chi phí để tiện dụng hóa các hoạt động trong gia đình Các
KHÁI NIỆM CHUNG VỀ IOT (INTERNET OF THINGS)
Khái niệm chung
Tất cả các nước tiên tiến đều coi IoT là một trong số 5 ngành then chốt của cuộc cách mạng công nghiệp 4.0
Khái niệm và thuật ngữ IoT lần đầu tiên được đưa ra bởi người sáng lập nhóm nghiên cứu Auto-ID tại Viện Công nghệ Massachusetts Kevin Ashton vào năm 1999 tại một buổi thuyết trình cho lãnh đạo của Procter & Gamble Bài thuyết trình nói về cách triển khai toàn diện các thẻ tần số vô tuyến có thể sửa đổi hệ thống quản lý chuỗi hậu cần trong một tập đoàn
Vào năm 2004, Science American đã xuất bản một bài báo viết về cho IoT, trong đó cho thấy rõ khả năng của IoT trong những ứng dụng thực tiễn Bài báo cung cấp những minh họa cho thấy các thiết bị gia dụng (đồng hồ báo thức, điều hòa không khí), hệ thống nhà ở (hệ thống tưới vườn) hệ thống an ninh, hệ thống chiếu sáng), cảm biến (cảm biến nhiệt, ánh sáng và chuyển động) và những thứ khác (ví dụ, các loại thuốc có dấu hiệu nhận dạng) tương tác với nhau thông qua các mạng truyền thông (hồng ngoại, không dây mạng có dây, điện và dòng điện thấp) và cung cấp các quy trình thực hiện hoàn toàn tự động (bao gồm cả từ máy pha cà phê, máy thay đổi ánh sáng, máy nhắc nhở bện nhân về thuốc, duy trì nhiệt độ, cung cấp nước cho khu vườn, cho phép ta tiết kiệm năng lượng và quản lý mức tiêu thụ của nó) Các biến thể được trình bày trong quá trình tự động hóa điều khiển các thiết bị trong gia đình không phải là cái mới đối với bản thân chúng, nhưng sự nhấn mạnh trong việc kết hợp các thiết bị và các thứ khác vào một mạng máy tính được phục vụ bởi các giao thức Internet và coi Internet là một công nghệ đặc biệt góp phần làm cho khái niệm này trở nên phổ biến.
Quá trình phát triển
Tại Việt Nam IoT đã được ứng dụng từ lâu dưới các hình thức tự động hóa như hệ thống điều khiển đèn giao thông, hệ thống tưới tiêu tự động,… Tuy nhiên chỉ đến những năm gần đây thì khái niệm IoT tại Việt Nam mới được nhắc đến nhiều thông qua các hội thảo, hội nghị về xu hướng công nghệ của Cisco, Intel, Hội Tin học TP HCM và một số công ty trong nước như Mobiphone, DTT, Sao Bắc Đẩu Trước đó, IBM có chiến dịch “Hành tinh thông minh hơn” và nhấn mạnh vào các thành phố thông minh trong đó Đà Nẵng được chọn thực hiện thí điểm này từ năm 2012-2013 Ở thời điểm hiện tại Việt Nam đang có rất nhiều công ty tập trung phát triển giải pháp và sản phẩm công nghệ thông minh với nền tảng IoT Có thể kể đến những cái tên quen thuộc và được thị trường dần đón nhận trong thời gian vừa qua như: Lumi, BKAV, SmartHome,… Một điểm chung dễ nhận thấy ở các nhà cung cấp này là họ tập trung vào thiết bị cho ngôi nhà ở thông minh (SmartHome) hướng tới đối tượng khách hàng là những người sẵn sàng bỏ chi phí để tiện dụng hóa các hoạt động trong gia đình Các
Xây dựng các thí nghiệm IoT 5 sản phẩm này được đầu tư khá bài bản về mặt hình thức nhằm giúp cho căn nhà trở nên sang trọng hơn
Dự tính trong tương lai IoT tại Việt Nam sẽ diễn ra một cách mạnh mẽ khi ngày càng có nhiều doanh nghiệp đã bắt đầu triển khai những dự án về IoT IoT mang lại một cơ hội doanh thu cho rất nhiều ngành và những giải pháp đó bắt đầu thương mại hóa với tốc độ rất nhanh Ngành dịch vụ tiện ích, giao thông, tòa nhà thông minh và các ngành bán lẻ là những ngành đi đầu trong việc ứng dụng IoT Và để có thể triển khai IoT thành công và bền vững cần phải cân nhắc đến bốn yếu tố đó là nền tảng phần mềm, hệ sinh thái giữa các ngành, quy trình chuẩn hóa về công nghệ và giải quyết được những lo lắng của khách hàng liên quan đến đảm bảo tính riêng tư và an toàn
Tại Trường Đại học Hòa bình, sinh viên, học viên cao học cũng đã bước đầu làm quen với IoT qua việc hợp tác với Hội Hàng không Vũ trụ Việt nam thực hiện các đề tài nghiên cứu cấp nhà nước về thiết kế, chế tạo máy bay không người lái, tham gia các cuộc thi của sinh viên trong cả nước về sử dụng vi điều khiển SG-8, Arduino intel Có sản phẩm đã được vào chung kết Đề tài: Xây dựng một số thí nghiệm IoT-ngôi nhà thông minh phục vụ việc học và làm đồ án tốt nghiệp ngành CNTT và ngành Điện tử viễn thông của Trường Đại Học Hòa Bình Đề cương nghiên cứu được kèm theo ở cuối tài liệu này
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 6
XÂY DỰNG PHẦN MỀM
Khái niệm về bộ tự động điều khiển
Một bộ thiết bị IoT tối thiểu phải gồm một phần cứng trong đó có 1 hoặc nhiều bộ vi xử lý hoặc Vi điều khiển, các bộ cảm biến(nhiệt độ, độ ẩm, ánh sáng, phát hiện vật cản, ), các cổng giao tiếp RS-232, I2C,USB, các cổng số và thiết bị chỉ thị, thiết bị chấp hành Điều khiển toàn bộ các thiết bị trên theo chức năng bằng phần mềm nạp vào bộ nhớ của Vi xử lý, vi điều khiển
Xây dựng các thí nghiệm IoT 7
Xây dựng phần mềm
Sơ đồ chức năng của một thiết bị IoT rất gần với sơ đồ chức năng của một thiết tự động điều khiển điển hình
Hình: 2 Bộ nạp điện tự động
Một bộ nạp điện cần: Nguồn điện xoay chiều, bộ nắn điện 1 chiều, mạch đo điện áp, mạch đo dòng điện nạp Khi điện áp đã nạp đủ Mạch này có thể tự động ngắt nếu chúng ta thêm vào các cảm biến và cơ chế ngắt mạch
Chỉ thị Cơ cấu chấp hành Đ/K từ xa
Ví dụ điển hình của 1 thiết bị IoT
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 8
Hình: 3 Bộ vi điểu khiển P89c51 Hình: 4 Mạch điện của vi điều khiển 89C51 Để có thể điều khiển và thực hiện các chức năng phức tạp, việc sử dụng trực tiếp các bộ vi điều khiển như bộ P89c51-hình 3 với sơ đồ chức năng hình 4 là rất khó khăn Một công ty của Italia đã tích hợp các linh kiện điện tử lại thành board để dễ sử dụng vì chúng có thể lập trình theo một cách đơn giản hơn Các Board họ đề xuất được đặt tên chung là Arduino Để Board có thể áp dụng tùy thuộc vào nhu cầu rất đa dạng của khách hàng nên đã có các board arduino:
Xây dựng các thí nghiệm IoT 9
Và các mạch trợ giúp (shield)
Kết quả là có thể sử dụng các board Arduino để xây dựng các thiết bị trong một loạt các bài toán IoT thường gặp
Lựa chọn này cho phép nhanh chóng phát triển IoT b Ngôn ngữ lập trình
Hãng arduino xây dựng hẳn một ngôn ngữ Arduino để lập trình điều khiển các board arduino Hãng Intel cũng xây dựng các board arduino của riêng mình trên cơ sở công nghệ arduino cơ bản và hãng đã đặt tên ngôn ngữ là ngôn ngữ arduinoIntel Về cơ bản 2 ngôn ngữ có thể áp dụng lẫn cho nhau với các arduino cơ bản Với ArduinoIntel thì nhất thiết phải dùng ngôn ngữ của Intel
Ngoài ra trong quá trình học lập trình và thực hành trên các board, đôi khi không có sẵn board và việc học không thể thực hiện được nên có thể khắc phục bằng cách sử dụng phần mềm mô phỏng
Quá trình thực hiện đề tài các phần mềm sau đây đã được cài đặt trên các máy tính của phòng 302:
Phần mềm processing-3.5.4-window64 download từ đây:
Sau cài đặt có thể chạy thử một phần mềm ví dụ:
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 10
Sự tương đồng giữa processing và arduino có cả từ cách đặt tên file đến những thủ tục khác nữa Một số phần mềm có thể chuyển đổi qua lại nếu chúng cùng chạy trên 1 CPU!
Cài đặt phần mềm arduino Tải phần mềm ở đây:
Nhấn vào để tải xuống rồi nhấn tiếp để cài
Sau khi cài đặt cần chú ý :
Xây dựng các thí nghiệm IoT 11
1 Board arduino phải truyền thông tin sang máy tính và ngược lại qua cổng RS-
232 Để tiện việc truyền thông qua cổng USB của máy tính nên phải có sự chuyển đổi cổng
2 Ngôn ngữ Arduino do hãng arduino xây dựng nên phần chuyển đổi được xây dựng cho chính các Board của arduino và nếu ta dùng các Board của arduino thì mọi việc Ok hết Tuy vậy Board arduino hiện đã có nhiều nước sản xuất Một mặt giá từ xấp xỉ 100us$ một Board đã giảm xuống khá nhiều nhưng driver cho cổng rs-232 đã không tương thích nữa
3 Để cài driver cần tải file sau đây về máy:
Quá trình cài đặt tiếp theo như sau:
Nhấn chuột vào Computer, chọn Manage, ta được như hình trên
Nhấn tiếp vào Device Manager ta được: khi ta có nối cổng USB có Board arduino với máy tính Như thế cổng đã có driver để làm việc bình thường
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 12
Khi có hiện usb2.0-ser! với dấu ! bên trên mục Port (COM & LPT) thì phần mềm quản lý máy tính báo là cổng không nhận đúng phần mềm điều khiển Khi đó ta phải chỉ chuột vào usb2.0-ser, nhấn update để cài lại driver:
Nhấn tiếp vào Browse rồi chỉ đến path của phần mềm driver trên Ta sẽ cài xong driver cho arduino
Xây dựng các thí nghiệm IoT 13
Chưa từng có thất bại nào trong quá trình cài đặt driver cho arduino !
Nên nhớ việc cài đặt cổng nhiều khi khó thành công với những người lần đầu phải cài đặt driver !
Chú ý có driver sử dụng được cho board arduino này nhưng không chạy được cho arduino khác vì có thể chúng do các hãng khác nhau sản xuất Cần cài lại !
Khi chạy arduino ta được (phụ thuộc vào vesion, có thể có những khác biệt không đáng kể):
Phần mềm và ngôn ngữ có thể tón tắt như sau: c Ngôn ngữ lập trình arduino
Cấu trúc của 1 chương trình arduino: abc.ino(.pde)
Một phần mềm bao giờ cũng gồm những phần giống nhau về cấu trúc Nó gồm các phần chính:
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 14
2 Phần mềm khởi tạo void setup()
3 Phần mềm lặp đi lặp lại void loop()
4 Các phần mềm là chương trình con
Ví dụ : Phần mềm tiêu chuẩn
7 Serial.println(y, 5); // lấy 5 số phần thập phân
Và một số chương trình con theo yêu cầu bất kỳ nào khác có thể được chèn vào Bất kỳ 1 biến nào được dùng trong chương trình phải khai báo trước Nếu khai ở phần chung thì dùng chung, nếu khai riêng trong một chương trình con nào đó thì nó chỉ dùng trong đó mà thôi Về nguyên tắc các quy tắc lập trình trong arduino khá giống với các nguyên tắc lập trình trong C++ void là báo phần mềm không dùng biến
5 Các loại biến boolean char unsigned char byte int
Xây dựng các thí nghiệm IoT 15 unsigned int word long unsigned long short float double array string(kieu 1-array của ký tự-char)
Phép toán; =; +; -; *; /; %(lấy số dư của phép chia)
++m thêm 1; bớt 1; += cộng thêm; -= trừ đi; *= nhân với; /= chia với Muốn chuyển đổi kiểu dữ liệu dùng các hàm:
Int() word() long() float() static biến tĩnh const hằng volatile
Các hàm: pinMode() digitalWrite() digitalRead() analogReference() analogRead() analogWrite()- PWM-PPM millis() micros() delay() min() max() abs() map() pow()
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 16 sqrt() sq() isnan() constrain() exp() frexp() indexp() log() log10() modf() ceil() floor() modf(x,*i) floor() atoi(a[]) cos() sin() tan() asin() acos() atan() atan(x,y) cosh() sinh() tanh() random() randomSeed() tone() noTone() shiftOut() pulseIn() isAscii() isWitespace() isAlpha() isAl;phanumber() isControl() isDigit() isGraph() isLowerCase() isPrintable()
Xây dựng các thí nghiệm IoT 17 isPunct() isSpace() isUpperCase() isHexadecimalDigit() tolower() toupper() lowByte() hightByte() bitRead() bitWrite() bitSet() bitClear() bit() Có thể vào đây arduino.cc/reference để xem cách dùng của từng hàm
Serial Để học lập trình arduino nên nhớ, sau khi cài đặt xong phần mềm sẽ luôn có sẵn phần hướng dẫn và phần hướng dẫn online trên web arduino.cc/reference
Khi cần chạy arduino nhưng không có sẵn Board cần chạy unoardusim.exe như sau :
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 18
Board arduino được mô phỏng cùng với các thiết bị ngoại vi cần thiết nhất để có thể thực hành.
Hướng dẫn thí nghiệm
a Xây dựng thí nghiệm 1: Để thực hiện một bài thí nghiệm chúng ta có sẵn board, cáp các loại, board thiết kế, các cảm biến vấcc bộ chỉ thị LCD
Ví dụ 1: Sử dụng arduino UNO để làm bài tập đầu tiên Đọc thông tin về áp suất khí quyển Dùng bộ cảm biến (sensor) BME280
Mục đích của bài tập 1:
Xây dựng các thí nghiệm IoT 19
Biết xây dựng phần cứng Biết Thiết kế mạch điện Biết xây dựng cấu trúc của 1 phần mềm arduino, biết viết các câu lệnh để thực hiện bài tập, biết thủ tục biên dịch, thủ tục nạp lên Board arduino Biết cách testing và sửa lỗi khi lỗi xuất hiện Lưu giữ file để dùng về sau:
Trong bài tập này ta dùng board arduino uno như hình bên
Các chân nối với nhau như hình dưới
Cảm biến áp suất độ ẩm và nhiệt độ BME280:
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 20
• Gói 2,5 mm x 2,5 mm x 0,93 mm kim loại nắp LGA
• Giao diện kỹ thuật số I2C (lên đến 3,4 MHz) và SPI (3 và 4 dây, lên đến 10 MHz)
• Cung cấp điện áp VDD chính cung cấp điện áp khoảng: 1,71 V đến 3,6 V
• VDDIO giao diện điện áp khoảng: 1,2 V đến 3,6 V
• Dòng tiêu thụ 1,8 UA @ 1 Hz độ ẩm và nhiệt độ
• 2.8 UA 1 Hz áp suất và nhiệt độ
• 3.6 UA 1 Hz độ ẩm, áp suất và nhiệt độ
• Phạm vi hoạt động -40 + 85 C, 0 100% rel độ ẩm, 300 1100 cảm biến và áp lực cảm biến hPa- Độ ẩm có thể được kích hoạt một cách độc lập b Xây dựng thí nghiệm 2
Cảm biến nhiệt độ, độ ẩm, áp suất không khí BME280 có thể dùng để hỗ trợ việc xây dựng ngôi nhà thông minh, dự báo thời tiết, xây dựng nhà vườn thông minh….sensor độ ẩm được dùng để tạo một hệ thống tưới cây tự động
1 Xây dựng mạch điện Như hình vẽ trên
Tài liệu có thể tìm thấy trên internet Chú ý, các dây +12v có màu vàng, dây +5v có màu đỏ Dây 0v (GND) có màu đen
Phần mềm đã được cài sẵn trong máy tính dùng làm thí nghiệm IoT :
* Complete Project Details https://randomnerdtutorials.com
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI unsigned long delayTime; void setup() {
Xây dựng các thí nghiệm IoT 21 bool status;
// (you can also pass in a Wire library object like &Wire2) status = bme.begin(); if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!"); while (1);
Serial.println(" Default Test "); delayTime = 1000;
} void loop() { printValues(); delay(delayTime);
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Arduino với cảm biến đo áp suất khí quyển và nhiệt độ phục vụ dự báo thời tiết BMP280
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 22
Sensor này dùng cho việc xác định độ cao của máy bay không người lái Trong chế độ tự động và điều khiển bằng tay, độ cao bay luôn là tham quan trọng bảo đảm an toàn bay
Sơ đồ kết nối với arduino để đo tự động:
Xây dựng các thí nghiệm IoT 23
/* Mã này dùng cho Adafruit BMP280 (Metric)
* Các tham số đo được hiện lên màn hình monitor của máy tính qua cổng rs-232 tốc độ 9600baud
* Chỗ này là chú thích
// Giao tiếp cổng I2C void setup() {
Serial.begin(9600);//Khởi tạo cổng RS-232, tốc độ 9600baud
Serial.println(F("BMP280 test"));//in dòng chữ, không xuống dòng if (!bmp.begin()) { //nếu cổng không chạy được chứng tỏ chưa có BMP
Serial.println(F("Could not find a valid BMP280 sensor, check wiring!")); while (1);
/* Default settings from datasheet */ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode */ Adafruit_BMP280::SAMPLING_X2, /* Temp oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time */
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 24
Serial.print(bmp.readPressure()/100); //displaying the Pressure in hPa, //you can change the unit
Serial.print(bmp.readAltitude(1019.66)); //The "1019.66" is the //pressure(hPa) at sea level in day in your region
Serial.println(" m"); //If you don't know it, modify //it until you get your current altitude Serial.println(); delay(2000);
Một trong những cảm biến quan trọng nhất đối với ngành hàng không là con quay
3 trục tự do Nó phức tạp, đắt tiền và khó sử dụng Với máy bay không người lái người ta thay vào con quay là dùng bộ MPU6050 Bộ này cũng dùng cho các bộ di động thông minh để xác định chiều cầm di động để màn hình luôn có chiều hợp với mắt người đọc Arduino và MPU6050
Các thông tin cơ bản về sensor MPU-6050
Tìm hiểu cách sử dụng mô-đun cảm biến gia tốc và con quay hồi chuyển MPU-
MPU-6050 IMU (Bộ cảm biến quán tính) là một cảm biến gia tốc kế 3 trục và con quay hồi chuyển 3 trục Gia tốc kế đo gia tốc trọng trường và con quay hồi chuyển đo vận tốc quay Ngoài ra, mô-đun này cũng đo nhiệt độ Cảm biến này lý tưởng để xác định hướng của một đối tượng chuyển động
Bộ này có thể thay cho con quay 3 trục tự do đang được dùng nhiều trong ngành hàng không MPU-6050 được dùng trong thiết kế, chế tạo UAV ở Việt Nam Đã được sinh viên khoa CNTT áp dụng khi thiết kế UAV khi tham gia cuộc thi toàn quốc về CNTT
Xây dựng các thí nghiệm IoT 25
Các chiều được xác định như sau:
Trong ngành hàng không, người ta quy ước các chiều và tên gọi bằng tiếng anh như sau :
Máy bay bay theo hướng trục X- khi xoay theo trục Y ta tạo ra góc lên xuống cho máy bay và gọi là chúc ngóc (pich) Đầu máy bay ngóc lên gọi là góc chúc ngóc dương, ngược là là góc âm Cánh máy bay theo hướng Y –Góc nghiêng trái hay nghiêng phải sinh ra do quay theo trục x(Roll) Cánh phải thấp hơn cánh trái gọi là nghiêng phải và ngược lại Khi máy bay quay theo trục Z- trục vuông góc thẳng đứng với mặt phẳng máy bay dẫn đến hướng máy bay thay đổi-gọi là góc hướng (Yaw)
Báo cáo kết quả đề tài nghiên cứu khoa học
Xây dựng các thí nghiệm IoT 26
MPU6050 cho ta 4 tham số: Gia tốc, góc chúc ngóc, góc nghiêng và góc hướng bay Giao tiếp bằng I2C, có thư viện dùng riêng cho MPU6050
#include //cần có cả i2cdev.h trong thư mục này
#include const int MPU=0x68; //I2C address of the MPU-6050 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; //16-bit integers int AcXcal,AcYcal,AcZcal,GyXcal,GyYcal,GyZcal,tcal; //calibration variables double t,tx,tf,pitch,roll; void setup()
Wire.begin(); //initiate wire library and I2C
Wire.beginTransmission(MPU); //begin transmission to I2C slave device
Wire.write(0x6B); // PWR_MGMT_1 register
Wire.write(0); // set to zero (wakes up the MPU-6050)
Wire.endTransmission(true); //ends transmission to I2C slave device
Serial.begin(9600); //serial communication at 9600 bauds
Wire.beginTransmission(MPU); //begin transmission to I2C slave device
Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H)
Wire.endTransmission(false); //restarts transmission to I2C slave device
Wire.requestFrom(MPU,14,true); //request 14 registers in total
Xây dựng các thí nghiệm IoT 27
AcX=Wire.read()