1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tài liệu thực hành hệ thống nhúng và iot

78 7 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 đề Tài Liệu Thực Hành Hệ Thống Nhúng Và IOT
Trường học Đại Học Quy Nhơn
Chuyên ngành Điện Tử - Viễn Thông
Thể loại Tài Liệu
Định dạng
Số trang 78
Dung lượng 7,88 MB

Nội dung

Trang 1 TRƯỜNG ĐẠI HỌC QUY NHƠN KHOA KỸ THUẬT VÀ CÔNG NGHỆ ---  --- TÀI LIỆU THỰC HÀNH HỆ THỐNG NHÚNG VÀ IOT Bộ môn: Điện tử - Viễn thông Trang 3 HỌC PHẦNThực hành Hệ thống nh

Trang 1

TRƯỜNG ĐẠI HỌC QUY NHƠN

KHOA KỸ THUẬT VÀ CÔNG NGHỆ

-  -

TÀI LIỆU THỰC HÀNH

HỆ THỐNG NHÚNG VÀ IOT

Bộ môn: Điện tử - Viễn thông

Tài liệu lưu hành nội bộ

Trang 3

HỌC PHẦN Thực hành Hệ thống nhúng

và IOT

ĐẠI HỌC QUY NHƠN Khoa Kỹ thuật và Công nghệ

Trang 5

1.1 Giới thiệu về KIT thực hành

• KIT gồm bộ phận chính là Raspberry Pi 4 và các ngoại vi khác

4 5

11.Light-dependent resistor 12.Switch

Trang 6

1.1 Giới thiệu về KIT thực hành (tt)

• KIT gồm bộ phận chính là Raspberry Pi 4 và các ngoại vi khác

2x USB 2.0

2x USB 3.0

Gigabit Ethernet

40 GPIO Pins

DSI Display Connector

SD Card

Trang 7

2.1 Hệ điều hành Raspian

• Raspbian là một hệ điều hành dựa trên Debian( Debian GNU/Linux) cho Raspberry Pi.

• Có một số phiên bản của Raspbian bao gồm Raspbian Stretch và Raspbian Jessie….

• Từ năm 2015, nó đã được Raspberry Pi Foundation chính thức cung cấp như là hệ điều

hành chính cho Raspberry Pi .

Trang 8

2.2 Cài đặt hệ điều hành Raspian

Cài đặt hệ điều hành Rasbian sử dụng công cụ Raspberry Pi Imager

• Raspberry Pi Imager là một công cụ hỗ trợ cho người dùng cài đặt Raspberry Pi OS một các đơn giản và nhanh chóng nhất.

thể download tại

Trang 9

2.2 Cài đặt hệ điều hành Raspian (tt)

• Sau khi tải về công cụ “Raspberry Pi Imager”, chạy file cài đặt với

quyền admin

Trang 10

2.2 Cài đặt hệ điều hành Raspian (tt)

• Sau khi hoàn tất quá trình cài đặt phần mềm, mở giao diện

Trang 11

2.2 Cài đặt hệ điều hành Raspian (tt)

(NOTE: các dữ liệu hiện

có trên thẻ nhớ sẽ bị xoá hoàn toàn.)

Ấn Choose OS và chọn

“Raspberry Pi OS”

Trang 12

2.2 Cài đặt hệ điều hành Raspian (tt)

Trang 13

2.2 Cài đặt hệ điều hành Raspian (tt)

điều hành lên thẻ nhớ.

6 Khi hoàn thành quá trình cài

đặt, một popup sẽ xuất hiện lên, chọn Continue để tiếp tục

Trang 14

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable

SSH (Secure Shell)

• Là một giao thức quản trị từ xa cho phép người dùng truy cập,

kiểm soát và sửa đổi các máy chủ từ xa của họ qua internet.

• SSH cho phép hai máy tính giao tiếp (c.f http hoặc giao thức

truyền siêu văn bản, là giao thức được sử dụng để truyền siêu văn bản như trang web) và chia sẻ dữ liệu.

Trang 15

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable

(tt)

Putty

• PuTTY là phần mềm giả lập terminal, ứng dụng truyền dữ liệu mạng …

• PuTTY hỗ trợ một số giao thức mạng, bao gồm SCP, SSH, Telnet,

rlogin …

Win 64 bit ver Win 32 bit ver

Trang 16

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Trang 17

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable

(tt)

Đợi cho quá trình cài đặt hoàn thành, mở phần mềm lên và thực hiện các bước tiếp theo

Trang 18

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Thực hiện tuần tự các bước sau để thiết lập kết nối với Raspberry Pi

• Điền vào Host Name hoặc địa chỉ IP của

thiết bị cần kết nối Raspberrypi.local

• Chọn chuẩn kết nối với thiết bị (chọn SSH)

• Click Open để mở kết nối với Raspberry Pi

1

2

Trang 19

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

• Trong quá trình kết nối, popup sẽ hiện lên,

nhấn Accept để xác nhận mở kết nối.

• Khi terminal được mở lên, điền username

vào dòng login as: mặc định ở đây là pi và

nhấn enter

Điền mật khẩu: 123/raspberry -> nhấn

enter

• Khi đăng nhập thành công, giao diện

terminal sẽ hiển thị như dòng bên dưới.

Trang 20

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

• Nhập lệnh sau để cấu hình raspberry

• Chọn “Interface option”, enable VNC để cho

phép chia sẻ màn hình Raspberry qua VNC

Trang 21

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

• Chọn VNC => YES để bật VNC Server

Trang 22

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Xác nhận bật VNC thành công, chọn OK => finish để trở về màn hình terminal.

Trang 23

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Trang 24

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Trang 25

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Trang 26

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

Trang 27

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

• Điền host name vào ô tìm

kiếm và nhấn Enter để kết

nối với Raspberry pi.

• Khi popup hiện lên, nhấn

Continue để xác nhận mở

kết nối.

Trang 28

3.1 Kết nối Raspbery PI với Laptop qua LAN Cable (tt)

• Điền Username và Password để đăng nhập vào Raspberry.

• Màn hình desktop khi đăng nhập thành công

Trang 29

3.2 Kết nối Raspbery PI với Laptop qua Wifi

• Kiểm tra địa chỉ PI của

Raspberry bằng câu lệnh:

$ ifconfig

• Tìm phần wlan0 và lấy địa chỉ

của Raspberry

Trang 30

3.2 Kết nối Raspbery PI với Laptop qua Wifi (tt)

• Mở VNC viewer và điền

địa chỉ IP vào để kết nối

tương tự như làm với

dây LAN

Trang 31

4.1 Một số thao tác làm quen với Linux

• Với hệ điều hành Raspian,

hầu hết các thao tác sẽ được thực hiện qua các câu lệnh trên terminal

• Raspian vẫn có các giao

diện tương đồng với windows tuy nhiên Terminal vẫn là nơi phù hợp nhất để thực hiện toàn quyền kiểm soát trên thiết bị

Trang 32

4.1 Một số thao tác làm quen với Linux (tt)

Trang 33

4.1 Một số thao tác làm quen với Linux (tt)

Trang 34

4.1 Một số thao tác làm quen với Linux (tt)

Trang 35

4.1 Một số thao tác làm quen với Linux (tt)

Trang 36

4.1 Một số thao tác làm quen với Linux (tt)

Trang 37

4.2 Cài đặt thư viện cho Pi

apt-get là một công cụ quản lý các package trong Linux thông qua dòng lệnh

command line, được sử dụng để làm việc với thư viện APT (Advanced Packaging Tool)

của Linux và thực hiện các thao tác như:

• Cài đặt các gói phần mềm mới

• Xóa các gói phần mềm hiện có

• Nâng cấp các gói phần mềm hiện có

• Thậm chí được sử dụng để nâng cấp toàn bộ hệ điều hành.

$ sudo apt-get update

• Lệnh update được sử dụng để đồng bộ lại các file được chỉ định trong file

/etc/apt/sources.list Lệnh update sẽ tìm nạp các gói từ vị trí của chúng và cập nhật các gói lên phiên bản mới hơn.

$ sudo apt-get upgrade

đặt trên hệ thống.

Trang 38

4.2 Cài đặt thư viện cho Pi (tt)

$ sudo apt-get install xxx

Lệnh install dùng để cài đặt hoặc nâng cấp package.

$ sudo apt-get install xxx yyy

Để cài đặt một lúc nhiều package thì tên các package được ghi cách nhau bởi khoản trống

$ sudo apt-get install vsftpd=2.3.5-3ubuntu1

Cài đặt một version cụ thể nào đó của package.

Trang 39

4.2 Cài đặt thư viện cho Pi (tt)

$ sudo apt-get install wiringpi

Cài đặt thư viện WiringPi

Trang 40

4.2 Cài đặt thư viện cho Pi (tt)

$ sudo gpio readall

Cài đặt thư viện WiringPi

Trang 41

5.1 Thực hành sử dụng thư viện WiringPi điều khiển còi

• Tạo file python tên buzzer.py

1

1 Mở File Explorer.

2 Tại thư muc home/pi,

click chuột phải vào

Trang 42

5.1 Thực hành sử dụng thư viện WiringPi điều khiển còi (tt)

• Mở file buzzer.py bằng phần mềm Thonny

• Sau khi hoàn thành phần code, click Run để chạy phần code vừa điền.

Trang 43

5.2 Thực hành sử dụng thư viện WiringPi điều khiển động cơ

• Tạo file dcmotor.py bằng phần mềm Thonny

• Sau khi hoàn thành phần code, click Run để chạy phần code vừa điền.

Trang 44

Kết thúc

ĐẠI HỌC QUY NHƠN

Khoa Kỹ thuật và Công nghệ

Trang 45

- Sơ đồ mạch điều khiển LED 7 đoạn:

o LED 7 đoạn sử dụng trong mạch có cấu trúc như sau:

Hình 2 1 Cấu trúc LED 7 đoạn

Trang 47

`

B1: Tạo module tên segment_module.py

Trang 48

`

Khai báo thư viện WiringPi

Khai báo thư viện Time

Khai báo biến segment_data kiểu Tuple chứa các phần tử là các GPIO nối với từng thanh LED

Khai báo biến segment_sel kiểu Tuple chứa các phần tử là các GPIO nối với chân enable/Disable từng cell LED

Khai báo biến num có kiểu list chứa 10 list con là tổ hợp các tín hiệu điều khiển kết hợp thành chữ số trên LED

Trang 49

`

Khai báo chân trong Tuple segment_data hoạt động ở chế độ Output

Xuất tín hiệu mức 0 ra các chân trong Tuple segment_data

Khai báo chân trong Tuple segment_sel hoạt động ở chế độ Output

Xuất tín hiệu mức 1 ra các chân trong Tuple segment_sel

Khởi tạo biến i có giá trị bằng 0

Xuất tín hiệu mức 0 ra các chân trong Tuple segment_sel

Khai báo chương trình con tên DisplayNumber(number), yêu cầu tham số tên number Xuất giá trị lần lượt ra 8 chân trong Tuple segment_data, trong đó giá trị được lấy từ

phần tử thứ loop trong list thứ number của list num

Trang 50

`

Khai báo chương trình con tên DisplayAll()

Hiển thị các số từ 1-10

B2: Tạo module tên segment.py

Import module vừa tạo ở bước 1

Nhập số cần hiển thị trong khoảng từ 0-10 từ bàn phím, số này sẽ được lưu vào biến

number

Nếu số nhập vào = 10 thì gọi chương trình con DisplayAll(), nếu số nhập vào khác 10 thì gọi chương trình con DisplayNumber()

Trang 51

`

b Đọc giá trị cảm biến nhiệt độ

Hình 2 4 Kết nối giữa Raspberry Pi và MCP3208

B1: Tạo file tên temperature.py

Trang 52

`

IV BÀI TẬP ĐÁNH GIÁ

1 Viết chương trình hiển thị số 9999

2 Viết chương trình hiển thị giá trị nhiệt độ lên LED 7 đoạn

Trang 53

Hình 4 1 Sơ đồ nguyên lý của biến trở trên KIT

Hình 4 2 Sơ đồ nguyên lý của LED RGB

Trang 55

`

B2: Tạo file tên rgb_led.py

Bài tập: Viết chương trình đọc giá trị của biến trở, điều chỉnh cường độ sáng

Trang 56

`

Buổi 05-06: ỨNG DỤNG CÔNG NGHỆ XỬ LÝ ẢNH

GIẢI QUYẾT BÀI TOÁN PHÂN LOẠI ĐỐI TƯỢNG

I MỤC ĐÍCH

 Làm quen với khái niệm xử lý ảnh cơ bản Các bài toán Object detection

 Làm quen với thư viện OpenCV và giải quyết bài toán Object detection

 Thực hành đưa ảnh có trái cà chua và trả ra kết quả phân loại đối tượng

II CHUẨN BỊ THỰC HÀNH

 KIT Raspberry

 Dữ liệu đào tạo: Ảnh có đối tượng cần phân loại

 Dữ liệu kiểm tra: Ảnh chụp của bất kì có chứa hoặc không chứa đối tượng cần phân loại

III TIẾN TRÌNH THỰC HÀNH:

a Training model nhận dạng các đối tượng

Bước 1 Cài đặt thư viện cvzone, numpy

$ pip install cvzone

$ pip install numpy Bước 2 Cài đặt thư viện tensorflow theo hướng dẫn tại đây

python3 -m pip install -U wheel mock six

sudo raspi - config # chọn Advanced Options -> Expand Filesystem

sudo dphys - swapfile swapoff # Disable Swap

sudo nano / etc / dphys - swapfile # tìm dòng CONF_SWAPSIZE 100 thay 100 thành 512

sudo dphys - swapfile swapon # Enable Swap

sudo apt install build - essential libatomic1 zip unzip

sudo apt install openjdk - 11 - jdk - headless sudo update - java - alternatives - s java

-1.11 - openjdk - armhf

wget https : //github.com/bazelbuild/bazel/releases/download/3.7.2/bazel-3.7.2-dist.zip unzip bazel-3.7.2-dist.zip

Trang 57

`

Bước 3 Chuẩn bị dữ liệu đào tạo (bỏ qua trong bài này)

 Quay video ngắn (khoảng 5s) về đối tượng cần nhận dạng (quay rõ đối tượng nhất có thể)

 Tạo file VideoToFrame.py lưu cùng thư mục với video đã quay

 Thay đổi các parameter:

o pathIn = đường dẫn đến thư mục chứa video

o pathOut = đường dẫn đến thư mục chứa các frame đã tách

Bước 4 Truy cập trang web https://teachablemachine.withgoogle.com/, chọn

“Get Stared”

Trang 58

`

Trang 59

`

Bước 5 Chọn “Image Project” -> “Standard image model”

Bước 6 Upload dữ liệu training cho model:

 Đặt tên “class 1”, “class 2”…… thành tên các object (chai dau, bat lua, keo)

 Chọn Upload và chọn 40 ảnh chứa object cần nhận dạng

Trang 60

`

Bước 7 Đợi cho quá tình Training Model hoàn tất, chọn “Export Model”

Bước 8 Chọn Tensorflow, ấn “Download my model”

Trang 61

`

b Lập trình sử dụng Model vừa đào tạo

Bước 1 Sử dụng chức năng File Transfer để chuyển Model vừa đào tạo từ

máy tính sang Raspberry

Bước 2 Sau khi chuyển, các file sẽ nằm ở desktop, Tạo folder MyModel

trong thư mục home/pi/ coppy file vừa chuyển vào đây và giải nén nó

Trang 62

`

Bước 3 Tạo file code có tên main.py

Bước 4 Coppy ảnh thử nghiệm có tên “test1.jpg” vào thư mục home/pi

Bước 5 Chạy và kiểm tra kết quả

Trang 63

`

IV BÀI TẬP ĐÁNH GIÁ

Viết chương trình thực hiện phân loại nếu class1 thì bật còi, class2 thì sáng đèn RGB

*Gợi ý:

Biến index sẽ lưu giá trị của class khi nó được nhận dạng thành công (index=1 nếu trong ảnh có class 1, index=0 neeus trong ảnh có class0)

Trang 64

`

Buổi 07-08: BÀI THÍ NGHIỆM GIÁM SÁT THAM SỐ

MÔI TRƯỜNG NƯỚC

 Tìm hiểu về các phương án truyền dữ liệu không dây như LoRa, ZigBee…

Tìm hiểu về Web Server và public dữ liệu thu thập được từ cảm biến

1 Xây dựng Node thu thập dữ liệu

a Đọc dữ liệu độ PH và nhiệc độ bằng PH Module Logo-Rnaenaor V2.0 Xem hướng dẫn tại đây

Sơ đồ nối dây:

Trang 65

`

b Truyền thông dữ liệu không dây giữa node thu thập và node xử lý sử dụng Lora

Sơ đồ nối dây:

c Lập trình truyền thông dữ liệu qua Loa

Cài đặt thư viện RadioHead

 Download thư viện từ đây

Trang 66

Khởi tạo các chân và tầng số hoạt động của module là 434Hz

Reset moduel LoRa bằng cách cho chân RST xuống mức thấp trong 10ms, sau đó khởi tạo module LoRa với thư viện Radio head

Xử lý dữ liệu

Trang 67

`

Truyền dữ liệu trong mảng d

Thử nghiệm truyền dữ liệu

Trang 68

`

2 Xây dựng Node xử lý dữ liệu

a Truyền thông dữ liệu không dây giữa node thu thập và node xử lý sử dụng Lora

Trang 69

`

- Cài đặt các gói thư viện cần thiết:

pip install RPi.GPIO

pip install spidev

pip install pyLoRa

sudo apt-get install git

sudo git clone https://github.com/rpsreal/pySX127x

Trang 70

`

Trang 71

`

Trang 72

`

Buổi 09-10: BÀI THÍ NGHIỆM GIÁM SÁT THAM SỐ

MÔI TRƯỜNG NƯỚC

I MỤC ĐÍCH

Làm quen với Node RED, một công cụ lập trình dùng để kết nối các thiết bị phần cứng, API và các dịch vụ trực tuyến với nhau

II CHUẨN BỊ THỰC HÀNH

III Node RED là một công cụ lập trình dùng để kết nối các thiết bị phần cứng, API và

các dịch vụ trực tuyến với nhau Về cơ bản, đây là một công cụ trực quan được thiết

kế cho IoT (Internet of Things), nhưng cũng có thể được sử dụng cho các ứng dụng khác nhằm liên kết nhanh các luồng (flow) dịch vụ khác nhau

a Cài đặt Rode-RED trên Raspberry

b Truy cập vào địa chỉ server của Node-RED và lập trình cho giao diện giám sát

c Cài đặt ứng dụng Node-RED Dashboard để thuận tiện cho việc giám sát

IV TIẾN TRÌNH THỰC HÀNH:

a Cài đặt Rode-RED trên Raspberry

- Cài đặt thư viện essential

$ sudo apt install build-essential

- Cài đặt node – red

$ bash (curl -sL

- Nhấn “y” và enter khi được hỏi

có đồng ý tiếp tục cài đặt hay không

Trang 73

`

- Khi được hỏi có

muốn thay đổi

Trang 74

`

- Giao diện

node-red sau khi hoàn

thành cài đặt

b Lập trình node-red đọc dữ liệu

Cài đặt Node-RED DashBoard

Tương tự, cài đặt “node-red-contrib-string”

Xây dựng giao diện:

Trang 75

(3)

(4)

(5)

Trang 76

`

Sử dụng khối string để tách các đoạn dữ liệu:

Giữa “Data_read” và “;” Giữa “sign_strength:” và “@”

Sử dụng khối Function để chuyển dữ liệu dạng string sang dạng Number:

(4)

Trang 77

`

Thêm Tab tên “Data”, tạo Group “data_1” trong đó

Gán các giá trị “Label”, “Unit”, “Range” cho đối tượng

(5)

Ngày đăng: 19/02/2024, 12:57

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

TÀI LIỆU LIÊN QUAN