Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
2,09 MB
Nội dung
SKKN Tiểu Luận PRO(123docz.net) 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 Hoà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 SKKN Tiểu Luận PRO(123docz.net) 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 9 b Post data 10 c Get data 11 Phân tích mã nguồn 12 a Mơ hình MVC 12 b Cấu trúc code 13 V Giới thiệu lập trình MSP430G2 15 VI TÀI LIỆU SỬ DỤNG, TRÍCH DẪN 34 SKKN Tiểu Luận PRO(123docz.net) 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 SKKN Tiểu Luận PRO(123docz.net) II - 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 Báo cáo tiến độ công việc SKKN Tiểu Luận PRO(123docz.net) 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 SKKN Tiểu Luận PRO(123docz.net) - 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: SKKN Tiểu Luận PRO(123docz.net) #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 SendInfo2Server(uint8_t *buff, size_t size); // hàm gửi liệu máy chủ void RecvFromMSP430(); // Hàm nhận liệu từ MSP430 void STAConnectAP(char const* ssid, char const* pass); // hàm kết nối đến AP void changeURL(); // Hàm thay đổi URL có thị từ máy tính void changeWIFI(); // Hàm thay đổi kết nối wifi có thị từ máy tính void 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 | */ SKKN Tiểu Luận PRO(123docz.net) 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: { " N h i } e */ t D o " : i n t , " D o A m " : i n t , " SKKN Tiểu Luận PRO(123docz.net) A n h S a n g " : i n t 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) { SKKN Tiểu Luận PRO(123docz.net) 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(); SKKN Tiểu Luận PRO(123docz.net) ● 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 } SKKN Tiểu Luận PRO(123docz.net) SKKN Tiểu Luận PRO(123docz.net) 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 SKKN Tiểu Luận PRO(123docz.net) ● 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: SKKN Tiểu Luận PRO(123docz.net) SKKN Tiểu Luận PRO(123docz.net) LỆNH: SKKN Tiểu Luận PRO(123docz.net) 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: SKKN Tiểu Luận PRO(123docz.net) CƠNG THỨC TÍNH: SKKN Tiểu Luận PRO(123docz.net) BH1750 SKKN Tiểu Luận PRO(123docz.net) 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à khơng phải 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: SKKN Tiểu Luận PRO(123docz.net) LỆNH: SKKN Tiểu Luận PRO(123docz.net) VÍ DỤ ĐỒ ÁN: SKKN Tiểu Luận PRO(123docz.net) 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: SKKN Tiểu Luận PRO(123docz.net) 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-framework-rQOvPKVgkYj mongodb: https://www.mongodb.com/ mô hình mvc: https://techmaster.vn/posts/33903/giai-thich-ve-mo-hinh-mvc KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THƠNG Ngày 20 tháng 04 năm 2018 Giới thiệu Mơ Hình – Kịch bản: Báo cáo tiến độ công việc Giới thiệu lập trình ESP8266 Thơng số phần cứng Giới thiệu lập trình Web Server SKKN Tiểu Luận PRO(123docz.net) CƠNG NGHỆ Node.js gì? Framwork Express nodejs Mongodb CÁC LUỒNG CHẠY Login Post data Get data Phân tích mã nguồn Mơ hình MVC Cấu trúc code - Luồng login: Giới thiệu lập trình MSP430G2 TÀI LIỆU SỬ DỤNG, TRÍCH DẪN ... SKKN Tiểu Luận PRO(123docz.net) 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... bản: Báo cáo tiến độ cơng việc Giới thiệu lập trình ESP8266 Thơng số phần cứng Giới thiệu lập trình Web Server SKKN Tiểu Luận PRO(123docz.net) CÔNG NGHỆ Node.js gì? Framwork Express nodejs Mongodb... SKKN Tiểu Luận PRO(123docz.net) 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