1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận CÔNG NGHỆ INTERNET OF THING HIỆN ĐẠI đề tài LẬP TRÌNH THIẾT BỊ IoTs

40 21 0

Đ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

Thông tin cơ bản

Tiêu đề Lập Trình Thiết Bị IoTs
Tác giả Nguyễn Hoàng Thanh, Lê Minh Thuận, Phạm Lê Minh Trí, Nguyễn Thành Triều, Nguyễn Văn Tùng
Người hướng dẫn GS-TS Lê Trung Quân
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Mạng Máy Tính Và Truyền Thông
Thể loại Báo Cáo Đồ Án
Năm xuất bản 2018
Định dạng
Số trang 40
Dung lượng 2,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

● Clock của MSP430 có thể coi là bước cải tiếp lớn so với các dòngVĐK khác với rất nhiều ưu điểm như: ● Xung nội có sai số nhỏ 1 – 3% tùy dòng ● Chỉnh tần số bằng phần mềm ● Chế độ ngủ

Trang 1

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 trong nhóm:

1 Nguyễn Hoàng Thanh – 14520842

2 Lê Minh Thuận – 14520913

3 Phạm Lê Minh Trí – 14520998

4 Nguyễn Thành Triều – 14521005

5 Nguyễn Văn Tùng – 14521058

Ngày 20 tháng 04 năm 2018

Trang 2

Mục lục

Trang 3

I Giới thiệu Mô Hình – Kịch bản:

Trang 4

- 2 Cảm biến SHT và BH sẽ đọc dữ liệu môi trường và gửi cho MSP sau

đó MSP sẽ gửi cho ESP khi ESP yêu cầu ( chu kỳ 3s) Khi nhận đượcthông tin EPS sẽ gửi yêu cầu cập nhật thông tin cho Server Serverlưu thông tin xuống Database và thống kê thành bản hiện thị

- Quy trình 2: client-> web server -> database

- Người dùng click nút view, web browser sẽ tự động gửi request mỗi 3s 1lầ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 5

III Giới thiệu và lập trình trên ESP8266.

ESP8266 là dòng chip tích hợpWi-Fi 2.4Ghzcó thể lập trình được, giá rẻ được sảnxuất bởi một công ty bán dẫn Trung Quốc:Espressif Systems

Hiện nay tất cả các dòng chipESP8266trên thị trường đều mang nhãnESP8266EX,

là phiên bản nâng cấp củaESP8266

Được phát hành đầu tiên vào tháng 8 năm 2014, đóng gói đưa ra thị trường dạng Môdun ESP-01, được sản xuất bởi bên thứ 3: AI-Thinker Có khả năng kết nối Internetqua mạng Wi-Fi một cách nhanh chóng và sử dụng rất ít linh kiện đi kèm Với giá

cả có thể nói là rất rẻ so với tính năng và khả năng ESP8266 có thể làm được

ESP8266 có một cộng đồng các nhà phát triển trên thế giới rất lớn, cung cấp nhiềuModule lập trình mã nguồn mở giúp nhiều người có thể tiếp cận và xây dựng ứngdụng rất nhanh

Thông số phần cứng

Trang 6

- 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

- Dải nhiệt độ hoạt động rộng : -40C ~ 125C

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

Vì tính đơn giản và 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 đã đượcchỉ đị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 một kết nối HTTP request đến máy chủ

- Bước 5: Gửi thông điệp của bước 3 đến máy chủ

- Bước 6: Tạm nghỉ 3 giây và quay lại bước 2

Một số dòng mã lập trình trên ESP8266:

Trang 7

#include <ESP8266HTTPClient.h>

#include "SoftwareSerial.h"

#include <SerialCommand.h>

#include <string.h>

const char* SSID = "nhtcntt" ; // Khai báo tên AP

const char* PASS = "123456789" ; // Mật khẩu cho AP đó

String URL = "http://192.168.123.31:3000/update" ; // URL của máy chủ lưu trữ dữ liệu

SoftwareSerial sw (D1, D2, false, 128); //rx, tx khai báo các 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 dữ liệu về máy chủ

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

void changeWIFI (); // Hàm thay đổi kết nối wifi khi có chỉ thị từ máy tính

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 các hàm liên quan đến các lệnh - tương tự như việc dùng command line

sCmd addCommand ( "WIFI" , changeWIFI);

sCmd addCommand ( "help" , help);

STAConnectAP (SSID, PASS);

Trang 8

SendInfo2Server (buff, len); // Gửi thông điệp vừa nhận lên máy chủ

} }

"

: i n t ,

"

D o A m

"

: i n t ,

"

Trang 9

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 đã chỉ định

http addHeader ( "Content-Type" , "application/json" ); // Thiết lập nội dung sẽ gửi là kiểu dữ liệu JSON

http setUserAgent (WiFi macAddress ()); // Thiết lập user agent là địa chỉ MAC của 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ủ

Trang 10

WiFi mode (WIFI_STA); // chuyển về chế độ station hay client để kết nối đến AP

WiFi begin (ssid, pass); // thiết lập tên wifi và mật khẩu

// Nếu trạng thái là chưa kết nối thì cố gắng kết nối lại trong 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 dữ 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 ());

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 11

IV Giới thiệu và lập trình trên Web Server.

1 CÔNG NGHỆ

a Node.js là gì?

Node.js là một nền tảng chạy trên môi trường V8 JavaScript runtime - mộttrình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome

b Framwork Express của nodejs

Express là một framework nhỏ và tiện ích để xây dựng các ứng dụng web,cung cấp một lượng lớn của tính năng mạnh mẽ để phát triển các ứng dụngweb và mobile Nó rất dễ dàng để phát triển các ứng dụng nhanh dựa trênNode.js cho các ứng dụng Web

Trang 12

c Mongodb

MongoDB là gì?

- MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở thuộc họcNoSQL Nó được thiết kế theo kiểu hướng đối tượng, các bảng trongMongoDB đượ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àyrấ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

Ưu điểm của mongoDB

- Schema linh hoạt: Do MongoDB sử dụng lưu trữ dữ liệu dướidạng Document JSON nên mỗi một collection sẽ các các kích cỡ

và các document khác nhau

- Cấu trúc đối tượng rõ ràng: Tuy rằng cấu trúc của dữ liệu là linhhoạt nhưng đối tượng của nó được xác định rất rõ ràng Sử dụng bộnhớ nội tại, nên truy vấn sẽ rất nhanh

- MongoDB rất dễ mở rộng

- Không có các join: Điều này cũng góp phần tạo nên tốc độ truy vấncực nhanh trên mongoDB

- MongoDB phù hợp cho các ứng dụng realtime

Nhược điểm của mongoDB

Điều đầu tiên phải kể đến ở đây là MongoDB không có các tính chấtràng buộc như trong RDBMS nên khi thao tác với mongoDB thì phảihết sức cẩn thận MongoDB sử dụng sẽ hao tốn tài nguyên của hệthống nhiều hơn RDBMS

2 CÁC LUỒNG CHẠY

a Login

Bước 1: Nhập username, passwordBước 2: Web browser gửi request lên serverBước 3: Server check user với database

Trang 13

Bước 4: Nếu tồn tại user thì tạo token và lưu lại token và gửi response choweb browser

Bước 5: Browser thông báo đăng nhập thành công cho admin

b Post data

Bước 1: ESP gửi request và data lên web serverBước 2: Web server lưu data xuống databaseBước 3: Trả về kết quả cho ESP

Trang 14

c Get data

Bước 1: Admin click viewBước 2: Web browser gửi request xem thông tin và tokenBướ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ửiresponse về cho web browser

Bước 5: Web browser hiển thị thông tin lên màn hình cho admin

Trang 15

- 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ị

Trang 16

b Cấu trúc code

Trang 17

- Luồng login:

+ Front end gửi request đăng nhập gồm thông tin username,

password

Trang 18

+ Back end xử lý login:

Trang 19

V. Giới thiệu và lập trình trên MSP430G2

MSP430G2

Trang 20

Thuộc dòng Kit Lauchpad giá rẻ từ hãng sản xuất TI danh tiếng, MSP430Lauchpad là kit thí nghiệm được rất nhiều các bạn sinh viên, người nghiêncứu và các trường đại học lựa chọn hiện nay

THÔNG SỐ KỸ THUẬT:

- MCU dòng DIP 20 chân MSP420G2xxx

- Mạch nạp và Debug tích hợp sẵn trên board

- Có led RGB và nút nhấn tích hợp sẵn

- Tặng kèm thạch anh 32khz cho các ứng dụng timer

- Tặng thêm 1 vi điều khiển MSP430 trong hộp

- Phần mềm lập trình miễn phí trên trang web của hãng

PHẦN MỀM LẬP TRÌNH:

- Code Composer Studio

Trang 21

- IAR Embedded.

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 digitalCLOCK:

- Nguồn xung Clock của MSP430 được chia làm 2 lớp

T RANG 18

Trang 22

- Lớp đầu tiên là các nguồn tạo ra xung clock:

● LFXT1CLK: Bộ dao động tần số thấp/ tần số cao, nó có thể được

● DCOCLK: Bộ dao động được điều khiển bằng kĩ thuật số ( DCO)

● VLOCLK : Bộ dao động tần số thấp giống DCOCLK

- Có 3 tín hiệu clock đầu ra cơ bản là :

● ACLK (Auxiliary clock ) : Có thể sử dụng nguồn LFX1CLK vàVLOCLK Có thể tạo được tần số nhỏ hơn nữa bằng cách sử dụng các

bộ chia 1, 2, 4, 8 Dùng cho các module ngoại vi

● MCLK (Master clock) : Có thể sử dụng nguồn LFX1CLK, VLOCLK,XT2CLK và DCOCLK Dùng cho hệ thống và CPU

● SMCLK (Sub-main clock) : Cũng có thể sử dụng 4 nguồn trên vàdùng cho các module ngoại vi

● Clock của MSP430 có thể coi là bước cải tiếp lớn so với các dòngVĐK khác với rất nhiều ưu điểm như:

● Xung nội có sai số nhỏ ( 1 – 3% tùy dòng)

● Chỉnh tần số bằng phần mềm

● Chế độ ngủ thông minh,có thể ngủ hoặc thức dậy rất nhanh,không

bị treo khi ngủ

● Có nhiều lựa chọn nguồn xung clock riêng biệt cho từng module

- MSP430 được cung cấp các define cái giá trị DCOCTL và BCSCTL1cho phép nhanh chóng chỉnh tần số có sẵn là 1MHZ , 8MHZ , 12MHZ ,16MHZ Ví dụ để chỉnh tần số 8Mhz,có thể viết:

● DCOCTL = CALDCO_1MHZ;

● BCSCTL1 = CALBC1_1MHZ;

Trang 23

- Hoặc cấu hình module clock chúng ta sẽ sử dụng 4 thanh ghi :

● DCOCTL : DCO control register

● BCSCTL1: Basic clock system control register

● BCSCTL2: Basic clock system control register

● BCSCTL3: Basic clock system control registerUART:

- Có thể nói đây là một trong những giao tiếp phổ biến và dễ sử dụngnhất,dùng để truyền nhận dữ liệu giữa 2 hay nhiều thiết bị khác nhau khôngnhất thiết là vi điểu khiển.UART là chuẩn truyền thông không đồng bộ(nghĩa là 2 thiết bị giao tiếp với nhau cần phải biết được các thông số củakhung truyền như tốc độ,độ dài khung,số bit stop,bit parity ).Khi muốndùng giao tiếp UART thì chúng ta phải khai báo hàm khởi tạo giá trị chocác thanh ghi UART,cụ thể:

● Chọn các chân dùng UART(VĐK MSP430G2553 là P1.1 và P1.2) để ởchức năng giao tiếp ngoại vi,tùy vào thứ tự ưu tiên chúng ta chọn thanhghi PxSEL và PxSEL2 cho phù hợp

● Định dạng khung truyền dữ liệu,số bit stop,bit parity,số bit dữ liệubằng thanh ghi UCA0CTL0

● Cài đặt nguồn cấp xung clk

● Định tần số giao tiếp(Chú ý là module trên kit Lauchpad chỉ hỗ trợduy nhất tần số 9600,muốn dùng tần số khác các bạn buộc phải nối vớimodule UART to Com bên ngoài

● Set cờ cho phép ngắt nhận tín hiệu

- Một số chip MSP430 không có module UART,thường là các chip cũ dùngmodule truyền thông loại USI,để biết chi tiết các bạn nên đọc trực tiếptrong datasheet

GPIO:

- Thanh ghi dữ liệu vào PxIN :

● Mỗi Bit trong mỗi thanh ghi PxIN phản ảnh giá trị của tín hiệu vào ởchân I/O tương ứng khi các chân này được thiết lập chức năng I/O

● Bit = 0: Ngã vào mức thấp

Trang 24

● Bit = 1: Ngã vào mức cao

- Thanh ghi dữ liệu xuất PxOUT:

● Mỗi Bit trong mỗi thanh ghi PxOUT là giá trị xuất ra trên các chânI/O tương ứng khi khi

● các chân này được thiết lập chức năng I/O Xuất dữ liệu có hướng vàviệc tăng giảm điện

● thanh ghi PxOUT có tác dụng lựa chọn việc tăng giảm điện trở

● Bit = 0: Giảm xuống

● Bit = 1: Tăng lên

- Các thanh ghi định hướng PxDIR

● Mỗi Bit trong mỗi thanh ghi PxDIR lựa chọn định hướng của chân I/Otương ứng, bất

● chấp chức năng đã được chọn của chân Những Bit PxDIR chonhững chân I/O được lựa

● chọn cho những chức năng khác phải được thiết lập theo yêu cầu củachức năng đó

● Bit = 0: Những chân của Port được định hướng là ngã vào

● Bit = 1: Những chân của Port được định hướng là ngã ra

- Thanh ghi cho phép tăng/giảm điện trở PxREN

● Mỗi Bit của mỗi thanh ghi PxREN dùng để cho phép hoặc không chophép sự tăng/giảm

● điện trở của các chân I/O tương ứng Những Bit tương ứng của thanhghi PxOUT được

● chọn nếu chân được tăng lên hoặc giảm xuống

● Bit = 0: Tăng/giảm điện trở không được cho phép

Trang 25

● Bit = 1: Tăng/giảm điện trở được cho phép.

- Thanh ghi chức năng lựa chọn PxSEL và PxSEL2

● Các chân này được đa hợp với các các chức năng của các môđun ngoại vi khác Mỗi Bit

● PxSEL và PxSEL2 được sử dụng cho việc lựa chọn chức năng củacác chân: Chức năng

● I/O xuất nhập dữ liệu hoặc chức năng mô đun giao tiếp ngoai vi.INTERRUPT:

- Ngắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưutiên thực hiện

- một chương trình khác , chương trình này được gọi là chương trình phục

vụ ngắt (ISR –

- Interrupt Service Routine)

- MSP430 có 2 loại ngắt là ngắt khả ngụy và ngắt không khả ngụy

● Ngắt không khả ngụy liên quan đến các hoạt động Reset,phát hiện lỗixong clock , sự cố về bộ nhớ Flash.Nói chung ngắt này có mức độ ưutiên cao nhất , ở chế độ bình thường không ảnh hưởng đến hoạt độngcủa chương trình Một số chế độ đặc biệt mình sẽ hướng dẫn trongloạt bài MSP430_Advance , sẽ viết sau,trình bày cách điều khiển hoạtđộng của các ngắt không khả ngụy này như tắt chức năng reset ởchân Reset,khởi động lại bằng phần mềm.Ngắt không khả ngụykhông điều khiển bằng bit GIE trong thanh ghi điều khiển

● Ngắt khả ngụy là loạt ngắt liên quan trực tiếp đến hoạt động của hầuhết các chương trình cho phép thực hiện các chương trình gọi từ ngắtcủa các cổng Inout,ngắt từ Timer , ADC , Các giao thức truyền thông Có hai loại ngắt khả ngụy là ngắt trong và ngắt ngoài Ngắt khảngụy điều khiển bằng bit GIE trong thanh ghi điều khiển.Tức là muốnhoạt động thì BIT GIE phải được set=1 (đây là một bit trong thanhghi trạng thái SR(đọc thêm trong sách Cơ sở lý thuyết MSP430))

- Ngắt ngoài là các ngắt do tác động của bên ngoài lên chip VD như ngắtGPIO,ADC,Các giao thực truyền thông

Trang 26

- Ngắt trong là các loại ngắt sinh ra từ bên trong chip như ngắtTimer/Counter,Watchdog.

- Hoặc có thể dùng ngắt,tức là khi nhấn nút thì Module GPIO xác nhận có

sự thay đổi điện áp và tự động chạy chương trình ngắt GPIO,bật led vàquay lại chương trình chính

- Như vậy có thế thấy nếu hỏi vòng thì thao tác bật đèn P1.6 bị trễ mộtkhoảng thời gian ở _delay_cycles(),còn khi dùng ngắt thì P1.6 sángtức thì.Đây là một trong những điểm khác biệt giữa kỹ thuật hỏi vòng

và ngắt,cũng gần giống việc VĐK của bạn chạy 2 chương trình cùng 1lúc vậy(Về bản chất thì không phải)

NGẮT NGOÀI

- MSP430 được thiết kế có rất nhiều ngắt ngoài(đây là 1 trong những điểmvượt trội so với các dòng cũ như AVR,PIC ).Các cổng P1 P2 của hầu hếtMSP430 đều có ngắt.Việc điều khiển ngắt đươc thông qua các thanh ghiPxIE , PxIES , PxIFG

- Mỗi chân của P1 và P2 có thể làm một ngắt yêu cầu Các chân này đượcthiết lập với các thanh ghi phụ như:

● Cho phép ngắt ( PxIE) :

- Thanh ghi này cho phép ngắt trên những chân riêng rẽ

● Bit = 0: không cho phép ngắt

● Thanh ghi lựa chọn ngắt cạnh ( PxIES) :

- Lựa chọn loại ngắt khi xuất hiện sự biến đổi tín hiệu ( Nếu PxIE vàGIE được Set)

● Bit = 0: Ngắt cạnh lên

● Bit = 1: Ngắt cạnh xuống

- Thanh ghi cờ ngắt ( PxIFG)

Ngày đăng: 08/06/2022, 03:48

HÌNH ẢNH LIÊN QUAN

SƠ ĐỒ ĐẤU NỐI: - tiểu luận  CÔNG NGHỆ INTERNET OF THING HIỆN ĐẠI  đề tài LẬP TRÌNH THIẾT BỊ IoTs
SƠ ĐỒ ĐẤU NỐI: (Trang 30)
SƠ ĐỒ HOẠT ĐỘNG: - tiểu luận  CÔNG NGHỆ INTERNET OF THING HIỆN ĐẠI  đề tài LẬP TRÌNH THIẾT BỊ IoTs
SƠ ĐỒ HOẠT ĐỘNG: (Trang 36)
Sơ đồ làm việc: - tiểu luận  CÔNG NGHỆ INTERNET OF THING HIỆN ĐẠI  đề tài LẬP TRÌNH THIẾT BỊ IoTs
Sơ đồ l àm việc: (Trang 39)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w