You are on page 1of 16

Đồ Án Lập

Trình Thiết Bị
IoTs
GVTL: GS-TS
Lê Trung Quân
14520842:Nguyễn Hoàng Thanh
14520913:Lê Minh Thuận
14521058:Nguyễn Văn Tùng
14520998:Phạm Lê Minh Trí
14521005:Nguyễn Thành Triều
NỘI DUNG
CHÍNH: 1.Kịch Bản – Mô Hình

2.Lập Trình trên MSP430G2

3.Lập Trình trên ESP8266 – Web Server


1.Kịch Bản
- Mô Hình: Web Server Database

. Mô hình bao gồm :


-1 Lauchpab MSP430 . Vi xử lý
-1 Vi xử lý ESP8266 . ESP8266

-1 Web server. Người


-1 Database lưu trữ thông Dùng
tin được gửi đến Server. MSP430
Lauchpad
-1 SHT10 Cảm biến nhiệt
SHT10 (cảm biến nhiệt
độ, độ ẩm. độ, độ ẩm)
-1 BH1750 Cảm biến ánh
sang. BH1750 (Cảm biến ánh
sáng)
MSP430G2
Thuộc dòng Kit Lauchpad giá rẻ từ hãng sản xuất TI danh tiếng, MSP430 2.Lập Trình trên
Lauchpad là kit thí nghiệm được rất nhiều các bạn sinh viên, người
nghiên cứu và các trường đại học lựa chọn hiện nay MSP430G2
Các chuẩn giao tiếp hỗ trợ:
• General-purpose input/output (GPIO)
• Universal asynchronous receiver-transmitter (UART)
• Inter-Integrated Circuit (IIC)
• Serial Peripheral Interface (SPI)
• Anolog to digital

Ưu điểm
• Tiết kiệm năng lượng
• Hỗ trợ ngắt mạnh

Nhược điểm điểm


• Yếu
• Tài nguyên ít.
P1.6, P1.7
SHT10 Giống ii2
2.Lập Trình trên
MSP430G2 P2.0,P2.1
BH1750 ii2 MSP430G2
P1.1,P1.2
ESP8266
uart

Sử dụng source có sẵn trên github để giao tiếp giữa msp430 và các cảm biến. Source nằm trong thư mục
lib.
Sơ đồ làm việc:
SHT10 (cảm biến nhiệt độ, độ ẩm) 2.Lập Trình trên
Thông số kỹ thuật: Nhược điểm:
• Điện áp cung cấp: 2.4 ~ 5.5VDC. • Độ bền phụ thuộc vào vỏ bảo vệ.
MSP430G2
• Dải đo độ ẩm: 0 - 100% RH.
• Độ chính xác độ ẩm: ± 4.5% RH.
• Dải đo nhiệt độ: -40 ~ 123.8℃.
• Độ chính xác nhiệt độ: ± 0.4℃. BH1750 (Cảm biến ánh sáng)
• Tín hiệu ngõ ra: digital.
Ưu điểm: Thông số kỹ thuật: Ưu điểm:
• Tiết kiệm năng lượng • Nguồn: 3~5VDC • Không cần xử lý hay tính toán giá trị
• Độ chính xác, ổn định cao • Giao tiếp: I2C đo
• Thường sử dụng trong nông nghiệp • Khoảng đo: 1 -> 65535 lux
• Kích cỡ: 21*16*3.3mm

Chuẩn giao tiếp: I2C


ESP8266 là dòng chip tích hợp Wi-Fi 2.4Ghz có thể
lập trình được, giá rẻ được sản xuất bởi một công ty 3.1 Lập Trình
bán dẫn Trung Quốc: Espressif Systems.
Hiện nay tất cả các dòng chip ESP8266 trên thị trên ESP8266
trường đều mang nhãn ESP8266EX, là phiên bản
nâng cấp của ESP8266
Thông số phần cứng
32-bit RISC CPU : Tensilica Xtensa LX106 chạy ở
xung nhịp 80 MHz
Hổ trợ Flash ngoài từ 512KiB đến 4MiB
64KBytes RAM thực thi lệnh
96KBytes RAM dữ 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 và 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
1 ADC 10-bit
Dải nhiệt độ hoạt động rộng : -40C ~ 125C
SoftwareSerial sw(D1, D2, false, 128); //rx, tx khai báo các chân dùng cho giao

Board mạch nhóm đang sử dụng là Wemos NodeMCU - ESP8266 CH340


SDK hỗ trợ chính thức từ hang
tiếp Serial
3.1 Lập Trình
SerialCommand sCmd; // Giao tiếp serial với máy tính

trên ESP8266
void SendInfo2Server(uint8_t *buff, size_t size); // hàm gửi dữ liệu về máy chủ
Một số dòng mã lập trình trên ESP8266: void RecvFromMSP430(); // Hàm nhận dữ 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 khi có chỉ thị từ máy tính
Code của ESP8266 void changeWIFI(); // Hàm thay đổi kết nối wifi khi có chỉ thị từ máy tính
void help();
#include <Arduino.h>
#include <ESP8266WiFi.h> void setup() {
#include <ESP8266HTTPClient.h> Serial.begin(115200); // thiết lập tỉ lệ bit/s cho giao tiếp serial với máy
#include "SoftwareSerial.h" tính
#include <SerialCommand.h> 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
#include <string.h>
Serial.print("Connectting to ");
Serial.println(SSID);
const char* SSID = "nhtcntt"; // Khai báo tên AP
const char* PASS = "123456789"; // Mật khẩu cho AP đó sCmd.addCommand("URL", changeURL); // Thiết lập các hàm liên quan đến các
String URL = "http://192.168.123.31:3000/update"; // URL của máy chủ lưu trữ dữ lệnh - tương tự như việc dùng command line
liệu sCmd.addCommand("WIFI", changeWIFI);
SoftwareSerial sw(D1, D2, false, 128); //rx, tx khai báo các chân dùng cho giao sCmd.addCommand("help", help);
tiếp Serial
SerialCommand sCmd; // Giao tiếp serial với máy tính STAConnectAP(SSID, PASS);
}
void SendInfo2Server(uint8_t *buff, size_t size); // hàm gửi dữ liệu về máy chủ
void loop()
void RecvFromMSP430(); // Hàm nhận dữ liệu từ MSP430
{
void STAConnectAP(char const* ssid, char const* pass); // hàm kết nối đến AP
sCmd.readSerial(); // Đọc các thông điệp từ máy tính gửi đến
void changeURL(); // Hàm thay đổi URL khi có chỉ thị từ máy tính RecvFromMSP430();
void changeWIFI(); // Hàm thay đổi kết nối wifi khi có chỉ thị từ máy tính delay(5000); // Tạm nghỉ 5s
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
1. Nền Tảng Công Nghệ:
3.2 Lập trình
trên Web Server
a. Node.js là gì? b. Framwork Express của nodejs.
Node.js là một nền tảng chạy trên môi Express là một framework nhỏ và tiện ích để xây dựng các ứng dụng
trường V8 JavaScript runtime - một web, cung cấp một lượng lớn của tính năng mạnh mẽ để phát triển
trình thông dịch JavaScript cực nhanh các ứng dụng web và mobile. Nó rất dễ dàng để phát triển các ứng
chạy trên trình duyệt Chrome dụng nhanh dựa trên Node.js cho các ứng dụng Web
3.2 Lập trình
trên Web Server

MongoDB là gì?
-MongoDB là một hệ quản trị cơ sở dữ liệu mã
nguồn mở thuộc NoSQL. Nó được thiết kế theo
kiểu hướng đối tượng, các bảng trong MongoDB
được cấu trúc rất linh hoạt, cho phép các dữ liệu
lưu trữ trên bảng không cần tuân theo một cấu
trúc nhất định nào cả (điều này rất thích hợp để
làm big data).
-MongoDB lưu trữ dữ liệu theo hướng tài liệu
(document), các dữ liệu được lưu trữ trong
document kiểu JSON nên truy vấn sẽ rất nhanh.
3.2 Lập trình
trên Web Server
2. Các luồng chạy
a. Login
Bước 1: Nhập username, password
Bước 2: Web browser gửi request lên server
Bước 3: Server check user với database
Bước 4: Nếu tồn tại user thì tạo token và lưu
lại token và gửi response cho web browser
Bước 5: Browser thông báo đăng nhập
thành công cho admin
3.2 Lập trình
trên Web Server
b. Post data
Bước 1: ESP gửi request và data lên web
server
Bước 2: Web server lưu data xuống database
Bước 3: Trả về kết quả cho ESP
3.2 Lập trình
trên Web Server
c. Get data
Bước 1: Admin click view
Bước 2: Web browser gửi request xem
thông tin và token
Bước 3: Web server check token với
database
Bước 4: Nếu tồn tại token web server sẽ
lấy dữ liệu từ database và gửi response về
cho web browser
Bước 5: Web browser hiển thị thông tin
lên màn hình cho admin
3.2 Lập trình
trên Web Server
3. Phân tích mã nguồn
a. Mô hình MVC
M là Model: cấu trúc dữ liệu theo cách tin
cậy và chuẩn bị dữ liệu theo lệnh của
controller
V là View: Hiển thị dữ liệu cho người dùng
theo cách dễ hiểu dựa trên hành động của
người dùng.
C là Controller: Nhận lệnh từ người dùng,
gửi lệnh đến cho Model để cập nhập dữ
liệu, truyền lệnh đến View để cập nhập
giao diện hiển thị.
b. Cấu trúc code - Luồng login:
+ Front end gửi request đăng nhập
3.2 Lập trình trên
gồm thông tin username, password Web Server

Back end xử lý login:

You might also like