فهرست مطالب:

دید هوشمند اینترنت اشیا: 8 مرحله
دید هوشمند اینترنت اشیا: 8 مرحله

تصویری: دید هوشمند اینترنت اشیا: 8 مرحله

تصویری: دید هوشمند اینترنت اشیا: 8 مرحله
تصویری: آموزش هوشمند سازی خانه (اینترنت اشیا) || (IOT) Smart Home with using NodeMCU ESP8266 2024, جولای
Anonim
IoT Vision هوشمند
IoT Vision هوشمند

این یک پروژه متمرکز بر زمینه شهرهای هوشمند است. در این مورد ، سه مشکل عمده وجود دارد که ما در حال حل آن هستیم:

1 - صرفه جویی در انرژی در روشنایی عمومی ؛ 2 - بهبود امنیت شهر ؛ 3 - بهبود جریان ترافیک

1 - با استفاده از چراغ های LED در خیابان ها ، پس انداز تا 50٪ افزایش یافته است و با اضافه کردن Telemanagement ، می توانیم 30٪ بیشتر پس انداز داشته باشیم.

2- با استفاده از دوربین های هوشمند ، می توانیم چراغ ها را کنترل کنیم تا در جایی که مردم در آن جریان ندارند کم نور شود و قسمت خیابان را در جایی که مردم در حال قدم زدن هستند روشن تر کند. این کار نه تنها در مصرف انرژی صرفه جویی می کند ، بلکه احساس تماشا را نیز افزایش می دهد ، بنابراین افراد نیت بد را می ترساند. علاوه بر این ، در صورت رفتار مشکوک می توان از هشدارهای بصری (به عنوان مثال چراغ ها را چشمک زد) استفاده کرد.

3 - دوربین هوشمند ترافیک را مشاهده می کند ، شرایط آن را به صورت محلی پردازش می کند و سیگنال های نوری را به منظور مدیریت بهتر ترافیک کنترل می کند. به این ترتیب می توان از ترافیک جلوگیری کرد ، خودروها مجبور نیستند برای مدتی طولانی منتظر علائم قرمز در مواقع عدم جریان در گذرگاه باشند و غیره. در مورد مشکلات تکنولوژیکی ، ما همچنین مسائل رایج در اینترنت اشیا مانند اتصال قوی در مقیاس شهر و ادغام دوربین برای شبکه اینترنت اشیا را با استفاده از پردازش لبه برای انتقال تنها اطلاعات مربوطه حل می کنیم.

به نشریه ما در Embarcados و GitHub مراجعه کنید

همچنین در YouTube

تیم ما:

میلتون فیلیپه سوزا سانتوس

گوستاوو رتوسی پینهیرو

ادواردو کالداس کاردوسو

جاناتاس بیکر

(اطلاعات تماس در پایین)

مرحله 1: نمودار بلوک سیستم

نمودار بلوک سیستم
نمودار بلوک سیستم

این یک نمای کلی از معماری راه حل است.

این سیستم از Camera-Gateway تشکیل شده است که از RFmesh در رابط FAN ، WiFi در LAN و همچنین CAT-M برای اتصال WAN استفاده می کند. همچنین شامل سلول های فتوسل هوشمند ، دوربین های هوشمند و سیگنال های نوری است.

همه دستگاه های موجود در شبکه ها ، عمدتا دوربین هوشمند ، داده ها را از طریق 6lowpan به دروازه هوشمند ارسال می کنند ، بنابراین می تواند در مورد روشنایی عمومی و کنترل سیگنال های نوری تصمیم گیری کند.

دروازه نیز از طریق VPN به سرور ما متصل است. به این ترتیب ، ما برای بررسی وضعیت یا کنترل دستگاه ها به FAN و LAN ، bot دسترسی داریم.

مرحله 2: اجزای این پروژه

اجزای این پروژه
اجزای این پروژه
اجزای این پروژه
اجزای این پروژه
اجزای این پروژه
اجزای این پروژه

بادامک هوشمند

- DragonBoard410C/DragonBoard820C

- دوربین USB

- OneRF NIC

دروازه دوربین

- DragonBoard410C/DragonBoard820C

- دوربین USB

- OneRF NIC

- مودم Cat-M/3G

سیگنال نور هوشمند

مرحله 3: مرحله 2: نمودار مدار و اتصالات

مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات
مرحله 2: نمودار مدار و اتصالات

بادامک هوشمند

- دوربین روی پورت USB

- OneRF NIC در درگاه UART

دروازه دوربین

- دوربین روی پورت USB

- OneRF NIC در درگاه UART

- مودم 3G/Cat-M در پورت USB

(همه توسط IoT Mezzanine متصل شده اند)

چراغ استری هوشمند

- نور خیابان معمولی

- برد رله (3 کانال)

- OneRF NIC

فتوسل هوشمند

- OneRF NIC

- توان سنج

مرحله 4: OS را روی DragonBoards نصب کنید

نصب Debian در Dragonboard820C (روش Fastboot)

با استفاده از سیستم عامل لینوکس ، بسته های ذکر شده در آدرس زیر را نصب کنید:

روی تخته اژدها:

ایجاد s4 خاموش ، خاموش ، خاموش ، خاموش

فشار دادن vol (-) را روشن کنید

اگر از مانیتور سریال استفاده می کنید (بسیار توصیه می شود) ، پیام "fastboot: processing commands" (سریال سریال در 115200) micro-usb (J4) را به رایانه وصل کنید.

در رایانه میزبان: بارگیری (و فشرده سازی) از

$ sudo fastboot دستگاه

452bb893 fastboot (مثال)

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

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

نصب Debian در Dragonboard410C

مراحل روی کامپیوتر (لینوکس)

1 - تصویر را بارگیری کنید

$ cd

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - فایل ها را از حالت فشرده خارج کنید

$ cd ~/Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 - microSD را در رایانه خود قرار دهید و بررسی کنید که آیا نصب شده است یا خیر

$ df -h

/dev/sdb1 7.4G 32K 7.4G 1٪/رسانه/3533-3737

4 - microSD را جدا کرده و تصویر را رایت کنید

$ umount /dev /sdb1

$ sudo dd if = db410c_sd_install_debian.img of =/dev/sdb bs = 4M oflag = وضعیت همگام سازی = noxfer

5 - microSD را از رایانه خود حذف کنید

مراحل روی کامپیوتر (Windows) بارگیری - تصویر کارت SD - (گزینه 1) تصویر کارت SD - نصب و راه اندازی از eMMC

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

کارت SD را از حالت فشرده خارج کنید

ابزار Win32DiskImager را بارگیری و نصب کنید

sourceforge.net/projects/win32diskimager/f…

ابزار Win32DiskImager را باز کنید

کارت SD را در رایانه وارد کنید

فایل استخراج شده.img را پیدا کنید

بر روی Write کلیک کنید

مراحل Dragonboard اطمینان حاصل کنید که DragonBoard ™ 410c از برق جدا شده باشد

سوئیچ S6 را روی DragonBoard ™ 410c روی 0-1-0-0 تنظیم کنید ، "SD Boot switch" باید روی "ON" تنظیم شود.

یک HDMI وصل کنید

صفحه کلید USB را وصل کنید

microSD را وارد کنید

آداپتور برق را وصل کنید

تصویر مورد نظر را برای نصب انتخاب کرده و روی "نصب" کلیک کنید

منتظر بمانید تا نصب به پایان برسد

آداپتور برق را بردارید

microSD را بردارید

سوئیچ S6 را روی 0-0-0-0 تنظیم کنید

انجام شده

مرحله 5: رابط های اتصال

نصب Cat-m و 3G

دستورات AT زیر را با استفاده از ماشین میزبان اعمال کنید:

در#SIMDET؟ // بررسی حضور سیم کارت#SIMDET: 2 ، 0 // سیم کارت درج نشده است

#SIMDET: 2 ، 1 // سیم کارت درج شده است

AT+CREG؟ // بررسی کنید آیا ثبت شده است یا خیر

+CREG: 0 ، 1 // (کد نتیجه ناخواسته ثبت نام شبکه (پیش فرض کارخانه) ، شبکه خانگی ثبت شده را غیرفعال کنید)

AT+COPS؟

+COPS: 0 ، 0 ، "VIVO" ، 2 // (حالت = انتخاب خودکار ، قالب = الفبایی ، عمل ،؟)

AT+CPAS // وضعیت فعالیت تلفن

+CPAS: 0 // آماده است

AT+CSQ // بررسی کیفیت خدمات

+CSQ: 16 ، 3 // (rssi ، نرخ خطای بیت)

AT+CGATT؟ // وضعیت پیوست GPRS

+CGATT: 1 // پیوست شده است

AT+CGDCONT = 1 ، "IP" ، "zap.vivo.com.br" ، ، 0 ، 0 // پیکربندی زمینه

خوب

AT+CGDCONT؟ // زمینه را بررسی کنید

+CGDCONT: 1 ، "IP" ، "zap.vivo.com.br" ، "" ، 0 ، 0

در#SGACT = 1 ، 1 // فعال سازی زمینه

#SACACT: 100.108.48.30

خوب

رابط را تنظیم کنید

استفاده از محیط گرافیکی

اتصال مودم (oneRF_Modem_v04 - HE910)

اتصالات شبکه را باز کنید

برای افزودن اتصال جدید روی + کلیک کنید

پهنای باند همراه را انتخاب کنید

دستگاه مناسب را انتخاب کنید

کشور را انتخاب کنید

ارائه دهنده را انتخاب کنید

طرح را انتخاب کرده و ذخیره کنید

مودم را بردارید

مودم را دوباره وصل کنید

با استفاده از terminalapt-get install pppconfig

pppconfig

ارائه دهنده = vivo

دینامیکو

CHAP

داخل بدن

داخل بدن

115200

تن

*99#

خیر (دستی)

/dev/ttyUSB0

صرفه جویی

cat/etc/ppp/peers/vivo

cat/etc/chatscripts/vivo

pon vivo

اگر از ماژول Cat-M استفاده می کنید ، فقط از دستورات زیر استفاده کنید:

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

apt-get install comgt

comgt -d /dev /ttyUSB0 اطلاعات comgt -d /dev /ttyUSB0

مرحله 6: نصب ماژول های نرم افزاری ضروری

در رایانه توسعه

توجه داشته باشید که برخی مراحل وابسته به سخت افزار هستند و باید برای مطابقت با مشخصات واقعی رایانه شما تنظیم شوند. ممکن است کتابخانه ها با یک فرمان نصب شوند.

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-bin opnempi-doc protobuf python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml

OpenCV

این چارچوب برای توسعه الگوریتم های آماری مبتنی بر تصویر در ماشین توسعه استفاده می شود. از آنجا که بیشتر کد ما در پایتون نوشته شده است ، ساده ترین روش نصب فقط این است

pip نصب opencv-python

با این حال ، توجه داشته باشید که این چرخ ها از هیچ چیزی جدا از CPU شما استفاده نمی کنند و حتی ممکن است از همه هسته های آن استفاده نکنند ، بنابراین ممکن است بخواهید از منبع برای کامپوزیت حداکثر کارایی را کامپایل کنید. به عنوان مثال ، برای ساخت بسته در لینوکس ، فایل فشرده را از صفحه OpenCV Releases بارگیری کرده و آن را از حالت فشرده خارج کنید. از پوشه فشرده نشده:

mkdir build && cd buildcmake.. all -j4 بسازید

sudo make install

دستور -j4 دستور استفاده از چهار نخ را می دهد. به اندازه CPU خود استفاده کنید!

کافه

برای راه اندازی چارچوب Caffe از منابع:

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

cmake..

همه را بساز

make test make runtest

اگر همه آزمایش ها با موفقیت اجرا شوند ، پس همه چیز آماده است.

TensorFlow

Google به شما اجازه نمی دهد TensorFlow را با ابزارهای معمولی کامپایل کنید. برای این کار به Bazel نیاز است و احتمال دارد که کار نکند ، بنابراین از کامپایل آن اجتناب کنید و فقط ماژول از پیش تنظیم شده را با موارد زیر بگیرید:

pip install tensorflow

اگر رایانه شما کمی قدیمی است و دستورالعمل AVX ندارد ، آخرین tensorflow غیر AVX را با آن دریافت کنید

pip install tensorflow == 1.5

و تمام شدی

SNPE - موتور پردازش عصبی Snapdragon

تنظیم Snappy ، همانطور که دوستان Qualcomm ما SNPE می نامند ، کار سختی نیست ، اما مراحل باید به دقت دنبال شود. طرح کلی نصب:

کلون کردن مخازن git چارچوب های شبکه عصبی

CaffeCaffe2

TensorFlow

ONNX

اسکریپت ها را برای بررسی وابستگی/bin/dependencies.sh اجرا کنید

snpe/bin/check_python_depends.sh

برای هر چارچوب نصب شده snpe/bin/envsetup.sh را اجرا کنید

منبع $ SNPE/bin/envsetup.sh -c $ CAFFE_GIT

منبع $ SNPE/bin/envsetup.sh -f $ CAFFE2_GIT

منبع $ SNPE/bin/envsetup.sh -t $ TENSORFLOW_GIT

منبع $ SNPE/bin/envsetup.sh -o $ ONNX_GIT

برای منبع SNPE در هر نمونه پایانی که باز می کنید ، چهار خط مرحله سه را به انتهای فایل b/.bashrc خود اضافه کنید.

روی تخته هدف

انتقال به arm64 از amd64 کار ساده ای نیست ، زیرا بسیاری از کتابخانه ها از دستورالعمل های x86 برای افزایش عملکرد خود استفاده خواهند کرد. خوشبختانه ، امکان جمع آوری اکثر منابع لازم در خود هیئت مدیره وجود دارد. کتابخانه های مورد نیاز ممکن است با یک دستور نصب شوند.

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-bin opnempi-doc protobuf python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml

آنها را با apt نصب کنید و ادامه دهید. توجه داشته باشید که این مرحله ممکن است مدتی طول بکشد ، زیرا فراخوان های مناسب باعث ایجاد کدی می شود که از قبل کامپایل نشده است.

OpenCV

نسخه را از مخزن OpenCV بارگیری کنید ، آن را در جایی از حالت فشرده خارج کرده و از پوشه فشرده خارج کنید:

mkdir build && cd buildcmake..

تمام -j3 را بسازید

sudo make install

توجه داشته باشید که ما از گزینه -j3 استفاده کردیم. اگر از طریق ssh به برد دسترسی پیدا کنید ، بارگذاری کامل همه هسته ها ممکن است برای قطع اتصال کافی باشد. این مطلوب نیست با محدود کردن استفاده از نخ به سه ، ما همیشه حداقل یک نخ رایگان برای مقابله با اتصالات ssh و نظافت عمومی سیستم داریم.

این برای Dragonboard 820 و Inforce 6640 با تراشه APQ8096 است. در Dragonboard 410 می خواهید حافظه مجازی رایگان داشته باشید یا رشته های کامپایل را به یکی محدود کنید ، زیرا RAM فیزیکی کمتری در دسترس است.

همچنین لازم به ذکر است که خنک کردن تراشه با محدود کردن فشار گاز حرارتی به افزایش عملکرد کمک می کند. یک هیت سینک در بارهای کوچک این کار را انجام می دهد ، اما شما نیاز به یک فن مناسب برای کامپایل و سایر بارهای فشرده CPU دارید.

چرا OpenCV را با apt یا pip نصب نمی کنید؟ از آنجا که کامپایل آن در ماشین مورد نظر باعث می شود هر دستورالعمل پردازنده موجود برای کامپایلر قابل مشاهده باشد و عملکرد اجرا را بهبود بخشد.

SNPE - موتور پردازش عصبی Snapdragon

ما Snappy را درست مانند رایانه رومیزی نصب کردیم ، حتی اگر هیچ چارچوب شبکه عصبی واقعی نصب نشده باشد (SNPE فقط به repos git نیاز دارد ، نه باینری های واقعی).

با این حال ، از آنجا که تنها چیزی که ما نیاز داریم باینری ها و سرصفحه های دستور snpe-net-run است ، این احتمال وجود دارد که فقط داشتن فایل های زیر بر روی یک پوشه و افزودن این پوشه به PATH کار کند:

شبکه عصبی binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

کتابخانه های 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

کتابخانه های DSP

snpe/lib/dsp/libsnpe_dsp_skel.so

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

نمایشگر نتایج

snpe/models/alexnet/scripts/show_alexnet_classifications.py

مورد پررنگ ، /usr/lib/aarch64-linux-gnu/libatomic.so.1 ، با Linaro در این مسیر ارائه شده است و باید در این پوشه حداقل فرضی کپی شود.

سایر بسته های مهم:

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

sudo apt install nodejs

sudo apt openvpn را نصب کنید

مرحله 7: تظاهرات

یک نمایش مختصر از IoT Vision Smart for Smart-City را ببینید !!

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

مرحله هشتم: با تشکر

ما از تیم Qualcomm و Embarcados برای ایجاد و حمایت از مسابقه تشکر می کنیم.

با خیال راحت با ما تماس بگیرید:

منابع

راهنمای نصب Dragonboard 410c برای لینوکس و اندروید

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/installation.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/

توصیه شده: