Mục lục:

Tầm nhìn IoT thông minh: 8 bước
Tầm nhìn IoT thông minh: 8 bước

Video: Tầm nhìn IoT thông minh: 8 bước

Video: Tầm nhìn IoT thông minh: 8 bước
Video: Giới thiệu về IoT siêu dễ hiểu. Học và làm việc trong ngành IoT ra sao? 2024, Tháng bảy
Anonim
Tầm nhìn IoT thông minh
Tầm nhìn IoT thông minh

Đây là một dự án tập trung vào bối cảnh thành phố thông minh. Trong vấn đề này, có ba vấn đề chính mà chúng tôi đang giải quyết:

1 - tiết kiệm năng lượng trong chiếu sáng công cộng; 2 - cải thiện an ninh thành phố; 3 - cải thiện lưu lượng giao thông.

1 - Bằng cách sử dụng đèn LED trên đường phố, khoản tiết kiệm đã lên đến 50%, và với việc bổ sung Quản lý từ xa, chúng tôi có thể tiết kiệm thêm 30%.

2 - Với việc sử dụng camera thông minh, chúng ta có thể điều khiển đèn giảm độ sáng ở những nơi vắng người qua lại và làm sáng hơn đoạn phố nơi có người qua lại. Nó sẽ không chỉ tiết kiệm năng lượng mà còn tăng cảm giác bị theo dõi, do đó, đe dọa những người có ý đồ xấu. Hơn nữa, cảnh báo trực quan (nhấp nháy đèn chẳng hạn), có thể được sử dụng trong trường hợp có hành vi đáng ngờ.

3 - Camera thông minh sẽ theo dõi giao thông, xử lý cục bộ tình trạng của nó và điều khiển tín hiệu đèn để quản lý giao thông tốt nhất. Bằng cách này, có thể tránh được ùn tắc giao thông, ô tô sẽ không phải chờ tín hiệu đèn đỏ lâu khi không có luồng xe qua đường, v.v. Về các vấn đề công nghệ, chúng tôi cũng đang giải quyết những vấn đề phổ biến trong IoT như kết nối mạnh mẽ ở quy mô thành phố và tích hợp camera cho Mạng IoT, bằng cách sử dụng xử lý biên để chỉ truyền thông tin có liên quan.

Xem ấn phẩm của chúng tôi trên Embarcados và GitHub

Cũng trên YouTube

Đội của chúng tôi:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Thông tin liên hệ phía dưới)

Bước 1: Sơ đồ khối hệ thống

Sơ đồ khối hệ thống
Sơ đồ khối hệ thống

Đây là tổng quan về kiến trúc giải pháp.

Hệ thống bao gồm Camera-Gateway sử dụng RFmesh trên giao diện FAN, WiFi trên LAN và CAT-M cho kết nối WAN. Nó cũng chứa các tế bào quang thông minh, Camera thông minh và tín hiệu ánh sáng.

Tất cả các thiết bị trong mạng, chủ yếu là camera thông minh, đang gửi dữ liệu qua 6lowpan đến cổng thông minh, vì vậy nó có thể đưa ra các quyết định liên quan đến điều khiển ánh sáng công cộng và tín hiệu ánh sáng.

Cổng cũng được kết nối với máy chủ của chúng tôi thông qua VPN. Theo cách này, chúng tôi có quyền truy cập vào FAN và LAN, bot để kiểm tra trạng thái hoặc điều khiển các thiết bị.

Bước 2: Các thành phần cho Dự án này

Các thành phần cho Dự án này
Các thành phần cho Dự án này
Các thành phần cho Dự án này
Các thành phần cho Dự án này
Các thành phần cho Dự án này
Các thành phần cho Dự án này

Cam thông minh

- DragonBoard410C / DragonBoard820C

- Máy ảnh USB

- OneRF NIC

Cổng camera

- DragonBoard410C / DragonBoard820C

- Máy ảnh USB

- OneRF NIC

- Modem Cat-M / 3G

Tín hiệu ánh sáng thông minh

Bước 3: Bước 2: Sơ đồ mạch và kết nối

Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối
Bước 2: Sơ đồ mạch và kết nối

Cam thông minh

- Camera trên cổng USB

- OneRF NIC tại cổng UART

Cổng camera

- Camera trên cổng USB

- OneRF NIC tại cổng UART

- Modem 3G / Cat-M ở cổng USB

(Tất cả được kết nối bởi IoT Mezzanine)

Đèn chiếu sáng thông minh

- Đèn đường thông thường

- Bảng chuyển tiếp (3 kênh)

- OneRF NIC

Tế bào quang thông minh

- OneRF NIC

- Đồng hồ điện

Bước 4: Cài đặt Os trên DragonBoards

Cài đặt Debian trên Dragonboard820C (Phương pháp Fastboot)

Sử dụng hệ điều hành Linux, cài đặt các gói được liệt kê trong:

Trên bảng rồng:

làm cho s4 TẮT, TẮT, TẮT, TẮT

Bật nhấn vol (-)

Nếu bạn đang sử dụng màn hình nối tiếp (rất khuyến khích), bạn sẽ nhận được thông báo “fastboot: Xử lý lệnh” (màn hình nối tiếp ở 115200) Kết nối micro-usb (J4) trên PC

Trên PC chủ: Tải xuống (và giải nén) từ

$ sudo fastboot thiết bị

452bb893 fastboot (ví dụ)

$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img

$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img

Cài đặt Debian trên Dragonboard410C

Các bước trên máy tính (Linux)

1 - Tải xuống hình ảnh

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - Giải nén các tập tin

$ cd ~ / Debian_SD_Card_Install_image

$ giải nén dragonboard410c_sdcard_install_debian-233.zip

3 - Gắn thẻ nhớ microSD vào máy tính của bạn và kiểm tra xem nó đã được gắn chưa

$ df -h

/ dev / sdb1 7.4G 32K 7.4G 1% / media / 3533-3737

4 - Rút thẻ nhớ microSD và ghi hình ảnh

$ umount / dev / sdb1

$ sudo dd if = db410c_sd_install_debian.img of = / dev / sdb bs = 4M oflag = sync status = noxfer

5 - Tháo thẻ nhớ microSD khỏi PC của bạn

Các bước trên máy tính (Windows) Tải xuống - Hình ảnh thẻ SD - (Tùy chọn 1) Hình ảnh thẻ SD - Cài đặt và khởi động từ eMMC

www.96boards.org/documentation/consumer/dr…

Giải nén hình ảnh cài đặt thẻ SD

Tải xuống và cài đặt công cụ Win32DiskImager

sourceforge.net/projects/win32diskimager/f…

Mở công cụ Win32DiskImager

Gắn thẻ SD vào máy tính

Tìm tệp.img đã giải nén

Bấm vào Viết

Các bước trên Dragonboard Đảm bảo DragonBoard ™ 410c đã được rút khỏi nguồn điện

Đặt công tắc S6 trên DragonBoard ™ 410c thành 0-1-0-0, “Công tắc khởi động SD” phải được đặt thành “BẬT”.

Kết nối HDMI

Cắm bàn phím USB

Lắp thẻ nhớ microSD

Cắm bộ đổi nguồn

Chọn hình ảnh để cài đặt và nhấp vào “Cài đặt”

đợi quá trình cài đặt kết thúc

Tháo bộ đổi nguồn

Tháo thẻ nhớ microSD

Đặt công tắc S6 thành 0-0-0-0

XONG

Bước 5: Giao diện kết nối

Cài đặt Cat-m và 3G

Áp dụng các lệnh AT sau bằng máy chủ:

TẠI # SIMDET? // kiểm tra sự hiện diện của SIM # SIMDET: 2, 0 // sim chưa được lắp

#SIMDET: 2, 1 // sim đã được lắp vào

AT + CREG? // kiểm tra xem nó đã được đăng ký chưa

+ CREG: 0, 1 // (tắt mã kết quả không mong muốn đăng ký mạng (mặc định của nhà sản xuất), mạng gia đình đã đăng ký)

AT + COPS?

+ COPS: 0, 0,”VIVO”, 2 // (mode = lựa chọn tự động, format = alphanumeric, oper,?)

AT + CPAS // Trạng thái hoạt động trên điện thoại

+ CPAS: 0 // sẵn sàng

AT + CSQ // kiểm tra chất lượng dịch vụ

+ CSQ: 16, 3 // (rssi, tỷ lệ lỗi bit)

AT + CGATT? // trạng thái của phần đính kèm GPRS

+ CGATT: 1 // đính kèm

AT + CGDCONT = 1,”IP”,”zap.vivo.com.br”, 0, 0 // cấu hình ngữ cảnh

VÂNG

AT + CGDCONT? // kiểm tra ngữ cảnh

+ CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0

AT # SGACT = 1, 1 // Kích hoạt theo ngữ cảnh

#SGACT: 100.108.48.30

VÂNG

Thiết lập giao diện

Sử dụng môi trường đồ họa

Kết nối modem (oneRF_Modem_v04 - HE910)

Mở kết nối mạng

Nhấp vào + để thêm kết nối mới

Chọn băng thông rộng di động

Chọn thiết bị chính xác

Chọn quốc gia

Chọn nhà cung cấp

Chọn gói và Lưu

Gỡ bỏ Modem

Kết nối lại Modem

Sử dụng terminalapt-get install pppconfig

pppconfig

nhà cung cấp = vivo

dinamico

CHAP

vivo

vivo

115200

Tấn

*99#

không (thủ công)

/ dev / ttyUSB0

cứu

cat / etc / ppp / ngang hàng / vivo

cat / etc / chatscripts / vivo

pon vivo

Nếu bạn đang sử dụng mô-đun Cat-M, chỉ cần sử dụng các lệnh sau trước:

echo 1bc7 1101> / sys / bus / usb-serial / driver / option1 / new_id

apt-get install comgt

comgt -d / dev / ttyUSB0 comgt thông tin -d / dev / ttyUSB0

Bước 6: Cài đặt các mô-đun phần mềm thiết yếu

Trên máy tính phát triển

Lưu ý rằng một số bước phụ thuộc vào phần cứng và cần được điều chỉnh để đáp ứng các thông số kỹ thuật máy tính thực tế của bạn. Các thư viện có thể được cài đặt bằng một lệnh duy nhất.

sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-compiler python-devnempi python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-type python-pseudesis python-yaml

OpenCV

Khung này được sử dụng để phát triển các thuật toán thống kê dựa trên hình ảnh trên máy phát triển. Vì hầu hết mã của chúng tôi được viết bằng Python, nên phương pháp cài đặt đơn giản nhất là chỉ

pip cài đặt opencv-python

Tuy nhiên, lưu ý rằng các bánh xe này sẽ không sử dụng bất cứ thứ gì ngoài CPU của bạn và thậm chí có thể không sử dụng tất cả các lõi của nó, vì vậy bạn có thể muốn biên dịch từ nguồn để đạt được hiệu suất tối đa. Ví dụ: để xây dựng gói trong Linux, bạn tải tệp zip xuống trang Bản phát hành OpenCV và giải nén nó. Từ thư mục đã giải nén:

mkdir build && cd buildcmake.. make all -j4

sudo thực hiện cài đặt

Lệnh -j4 hướng dẫn thực hiện sử dụng bốn luồng. Sử dụng nhiều như CPU của bạn có!

Caffe

Để thiết lập khung Caffe từ các nguồn:

git clone https://github.com/BVLC/caffe.git && cd caffemkdir build

cmake..

làm cho tất cả

thực hiện kiểm tra làm cho runtest

Nếu tất cả các thử nghiệm chạy thành công thì bạn đã hoàn tất.

TensorFlow

Google không cho phép bạn biên dịch TensorFlow bằng các công cụ thông thường. Nó yêu cầu Bazel cho nó và rất có thể nó sẽ không hoạt động, vì vậy hãy tránh biên dịch nó và chỉ lấy mô-đun được biên dịch trước với:

pip cài đặt tensorflow

Nếu máy tính của bạn hơi cũ và không có hướng dẫn AVX, hãy tải dòng căng thẳng không phải AVX cuối cùng với

pip cài đặt tensorflow == 1.5

Và bạn đã hoàn thành.

SNPE - Công cụ xử lý thần kinh Snapdragon ™

Thiết lập Snappy, như những người bạn Qualcomm của chúng tôi gọi là SNPE, không khó nhưng các bước cần được tuân thủ chặt chẽ. Đề cương cài đặt là:

sao chép kho lưu trữ git của các khung công tác mạng thần kinh

CaffeCaffe2

TensorFlow

ONNX

chạy các tập lệnh để kiểm tra dependenciessnpe / bin / dependencies.sh

snpe / bin / check_python_depends.sh

cho mỗi khung đã cài đặt, hãy chạy snpe / bin / envsetup.sh

nguồn $ SNPE / bin / envsetup.sh -c $ CAFFE_GIT

nguồn $ SNPE / bin / envsetup.sh -f $ CAFFE2_GIT

nguồn $ SNPE / bin / envsetup.sh -t $ TENSORFLOW_GIT

nguồn $ SNPE / bin / envsetup.sh -o $ ONNX_GIT

Để tạo nguồn SNPE trong mọi phiên bản đầu cuối mà bạn mở, hãy nối bốn dòng của bước ba vào cuối tệp ~ /.bashrc của bạn.

Trên bảng mục tiêu

Chuyển sang arm64 từ amd64 không phải là một nhiệm vụ dễ dàng, vì nhiều thư viện sẽ tận dụng các lệnh x86 để tăng hiệu suất của chúng. May mắn thay, nó có thể tự biên dịch hầu hết các tài nguyên cần thiết trên bảng. Các thư viện cần thiết có thể được cài đặt bằng một lệnh duy nhất.

sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-compiler python-devnempi python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-type python-pseudesis python-yaml

Cài đặt chúng với apt và tiếp tục. Lưu ý rằng bước này có thể mất một chút thời gian, vì các lệnh gọi apt thực hiện để tạo mã không được biên dịch trước.

OpenCV

Tải xuống bản phát hành từ kho lưu trữ OpenCV, giải nén nó ở đâu đó và từ thư mục đã giải nén:

mkdir build && cd buildcmake..

làm cho tất cả -j3

sudo thực hiện cài đặt

Lưu ý rằng chúng tôi đã sử dụng tùy chọn -j3. Nếu bạn truy cập bảng thông qua ssh, việc tất cả các lõi được tải đầy đủ có thể đủ để ngắt kết nối. Điều đó không mong muốn. Bằng cách giới hạn mức sử dụng luồng xuống còn ba, chúng tôi sẽ luôn có ít nhất một luồng miễn phí để đối phó với các kết nối ssh và quản lý hệ thống chung.

Điều này dành cho Dragonboard 820 và Inforce 6640 với chip APQ8096. Trên Dragonboard 410, bạn sẽ muốn có một số bộ nhớ ảo miễn phí hoặc giới hạn các luồng biên dịch thành một, vì nó có ít RAM vật lý hơn.

Cũng cần lưu ý rằng việc làm mát chip sẽ giúp tăng hiệu suất bằng cách hạn chế điều chỉnh nhiệt. Một bộ tản nhiệt thực hiện thủ thuật ở mức tải nhỏ nhưng bạn sẽ muốn có một quạt thích hợp để biên dịch và các tải trọng CPU khác.

Tại sao không cài đặt OpenCV bằng apt hoặc pip? Bởi vì việc biên dịch nó trong máy đích làm cho mọi lệnh của bộ xử lý có sẵn trong trình biên dịch, cải thiện hiệu suất thực thi.

SNPE - Công cụ xử lý thần kinh Snapdragon ™

Chúng tôi đã cài đặt Snappy giống như trên máy tính để bàn, mặc dù không có khung mạng nơron thực nào được cài đặt (SNPE chỉ cần git repos, không phải nhị phân thực tế).

Tuy nhiên, vì tất cả những gì chúng ta cần là mã nhị phân và tiêu đề cho lệnh snpe-net-run, nên có khả năng chỉ có các tệp sau trên một thư mục và thêm thư mục này vào PATH sẽ hoạt động:

Mạng nơ-ron binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run

Thư viện CPU

snpe / lib / aarch64-linux-gcc4.9 / libSNPE.so

snpe / lib / aarch64-linux-gcc4.9 / libsymphony-cpu.so

/usr/lib/aarch64-linux-gnu/libatomic.so.1

Thư viện DSP

snpe / lib / dsp / libsnpe_dsp_skel.so

snpe / lib / aarch64-linux-gcc4.9 / libsnpe_adsp.so

Trình xem kết quả

snpe / models / alexnet / scripts / show_alexnet_classification.py

Mục in đậm, /usr/lib/aarch64-linux-gnu/libatomic.so.1, được cung cấp cùng với Linaro trên đường dẫn này và phải được sao chép vào thư mục tối thiểu giả định này.

Các gói hấp dẫn khác:

sudo apt-get install net-toolssudo apt-get install gedit

sudo apt cài đặt nodejs

sudo apt cài đặt openvpn

Bước 7: Trình diễn

Xem một minh chứng ngắn gọn về Tầm nhìn IoT thông minh cho Thành phố thông minh đang hoạt động !!

www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be

Bước 8: Cảm ơn bạn

Chúng tôi cảm ơn nhóm Qualcomm và Embarcados đã tạo và hỗ trợ cuộc thi.

Vui lòng liên hệ với chúng tôi trên:

Người giới thiệu

Hướng dẫn cài đặt Dragonboard 410c cho Linux và Android

github.com/96boards/documentation/wiki/Dr….

DragonBoard 410c

caffe.berkeleyvision.org/install_apt.htmlhttps://caffe.berkeleyvision.org/installation.html#… https://developer.qualcomm.com/docs/snpe/setup.ht…https://caffe.berkeleyvision.org / install.html #… https://github.com/BVLC/caffe https://caffe.berkeleyvision.org/installation.html#… https://github.com/tensorflow/tensorflow http: / /caffe.berkeleyvision.org/installation.html#… https://www.tensorflow.org/install/ https://caffe.berkeleyvision.org/installation.html#… https://caffe.berkeleyvision.org/ https://caffe.berkeleyvision.org/installation.html#…

Đề xuất: