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

đặc tả kỹ thuật platform bài thực hành cảnh báo an ninh an toàn của tòa nhà

30 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Đặc tả kỹ thuật platform bài thực hành cảnh báo an ninh, an toàn của tòa nhà
Tác giả Trần Đăng Công, Hồng Xuân Hiến, Nguyễn Tài Tuyền, Bùi Hải Phong
Trường học Đại học Đại Nam
Chuyên ngành Công nghệ thông tin
Thể loại Lưu hành nội bộ
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 9,23 MB

Nội dung

MO DAU Nhằm đáp ứng yêu cầu của học phần Triển khai, phát triển ứng dụng AI và IoT, tài liệu tập trung mơ tả về basic platform của bài thực hành của học phần.. Bài thực hành bảo đảm đủ c

Trang 1

TRUONG DAI HOC DAI NAM

KHOA CONG NGHE THONG TIN

ĐẠI NAM UNIVERSITY

KHOA CONG NGHE THONG TIN

ĐẶC TA KY THUAT PLATFORM BAI THUC HANH CANH BAO AN NINH, AN TOAN CUA TOA NHA Học phần: Triển khai, phát triển ứng dung AI và IoT

(Lưu hành nội bộ)

TS Trần Đăng Công

TS Hoàng Xuân Hiến

TS Nguyễn Tài Tuyên

TS Bùi Hải Phong

Hà Nội - 2023

Trang 2

MUC LUC scccesesvavesssussssssssvesssnsssscassssasueavssssesvssssssssssssssssesesssststestavsssvavsrestsssatsestssestssesesseevees 3

L YEU CAU BÀI TOÁN 22 c1 1 21221211111121121211 112111111211 11112111 22212211 nre 4

1.1 Yêu cầu công năng -s c s T121 211211111 1101 1 11 111101112 e 4

", ÉP con an 5

II ĐẶC TẢ KỸ THUẬTT 52-2111 155125151151511115111111112122121121211511 11111 rya 6

3.1 Thu thập đữ liệu từ cảm biến DHTTIL - 55c s2 221111221221211 21211171 1121 px 6 3.2 Lập trình gửi dữ liệu lên CÏoud -¿ 2: 22 2223221221221 11133 1111111111111 1x+2 7 3.2.1 Sử dụng Ethernet WŠ1ÚO L 201 211211211511 211 1222212120118 11 7 3.2.2 Sử dụng ESP8266 55 n t2 TT 2121212121221 rrrrrve 8 3.3 Lập trình điều khién thiét bic ccc esceececeecesesessessesessessessessessessessesseeeen 14 3.3.1 Sử dụng Ethernet WŠ1ÚO 2 2.11211211101111 1111111111111111111111 11 xe 14 3.3.2 Sử dụng ESP8266 55s 2n TT E112 12a 19 3.4 Lập trình lưu trữ đữ liệu về CSDIL - 5 1 1 11 211111211211211 112111211121 xx 27 3.5 Lập trình Front-End -. -:- c1 c1 2212211211153 151 11512511 1511111 111111111111 81 H1 Hy HH 29 3.6 Lập trình Back-End - - c 22: 2211221201113 133 13011131131 111 11111111111 1111111111 1111 1x 30 3.7 Lập trình AI hỗ trợ ra quyết định - s22 1211571111111121111122121111x 1x xe 30

Trang 3

MO DAU

Nhằm đáp ứng yêu cầu của học phần Triển khai, phát triển ứng dụng AI và IoT, tài liệu tập trung mơ tả về basic platform của bài thực hành của học phần Bài thực hành bảo đảm đủ cho sinh viên trải nghiệm từ kỹ thuật, kiến thức về các nội dung:

- Thiết kế giải pháp tơng thê cho bài thực hành

- Lập trình nhúng trên Arduino, ESP8§266/ESP32 theo yêu cầu của bài

- Lập trình IòT kết nĩi thiết bị lập trình nhúng với internet, kết nối với các thing khac qua Internet

- Lập trình thu thập đữ liệu từ thiết bị IoT và lưu trữ vào CSDL

- Lập trình Full-Stack và điều khiển thiết bị

- Lập trình AT dự báo, phân loại theo yêu cầu

Các bài tốn cần giải quyết tập trung đề tài Cảnh báo an nỉnh, an tồn của tịa nhà Platform được cung cấp ở mức cơ bản nhất, trên cơ sở đĩ sinh viên tham khảo và phát triển để hồn thiện bài tập thực hành theo yêu cầu của giảng viên

Việc tơ chức thực hành được tổ chức theo nhĩm gồm 03 thành viên, các nhĩm tự chuẩn bị vật tư, dụng cụ thu hanh (Tool Kit), trong do:

- 01 thanh vién tap trung lap trinh Full-Stack

- 01 thanh vién tập trung lập trình loT

- 01 thanh vién tap trung lap trinh AI

Mỗi bài thực hành cần phát huy cao nhất khả năng sáng tạo, cải tiến, tự điều chỉnh, tính chủ động của sinh viên và khả năng khởi nghiệp và áp dụng trong thực tế

TAC GIA

Trang 4

I YEU CAU BAI TOÁN

1.1 Yêu cầu công năng

Cảnh báo về nguy co, su cô về an ninh, an toàn đối với tòa nhà, tập trung các nội dung:

- Cháy nỗ

- Gió, âm thanh bất thường

- Hoạt động lạ (hành động, thời gian)

- Đông người bắt thường

- Các yếu tố khác

Các tình huống ra cảnh báo cần huấn luyện cho hệ thông hiểu và nhận biết, từ đó có những hỗ trợ ra quyết định mức độ về an nình, an toàn Cuối cùng sẽ có những cảnh báo

và báo cáo cụ thể

1.2 Yêu cầu kỹ thuật

- Quyết định cảnh báo mức độ an ninh, an toàn dựa trên các dữ liệu: nhiệt độ, ap suất,

độ âm, khó gas, gió, âm thanh, hình ảnh

- Sử dụng kết nối qua đường internet wiÑ/ethernet

- Cho phép thu thập từ nhiều địa điểm trong tòa nhà đề ra quyết định cảnh báo 1.3 Yêu câu triên khai

- Triển khai tại phòng Lab và các địa điểm học tập

- Đối với thử nghiệm lấy đữ liệu mẫu cho cháy nô cần bảo đảm an toàn

Trang 5

- Sử dụng các công cụ phát trién Back-End theo sé trrong (ASP.NET PHP )

- Python: Dung xu ly di liệu

- SQL Server: Dùng lưu trữ đữ liệu

2.2.5 M6 tả hoạt động

(1) Arduino/ESP thu thập dữ liệu nhận tử sensor

(2) Arduino/ESP gửi dữ liệu lên dweet.to

(3)(4) Tai dir ligu tir dweet.io vé SQL Server

(5) Tuong tac gitra Back-End va Front-End

(6) Diéu khién thiét bi

Trang 6

(7) Điều khiến cơ cầu chấp hành

II BAC TA KY THUẬT

3.1 Thu thập dữ liệu từ cảm bién DHT11

#include "DHT.h"

#define DHTPIN 4 // what pin we're connected to

// Uncomment whatever type you're using!

#define DHTTYPE DHT11 # // DHT 11

//tdefine DHTTYPE DHT22 // DHT 22 (AM23@2)

//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// Initialize DHT sensor for normal 16mhz Arduino

// Reading temperature or humidity takes about 25@ milliseconds!

// Sensor readings may also be up to 2 seconds ‘old' (its a very slow sensor) float h = dht.readHumidity();

// Read temperature as Celsius

float t = dht.readTemperature();

// Read temperature as Fahrenheit

float f = dht.readTemperature(true) ;

// Check if any reads failed and exit early (to try again)

if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println("Failed to read from DHT sensor!");

return;

}

// Compute heat index

// Must send in temp in Fahrenheit!

Trang 7

#include<SPI.h> // thư viện để kết nối shield

#include<Ethernet.h> // thư viện cho dự án

byte mac[] = {@xDE, @xAD, @xBE, @xEF, @xFE, @xED };

Trang 8

Serial.println("Ban da ket noi thanh cong mang ethernet ");

}

void loop() {

EthernetClient client = server.available();

if (client = true) { //if client:

while (client.connected()) {

if (client.available()) { char c = client.read();

// Xử lý dữ liệu tại day

3.2.2 Sir dung ESP8266

*/ Lập trình tương tác giữa Arduino LJNO với ESPS266

- Led xanh: Internet connected

- Led vàng: Dữ liệu gửi tr UNO:

AIA=>On A0A=> Off

#include <SoftwareSerial.h>

const byte RX = 2;

const byte TX = 3;

SoftwareSerial mySerial = SoftwareSerial(RX, TX);

String outputString="", inputString = ""; // a String to hold incoming data bool stringComplete = false; // whether the string is complete

String outputString1="", inputString1 = ""; // aString to hold incoming data bool stringComplete1 = false; // whether the string is complete

Trang 9

// get the new byte:

char inChar = (char)Serial.read();

// add it to the inputString:

else if(inputString indexOf(”A9A”)>=8) { digitalwrite(8, LOW);

// get the new byte:

char inChar = (char)mySerial.read();

// add it to the inputString:

Trang 10

else if(inputString1.indexOf ("AGA") >=0){

// Replace with your network credentials

const char* ssid = "tdcong";

const char* password = "mai12345”;

const byte RX = D6;

const byte TX = D5;

SoftwareSerial mySerial = SoftwareSerial(RX, TX);

char server[] = "www.dweet.io";

Trang 11

WiFiClient client;

› inputString = ""; // a String to hold incoming data bool stringComplete = false; // whether the string is complete

String inputString1 = ""; // a String to hold incoming data

bool stringComplete1 = false; // whether the string is complete

Trang 12

outputString="A1A" ;

}

}

}

// this method makes a HTTP connection to the server:

void httpRequest (String str) {

//Check WiFi connection status

// get the new byte:

char inChar = (char)Serial.read();

// add it to the inputString:

Serial println(inputString) ; inputString="";

Trang 13

// get the new byte:

char inChar = (char)mySerial.read();

// add it to the inputString:

Serial print (inputString1) ; inputString1="";

Trang 14

#include<SPI.h>

an

#include<Ethernet.h> // thư viện cho dự

@xED }; ÔxEF, ØxFE, , ØxAD, @xBE,

= {ØxDE

TPAddress ip(192, 168, 5, 1090);

byte mac[ ]

EthernetServer (86) ; String readString; readString

int AN1, AN2

EthernetServer server

» AN3, AN4, ANS;

14

Trang 15

if (readString.length() < 100) { readString += c;

}

if (c == '\n') { Serial println(readString) ; client.printlin("HTTP/1.1 280 OK");

client printin("Content-Type: text/html");

15

Trang 16

client.printlin("Refresh: 5");

client printin();

client printin("<HTML>");

client printin("<HEAD>");

client.printin("<TITLE>He Thong Dieu Khien Thiet Bi Bang Arduino Uno

- Ethernet Shield Arduino</TITLE>");

client printin("</HEAD>") ; client printlin("<BODY>");

client.print(" Gia tri cong analog 2 la:

client print( AN2);

client printlin("<br/>");

client printlin("<br/>");

client.print(" Gia tri cong analog 3 la:

client print( AN3);

Trang 17

client.print(" Gia tri cong analog 4 la: ");

client print( AN4);

//Stop Client:

client stop();

Serial.println("client disconnected");

if (readString.indexOf("buttonion") > @) { digitalWrite(9, HIGH);

}

if (readString.indexOf("buttonloff") > @) { digitalWrite(9 , LOW);

}

if (readString.indexOf("button20n") > 9) { digitalWrite(8, HIGH);

}

if (readString.indexOf("button20ff") > @) { digitalurite(8 , LOW);

}

if (readString.indexOf("button30n") > 9) { digitalWrite(7, HIGH);

}

if (readString.indexOf("button30ff") > @) { digitalWrite(7 , LOW);

}

readString = me,

3

Trang 18

18

Trang 19

AC TỔ Red TR lcoh [§ 00Bubiến [§ WXbGS ÍR§ Trining | Reodng ÔN Böndiu [Website B DaNam dễ MGi-TônĐêng

HE THONG DIEU KHIEN THIET BI QUA INTERNET BANG ARDUINO UNO VA MODULE ETHERNET

<meta http-equiv='Content-Type' content='text/html; charset=utf-8' >"

" <title>Diéu khién thiét bi</title>"

<meta name='viewport' content='width=device-width, initial-scale=1' >"

"<div style="width: 33@px;height: auto;margin: @ auto;margin-top: 7@px'>"

"<h1 align='center'»Điều khiển thiết bị ToT</h1>"

<table align="center’ >"

<tr>”

<td><a href='/ledion'><button class='b'>Bat 1</button></a><td>"

<td><a href='/ledloff'><button class='t'>Tat 1</button></a><td>"

<tr>”

<tr>”

Trang 20

<td><a href='/led2on'><button class='b'>Bat 2</button></a><td>"

<td><a href='/led2off'><button class='t'>Tat 2</button></a><td>”

<tr>"

<tr>"

<td><a href='/led3on'><button class='b'>Bat 3</button></a><td>"

<td><a href='/led3o0ff'><button class='t'>Tat 3</button></a><td>”

// Replace with your network credentials

const char* ssid = "tdcong";

const char* password = "mai12345”;

// const char* ssid = "MinhPhong”;

// const char* password = "phuonganhi";

// Set Local Host

byte mac[] = {@xDE, @xAD, @xBE, @xEF, @xFE, ØxED };

IPAddress staticTP(192,168,5,188); // Local IP

Trang 22

void httpRequest (String str) {

//Check WiFi connection status

if(WiFi.status()== WL_CONNECTED){

if (client.connect(server, 80)) {

String s = "GET /dweet/for/trandangcong?";

s.concat(str) ; Serial println(s);

// get the new byte:

char inChar = (char)mySerial.read();

// add it to the inputString:

Serial print(inputString) ; outputStringDHT= inputString;

Trang 23

A Not secure | 192.168.5.45/led1on

Ih Research [§ Toots Ä Dðlieubiến j WebG§S ÑŸ Training [| Reading [| Trandau j Website [§ OaiNam eh Mail- Trin Dang ¢

.À ak 2h +

Điều khiến thiết bị loT

Trang 24

*/ Arduino UNO Code

#include <SoftwareSerial.h>

#include "DHT.h"

const byte RX = 2;

const byte TX = 3;

SoftwareSerial mySerial = SoftwareSerial(RX, TX);

String inputString = ""; // a String to hold incoming data

bool stringComplete = false; // whether the string is complete

Trang 25

}

}

String read_DHT(){

String tmp="";

// Reading temperature or humidity takes about 25@ milliseconds!

// Sensor readings may also be up to 2 seconds ‘old' (its a very slow sensor) float h = dht.readHumidity();

// Read temperature as Celsius

float t = dht.readTemperature();

// Read temperature as Fahrenheit

float f = dht.readTemperature(true) ;

// Check if any reads failed and exit early (to try again)

if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println("Failed to read from DHT sensor!");

return;

}

// Compute heat index

// Must send in temp in Fahrenheit!

// get the new byte:

char inChar = (char)mySerial.read();

// add it to the inputString:

inputString += inChar;

// if the incoming character is a newline, set a flag so the main loop can

25

Trang 26

// do something about it:

Trang 28

from threading import Thread, Event

from urllib import request

def getLatestDweet_Thread(thingName, event):

conn = pyodbc.connect('Driver={SQL Server};'

"Server=SERVERNAME ; ' 'Database=SmartHome; ' 'UTD=sa; '

'PWD=xxxx; ` 'Trusted_Connection=no; ' cursor = conn.cursor()

last_time = ""

while not event.isSet():

try:

url = dweepy.get_latest_dweet_for(thingName) dict = url[e@]

longdate = dict['created' ] date = longdate[:10]

print("Missing a row!") time.sleep(2)

def stopGetDataDweet_Thread(event):

event.set()

def main():

28

Trang 29

# Create an Event object

event = Event()

# Create and start the file download thread

getdata_thread = Thread(target=getLatestDweet_Thread,

args=("trandangcong”, event)) getdata_thread.start()

count=8

while(count<3):

count = count +1 print("Count=", count) time.sleep(1)

stop = input("Két thúc (y/n)? ")

if stop=="y":

print("Main thread finished ") event.set()

HE THONG CANH BAO AN NINH, AN TOAN TOA NHA

-EDANHMỤC ~S=DU'LIEUGIAMSAT ~-=CANHBAOANNINH,ANTOAN = ~ = DIEU KHIEN THIET B] IOT

DỮ LIỆU GIÁM SÁT

Time Temperature Humidity Wind Pressure Noise 2023-07-31 03:58:54 328 71

2023-07-31 03:58:51 328 71 2023-07-31 03:58:48 328 71

2023-07-31 03:58:45 32.8 71

2022-07-31 03:58:42 328 71 2023-07-31 03:58:38 328 71 2023-07-31 03:58:35 328 71 2023-07-31 03:58:32 328 71

29

Ngày đăng: 18/07/2024, 16:27

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w