CHƯƠNG 1 – TÌM HIỂU SƠ BỘ VỀ ĐỀ TÀI 1. Khái niệm IoTs? IoTs là IoT (Internet of Things) nghĩa là Internet vạn vật. Một hệ thống các thiết bị tính toán, máy móc cơ khí và kỹ thuật số hoặc con người có liên quan với nhau và khả năng truyền dữ liệu qua mạng mà không yêu cầu sự tương tác giữa con người với máy tính.1: Internet of Things. Ý tưởng về một mạng lưới các thiết bị thông minh đã được thảo luận từ 1982, với một máy bán nước Coca-Cola tại Đại học Carnegie Mellon được tùy chỉnh khiến nó đã trở thành thiết bị đầu tiên được kết nối Internet, có khả năng báo cáo kiểm kho và độ lạnh của những chai nước mới bỏ vào máy.
Năm 1999, Kevin Ashton đã đưa ra cụm từ Internet of Things để mô tả một hệ thống mà Internet được kết nối với thế giới vật chất thông qua các cảm biến. Cấu trúc của một hệ thống IoTs Với một hệ thống IoT chúng sẽ bao gồm 4 thành phần chính đó là thiết bị (Things), trạm kết nối (Gateways), hạ tầng mạng (Network and Cloud) và bộ phân tích và xử lý dữ liệu (Services-creation and Solution Layers).2: Cấu trúc IoTs. Các cảm biến sẽ có nhiệm vụ cảm nhận các tín hiệu từ môi trường như nhiệt độ, áp suất, ánh sáng,… và chuyển chúng thành các dạng dữ liệu trong môi trường Internet. Sau đó các tín hiệu sẽ được xử lý và đưa ra các thay đổi theo ý của người tiêu dùng.
Hiện nay chúng thường được ứng dụng thông qua các ứng dụng trên điện thoại hay trên máy tính,… Trang 5/42 3. Ưu và nhược điểm của IoTs. * Ưu điểm: + Truy cập thông tin từ mọi lúc, mọi nơi trên mọi thiết bị. + Cải thiện việc giao tiếp giữa các thiết bị điện tử được kết nối.
+ Chuyển dữ liệu qua mạng Internet giúp tiết kiệm thời gian và tiền bạc. + Tự động hóa các nhiệm vụ giúp cải thiện chất lượng dịch vụ của doanh nghiệp. * Nhược điểm: + Khi nhiều thiết bị được kết nối và nhiều thông tin được chia sẻ giữa các thiết bị, thì hacker có thể lấy cắp thông tin bí mật cũng tăng lên. + Các doanh nghiệp có thể phải đối phó với số lượng lớn thiết bị IoT và việc thu thập và quản lý dữ liệu từ các thiết bị đó sẽ là một thách thức.
+ Nếu có lỗi trong hệ thống, có khả năng mọi thiết bị được kết nối sẽ bị hỏng. + Vì không có tiêu chuẩn quốc tế về khả năng tương thích cho IoT, rất khó để các thiết bị từ các nhà sản xuất khác nhau giao tiếp với nhau. Ứng dụng của IoTs * Ứng dụng cho doanh nghiệp: Lợi ích của IoT cho doanh nghiệp phụ thuộc vào việc triển khai cụ thể, doanh nghiệp nên có quyền truy cập vào dữ liệu nhiều hơn về các sản phẩm của họ và hệ thống nội bộ của họ. Các nhà sản xuất đang thêm các cảm biến vào các thành phần của sản phẩm để họ có thể truyền lại dữ liệu về cách chúng hoạt động.
Việc này sẽ giúp doanh nghiệp phát hiện ra lỗi trước khi thiệt hại xảy ra.3: Ứng dụng IoTs Trang 7/42 Việc sử dụng IoT cho doanh nghiệp có thể được chia thành hai phân khúc: + Các dịch vụ dành riêng cho ngành như cảm biến trong nhà máy phát điện hoặc thiết bị định vị thời gian thực để chăm sóc sức khỏe. + Các thiết bị IoT được sử dụng trong tất cả các ngành công nghiệp, như điều hòa không khí thông minh hoặc hệ thống an ninh. - Ứng dụng cho người dùng IoT sẽ làm cho nhà, văn phòng và phương tiện của chúng ta trở nên thông minh hơn, dễ đo lường hơn và tốt hơn. Các thết bị thông minh như Echo của Amazon và Google Home giúp phát nhạc dễ dàng hơn, đặt bộ hẹn giờ,.
Máy điều hòa thông minh có thể giúp chúng ta sưởi ấm nhà trước khi chúng ta quay trở lại.3: Ứng dụng IoTs Các cảm biến có thể giúp chúng ta biết được môi trường đang ồn ào hay ô nhiễm như thế nào. Xe hơi tự lái và thành phố thông minh có thể thay đổi cách chúng ta xây dựng và quản lý không gian công cộng. Tuy nhiên, nhiều trong số những đổi mới này có thể có ảnh hưởng lớn đến quyền riêng tư cá nhân của chúng ta. Trang 8/42 CHƯƠNG 2 – THIẾT KẾ SẢN PHẨM 1.
Sơ đồ nguyên lý của hệ thống.2: Sơ đồ khối của hệ thống. Viết chương trình #include <ESP8266WiFi.h> #define BLYNK_TEMPLATE_ID "TMPL6byQi5fEp" #define BLYNK_TEMPLATE_NAME "hunglxph24306" #define BLYNK_AUTH_TOKEN "V2b3VRW10hHgeqpLBHewG0i2WLN5aocm" char auth[] = "V2b3VRW10hHgeqpLBHewG0i2WLN5aocm"; char ssid[] = "Cáo Bụng Bự"; char pass[] = "caobungbu"; int sensor = 2; // Chân kết nối cảm biến int sensorValue = 0; // Biến lưu trữ giá trị đo được #define led1 16 #define led2 5 #define led3 4 #define button1 12 #define button2 13 #define button3 15 int flag; unsigned long timesDelay = millis(); void setup() { Serial.run(); if (flag == 0) { sensor_check(); Trang 11/42 } // nếu trạng thái button là 0 thì led off } BLYNK_WRITE(V11) //khai báo viết lệnh trên blynk { flag = param.asInt(); // gán nút nhấn } void sensor_check() { sensorValue = digitalRead(sensor); // Đọc giá trị từ cảm biến Serial.virtualWrite(V3, digitalRead(led3)); } } BLYNK_WRITE(V1) { flag = 1; Blynk.virtualWrite(V11, flag); int p = param.asInt(); digitalWrite(led1, p); } BLYNK_WRITE(V2) { flag = 1; Blynk.virtualWrite(V11, flag); int p = param.asInt(); digitalWrite(led2, p); } BLYNK_WRITE(V3) { flag = 1; Blynk.virtualWrite(V11, flag); int p = param.asInt(); Trang 12/42 digitalWrite(led3, p); } ICACHE_RAM_ATTR void handleInterrup1() { if (millis() - timesDelay > 200) { flag = 1; Blynk.virtualWrite(V11, flag); digitalWrite(led1, !digitalRead(led1)); timesDelay = millis(); } } ICACHE_RAM_ATTR void handleInterrup2() { if (millis() - timesDelay > 200) { flag = 1; Blynk.virtualWrite(V11, flag); digitalWrite(led2, !digitalRead(led2)); timesDelay = millis(); } } ICACHE_RAM_ATTR void handleInterrup3() { if (millis() - timesDelay > 200) { flag = 1; Blynk. Lưu đồ thuật toán Trang 14/42 5. Thiết kế giao diện.
* Blynk App là gì? Blynk App là một bảng điều khiển kỹ thuật số cho phép bạn có thể xây dựng giao diện đồ họa cho dự án của mình bằng cách kéo và thả các widget khác nhau mà nhà cung cấp thiết kế sẵn. * Blynk là gì? - Blynk là một nền tảng với các ứng dụng iOS và Android để điều khiển Arduino, Raspberry Pi và các ứng dụng tương tự qua Internet. - Nó là một bảng điều khiển kỹ thuật số nhờ đó bạn có thể xây dựng giao diện đồ họa cho dự án của mình bằng cách kéo và thả các widget. - Việc thiết lập mọi thứ rất đơn giản và bạn sẽ bắt đầu sau chưa đầy 5 phút.
- Blynk không bị ràng buộc với một số bo hoặc shield cụ thể. Thay vào đó, nó hỗ trợ phần cứng mà bạn lựa chọn. Cho dù Arduino hoặc Raspberry Pi của bạn được liên kết với Internet qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn online và sẵn sàng cho IoT. * Cách thức hoạt động của Blynk: Blynk được thiết kế cho IoT.
Nó có thể điều khiển phần cứng từ xa, nó có thể hiển thị dữ liệu cảm biến, nó có thể lưu trữ dữ liệu, trực quan hóa và làm nhiều thứ hay ho khác. Trang 15/42 * Có 3 thành phần chính trong nền tảng: - Ứng dụng Blynk - cho phép bạn tạo giao diện cho các dự án của mình bằng cách sử dụng các widget khác nhau. - Blynk Server - chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh và phần cứng. Bạn có thể sử dụng Blynk Cloud hoặc chạy cục bộ máy chủ Blynk riêng của mình.
Nó là mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có thể được khởi chạy trên Raspberry Pi. - Thư viện Blynk - dành cho tất cả các nền tảng phần cứng phổ biến - cho phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và lệnh đi. - Mỗi khi bạn nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không gian của đám mây Blynk, và tìm đường đến phần cứng của bạn. * Đặc tính: API và giao diện người dùng tương tự cho tất cả phần cứng và thiết bị được hỗ trợ Kết nối với đám mây bằng cách sử dụng: Wifi Bluetooth và BLE Ethernet USB (Nối tiếp) GSM … Bộ Widget dễ sử dụng Thao tác ghim trực tiếp mà không cần viết mã Trang 16/42 Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng ghim ảo Theo dõi dữ liệu lịch sử qua tiện ích SuperChart Giao tiếp giữa thiết bị với thiết bị sử dụng Bridge Widget Gửi email, tweet, push notification.
Các tính năng mới liên tục được bổ sung! * Các bược tạo app trên Blynk: - Bước 1: Truy cập: https://blynk.cloud/ - Bước 2: Tạo tài khoản Hình 2.3: Tạo tài khoản Blynk. Trang 17/42 - Bước 3: Chọn New template => đặt tên Hình 2.4: Chọn New template => đặt tên Trang 18/42 - Bước 4: Chọn New Datastream, đặt tên nút và chân kết nối => Chọn Create.5: Khởi tạo New Datastream. Trang 19/42 - Bước 5: Chọn Wed Dashboard Tại đây kéo Switch => chọn tên nút vừa tạo bên Datastrems => Chọn save.6: Khởi tạo Wed Dashboard - Bước 6: Chọn cửa sổ Search => New device => chọn From Teamplate Trang 20/42 Hình 2.7: Khởi tạo From Teamplate. => sau đó chọn tên Teamplate vừa tạo ở phần Choose teamplate => Create Trang 21/42 Hình 2.8: Khởi tạo From Teamplate.
- Bước 7: Chọn Device Info Trang 22/42 Copy link FIMWARE CONFIGURATION => Sau đó gắn vào code trên phần mềm Aduino IDE - Giao diện Blynk trên laptop.9: Giao diện Blynk trên laptop. * Tạo app trên ios Trang 23/42 - Bước 1: Cài đặt app Blynk và Đăng nhập sau đó chọn device đã tạo.10: Đăng nhập Blynk trên Smartphone. - Bước 2: Thiết lập Datasteam.11: Thiết lập Datasteam. - Bước 3: Ấn vào button sau đó cài Datasteam => ở phần Settings chọn SWICH => Chỉnh tên ở phần Labels Trang 25/42 Hình 2.12: Thiết lập nút nhấn và đặt tên.
- Giao diện Blynk trên Smartphone.13: Giao diện Blynk trên Smartphone. Thiết kế phần mềm. * Thiết kế 2D bằng phần mềm Altium.14 : Thiết kế 2D bằng phần mềm Altium. Trang 28/42 * Thiết kế 3D bằng phần mềm Altium.15 : Thiết kế 3D bằng phần mềm Altium.
Nạp chương trình.16 : Nạp chương trình. Trang 30/42 CHƯƠNG 3 – CHẾ TẠO SẢN PHẨM 1. Lắp ráp linh kiện * Các thành phần trong sơ đồ: - ESP8266 NodeMCU Hình 3.1: ESP8266 NodeMCU - Thông số kỹ thuật: + IC chính: ESP8266 Wifi SoC. + Phiên bản firmware: NodeMCU Lua.
+ Chip nạp và giao tiếp UART: CH340. + GPIO tương thích hoàn toàn với firmware Node MCU. + Cấp nguồn: 5VDC MicroUSB hoặc Vin. + GIPO giao tiếp mức 3.
+ Tích hợp Led báo trạng thái, nút Reset, Flash. + Kích thước: 59 x 32mm. Trang 31/42 - OPTO PC817 Hình 3.2: OPTO PC817 - Thông số kỹ thuật: + Loại gói: Dip 4 chân và SMT. + Loại transistor: NPN.