(TIỂU LUẬN) báo cáo đồ án lập TRÌNH THIẾT bị iots môn học CÔNG NGHỆ INTERNET OF THING HIỆN đại

40 3 0
(TIỂU LUẬN) báo cáo đồ án lập TRÌNH THIẾT bị iots môn học CÔNG NGHỆ INTERNET OF THING HIỆN đại

Đ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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THƠNG BÁO CÁO ĐỒ ÁN LẬP TRÌNH THIẾT BỊ IoTs MÔN HỌC: CÔNG NGHỆ INTERNET OF THING HIỆN ĐẠI MÃ LỚP: NT532.I21 GVHD: GS-TS LÊ TRUNG QUÂN Các thành viên nhóm: Nguyễn Hồng Thanh – 14520842 Lê Minh Thuận – 14520913 Phạm Lê Minh Trí – 14520998 Nguyễn Thành Triều – 14521005 Nguyễn Văn Tùng – 14521058 Ngày 20 tháng 04 năm 2018 Mục lục I Giới thiệu Mơ Hình – Kịch bản: II Báo cáo tiến độ công việc III Giới thiệu lập trình ESP8266 IV Giới thiệu lập trình Web Server CƠNG NGHỆ a Node.js gì? b Framwork Express nodejs c Mongodb CÁC LUỒNG CHẠY a Login b Post data c Get data Phân tích mã nguồn a Mơ hình MVC b Cấu trúc code V Giới thiệu lập trình MSP430G2 VI TÀI LIỆU SỬ DỤNG, TRÍCH DẪN I Giới thiệu Mơ Hình – Kịch bản: ● Mơ hình bao gồm : - Lauchpab MSP430 - Vi xử lý ESP8266 - Web server - Database lưu trữ thông tin gửi đến Server - SHT10 Cảm biến nhiệt độ, độ ẩm - BH1750 Cảm biến ánh sang ● Kịch Bản: - Quy trình : SHT, BH -> MSP430-> ESP-> web server -> database TRANG Cảm biến SHT BH đọc liệu môi trường gửi cho MSP sau MSP gửi cho ESP ESP yêu cầu ( chu kỳ 3s) Khi nhận thông tin EPS gửi yêu cầu cập nhật thông tin cho Server Server lưu thông tin xuống Database thống kê thành thị - Quy trình 2: client-> web server -> database Người dùng click nút view, web browser tự động gửi request 3s lần, server cập nhật thông tin weather cho client từ database II Báo cáo tiến độ công việc TRANG III Giới thiệu lập trình ESP8266 ESP8266 dịng chip tích hợp Wi-Fi 2.4Ghz lập trình được, giá rẻ sản xuất công ty bán dẫn Trung Quốc: Espressif Systems Hiện tất dòng chip ESP8266 thị trường mang nhãn ESP8266EX, phiên nâng cấp ESP8266 Được phát hành vào tháng năm 2014, đóng gói đưa thị trường dạng Mơ dun ESP-01, sản xuất bên thứ 3: AI-Thinker Có khả kết nối Internet qua mạng Wi-Fi cách nhanh chóng sử dụng linh kiện kèm Với giá nói rẻ so với tính khả ESP8266 làm ESP8266 có cộng đồng nhà phát triển giới lớn, cung cấp nhiều Module lập trình mã nguồn mở giúp nhiều người tiếp cận xây dựng ứng dụng nhanh Thông số phần cứng TRANG - 32-bit RISC CPU : Tensilica Xtensa LX106 chạy xung nhịp 80 MHz - Hổ trợ Flash từ 512KiB đến 4MiB - 64KBytes RAM thực thi lệnh - 96KBytes RAM liệu - 64KBytes boot ROM - Chuẩn wifi IEEE 802.11 b/g/n, Wi-Fi 2.4 GHz - Tích hợp TR switch, balun, LNA, khuếch đại công suất matching network - Hỗ trợ WEP, WPA/WPA2, Open network - Tích hợp giao thức TCP/IP - Hổ trợ nhiều loại anten - 16 chân GPIO - Hổ trợ SDIO 2.0, UART, SPI, I²C, PWM,I²S với DMA - ADC 10-bit - Dải nhiệt độ hoạt động rộng : -40C ~ 125C Board mạch nhóm sử dụng Wemos NodeMCU - ESP8266 CH340 Vì tính đơn giản dễ sử dụng nên nhóm sử dụng Arduino SDK Quá trình làm việc: - Bước 1: ModeMCU – ESP8266 cố gắng kết nối đến Access Point định trước - Bước 2: Gửi thông điệp “S” đến MSP430 - Bước 3: Nhận thông điệp phản hồi từ MSP430 - Bước 4: Khởi tạo kết nối HTTP request đến máy chủ - Bước 5: Gửi thông điệp bước đến máy chủ - Bước 6: Tạm nghỉ giây quay lại bước Một số dịng mã lập trình ESP8266: #include #include TRANG #include #include #include #include "SoftwareSerial.h" const char* SSID = "nhtcntt"; // Khai báo tên AP const char* PASS = "123456789"; // Mật cho AP String URL = "http://192.168.123.31:3000/update"; // URL máy chủ lưu trữ liệu SoftwareSerial sw(D1, D2, false, 128); //rx, tx khai báo chân dùng cho giao tiếp Serial SerialCommand sCmd; // Giao tiếp serial với máy tính void void void AP void void void SendInfo2Server(uint8_t *buff, size_t size); // hàm gửi liệu máy chủ RecvFromMSP430(); // Hàm nhận liệu từ MSP430 STAConnectAP(char const* ssid, char const* pass); // hàm kết nối đến changeURL(); // Hàm thay đổi URL có thị từ máy tính changeWIFI(); // Hàm thay đổi kết nối wifi có thị từ máy tính help(); void setup() { Serial.begin(115200); // thiết lập tỉ lệ bit/s cho giao tiếp serial với máy tính sw.begin(9600); // thiết lập tỉ lệ bit/s cho giao tiếp serial với MSP430 Serial.println("debug"); // Hiển thị lên máy tính Serial.print("Connectting to "); Serial.println(SSID); sCmd.addCommand("URL", changeURL); // Thiết lập hàm liên quan đến lệnh - tương tự việc dùng command line sCmd.addCommand("WIFI", changeWIFI); sCmd.addCommand("help", help); } STAConnectAP(SSID, PASS); void loop() { sCmd.readSerial(); // Đọc thơng điệp từ máy tính gửi đến RecvFromMSP430(); delay(3000); // Tạm nghỉ 5s } /* Message format: message | message | */ TRANG void RecvFromMSP430() { sw.write('S'); // Bắt đầu gửi kí tự S đến MSP430 uint8_t buff[100]; if(sw.available() > 0) // Xác nhận có thơng điệp từ MSP430 gửi thực thi { size_t len = sw.readBytesUntil('|', buff, sizeof(buff)); // Đọc đến gặp kí tự | dừng lại if(len > 0) { SendInfo2Server(buff, len); // Gửi thông điệp vừa nhận lên máy chủ } } } /* URL: http://IPorName:80/update method: POST http header: User-Agent: MAC Address Content-Type: application/json Content-Length: length(http body) Connection: close http body: { "NhietDo" : int, "DoAm" : int, "AnhSang" : int } */ void SendInfo2Server(uint8_t *buff, size_t size) { HTTPClient http; // Khởi tạo đối tượng http http.begin(URL); // kết nối URL định http.addHeader("Content-Type", "application/json"); // Thiết lập nội dung gửi kiểu liệu JSON http.setUserAgent(WiFi.macAddress()); // Thiết lập user agent địa MAC thiết bị int statuscode = http.POST(buff, size); // Sử dụng phương thức POST gửi nội dung lên máy chủ if(statuscode > 0) { String payload = http.getString(); } http.end(); } void STAConnectAP(char const* ssid, char const* pass) { TRANG WiFi.mode(WIFI_STA); // chuyển chế độ station hay client để kết nối đến AP WiFi.begin(ssid, pass); // thiết lập tên wifi mật / Nếu trạng thái chưa kết nối cố gắng kết nối lại khoảng thời gian 10s unsigned long startTime = millis(); while( WiFi.status() != WL_CONNECTED && millis() - startTime < 10000 ) { delay(2000); Serial.println("Failed - Try connect"); } if(WiFi.status() != WL_CONNECTED) return; } / Xuất liệu đến máy tính dùng để debug Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); Serial.print("MAC: "); Serial.println(WiFi.macAddress()); void changeURL() { char *arg = sCmd.next(); if(arg) { URL = String(arg); } } void changeWIFI() { char ssid[20], pass[20]; ssid[0] = '\0'; pass[0] = '\0'; char *arg = sCmd.next(); if(arg) { Serial.println(arg); strncpy(ssid, arg, 20); arg = sCmd.next(); if(arg) { Serial.println(arg); strncpy(pass, arg, 20); WiFi.disconnect(); STAConnectAP(ssid, pass); } else { WiFi.disconnect(); TRANG STAConnectAP(ssid, NULL); } } } void help() { Serial.println("Use: "); Serial.println("URL| - example: URL|http://IP/path"); Serial.println("WIFI|SSID|[PASSWORD]"); } IV Giới thiệu lập trình Web Server CƠNG NGHỆ a Node.js gì? Node.js tảng chạy mơi trường V8 JavaScript runtime - trình thơng dịch JavaScript cực nhanh chạy trình duyệt Chrome b Framwork Express nodejs Express framework nhỏ tiện ích để xây dựng ứng dụng web, cung cấp lượng lớn tính mạnh mẽ để phát triển ứng dụng web mobile Nó dễ dàng để phát triển ứng dụng nhanh dựa Node.js cho ứng dụng Web TRANG Ngắt loại ngắt sinh từ bên chip ngắt Timer/Counter,Watchdog Hoặc dùng ngắt,tức nhấn nút Module GPIO xác nhận có thay đổi điện áp tự động chạy chương trình ngắt GPIO,bật led quay lại chương trình Như thấy hỏi vịng thao tác bật đèn P1.6 bị trễ khoảng thời gian _delay_cycles(),còn dùng ngắt P1.6 sáng tức thì.Đây điểm khác biệt kỹ thuật hỏi vòng ngắt,cũng gần giống việc VĐK bạn chạy chương trình lúc vậy(Về chất khơng phải) NGẮT NGỒI MSP430 thiết kế có nhiều ngắt ngồi(đây điểm vượt trội so với dòng cũ AVR,PIC ).Các cổng P1 P2 hầu hết MSP430 có ngắt.Việc điều khiển ngắt đươc thơng qua ghi PxIE , PxIES , PxIFG Mỗi chân P1 P2 làm ngắt yêu cầu Các chân thiết lập với ghi phụ như: ● Cho phép ngắt ( PxIE) : - Thanh ghi cho phép ngắt chân riêng rẽ ● Bit = 0: không cho phép ngắt ● Bit = 1: Cho phép ngắt Mỗi Bit cho phép ngắt PxIE liên kết với cờ ngắt PxIFG tương ứng Việc ghi vào ghi PxOUT PxDIR ảnh hưởng đến việc điều chỉnh PxIE ● Thanh ghi lựa chọn ngắt cạnh ( PxIES) : Lựa chọn loại ngắt xuất biến đổi tín hiệu ( Nếu PxIE GIE Set) ● Bit = 0: Ngắt cạnh lên ● Bit = 1: Ngắt cạnh xuống - Thanh ghi cờ ngắt ( PxIFG) TRANG 23 ● Cờ ngắt Set tự động theo chương trình lập trình trước xuất chuyển đổi tín hiệu Cờ PxIFG phải sử dụng chương trình để Reset - o Bit = 0: Khơng có ngắt o Bit = 1: Có ngắt Để thực ngắt cần bước: ● Thiết lập cấu hình Module phép ngắt xảy điều kiện xảy ngắt ● Gọi hàm thực ngắt tương ứng Lấy ví dụ : Đèn P1.0 nháy chu kỳ 0.5Hz,nếu nhấn nút P1.3 đèn P1.6 đổi giá trị lập tức( sáng tối) ● Thiết lập cổng vào ra,phải cài đặt P1.3 cổng Input,có điện trở nội kéo lên để chống nhiễu,cài đặt cho phép ngắt cạnh xuống.Cài đặt cổng Output cho đèn P1.0 P1.6.Cuối set BIT GIE=1 hàm bis_SR_register(GIE);(đây số hàm set ghi trạng thái SR(đọc thêm sách Cơ sở lý thuyết MSP430)) ● Gọi hàm thực ngắt,có bố cục giống hàm ngắt khác #pragma vector = (Tên hàm ngắt mặc định) //xem cuối interrupt void (Tên hàm ngắt người dùng đặt)(void) { //Thực chương trình ngắt //Hàm xóa cờ ngắt } TRANG 24 TRANG 25 SHT10 THÔNG SỐ KỸ THUẬT: ● Điện áp cung cấp: 2.4 ~ 5.5VDC ● Dải đo độ ẩm: - 100% RH ● Độ xác độ ẩm: ± 4.5% RH ● Dải đo nhiệt độ: -40 ~ 123.8℃ ● Độ xác nhiệt độ: ± 0.4℃ ● Tín hiệu ngõ ra: digital ● Kích thước: 21 x 12 x 20mm TRANG 26 ● Chuẩn kết nối: giống i2c Giao diện nối tiếp SHT1x tối ưu hóa cho cảm biến đọc tiêu thụ lượng hiệu Cảm biến giải theo giao thức I2C; nhiên, cảm biến kết nối với bus I2C mà không gây nhiễu với thiết bị khác kết nối với bus Bộ điều khiển phải chuyển đổi giao thức SƠ ĐỒ ĐẤU NỐI: ● Chân S: chân xung clock ● Chân +: chân cấp nguồn dương ● Chân -: chân cấp nguồn âm(mass) ● Chân D: chân liệu HIỆU SUẤT: TRANG 27 TRANG 28 LỆNH: TRANG 29 LỆNH KHỞI TẠO SHT10: PHẢN HỒI BẮT ĐẦU SHT10 KHI KHỞI TẠO BỊ LỖI: VÍ DỤ: THANH GHI TRẠNG THÁI: TRANG 30 CƠNG THỨC TÍNH: TRANG 31 BH1750 TRANG 32 Cảm biến cường độ ánh sáng BH1750 sử dụng để đo cường độ ánh sáng theo đơn vị lux, càm biến có ADC nội tiền xử lý nên giá trị trả giá trị trực tiếp cường độ ánh sáng lux mà qua xử lý hay tính tốn thơng qua giao tiếp I2C THÔNG SỐ: - Nguồn: 3~5VDC - Giao tiếp: I2C - Khoảng đo: -> 65535 lux - Kích cỡ: 21*16*3.3mm SƠ ĐỒ HOẠT ĐỘNG: TRANG 33 LỆNH: TRANG 34 VÍ DỤ ĐỒ ÁN: TRANG 35 Sử dụng source có sẵn github để giao tiếp msp430 cảm biến Source nằm thư mục lib Sơ đồ làm việc: TRANG 36 VI TÀI LIỆU SỬ DỤNG, TRÍCH DẪN http://Chipfc.com http://thuanbk55.blogspot.com http://GitHub.com express: https://viblo.asia/p/nodejs-voi-express-frameworkrQOvPKVgkYj mongodb: https://www.mongodb.com/ mơ hình mvc: https://techmaster.vn/posts/33903/giaithich-ve-mo-hinh-mvc TRANG 37 ...Mục lục I Giới thiệu Mơ Hình – Kịch bản: II Báo cáo tiến độ công việc III Giới thiệu lập trình ESP8266 IV Giới thiệu lập trình Web Server CƠNG NGHỆ a Node.js gì? b Framwork Express nodejs c... công việc TRANG III Giới thiệu lập trình ESP8266 ESP8266 dịng chip tích hợp Wi-Fi 2.4Ghz lập trình được, giá rẻ sản xuất cơng ty bán dẫn Trung Quốc: Espressif Systems Hiện tất dòng chip ESP8266 thị... http.addHeader("Content-Type", "application/json"); // Thiết lập nội dung gửi kiểu liệu JSON http.setUserAgent(WiFi.macAddress()); // Thiết lập user agent địa MAC thiết bị int statuscode = http.POST(buff, size);

Ngày đăng: 02/12/2022, 08:33

Hình ảnh liên quan

I. Giới thiệu Mơ Hình – Kịch bản: - (TIỂU LUẬN) báo cáo đồ án lập TRÌNH THIẾT bị iots môn học CÔNG NGHỆ INTERNET OF THING HIỆN đại

i.

ới thiệu Mơ Hình – Kịch bản: Xem tại trang 3 của tài liệu.
6. mơ hình mvc: https://techmaster.vn/posts/33903/giai- - (TIỂU LUẬN) báo cáo đồ án lập TRÌNH THIẾT bị iots môn học CÔNG NGHỆ INTERNET OF THING HIỆN đại

6..

mơ hình mvc: https://techmaster.vn/posts/33903/giai- Xem tại trang 40 của tài liệu.