Mündəricat:
- Addım 1: BOM
- Addım 2: Əsas komponentlərin xüsusiyyətləri
- Addım 3: QABLAMA
- Addım 4: Raspberry hazırlamaq O.S
- Addım 5: NODE.JS VE WEBSOCKET.IO İLƏ WIFI TANKIMIZI NECƏ NƏZARƏT EDİRİK
- Addım 6: VİDEO YAYMA QABİLİYYƏTİNİ ƏLAVƏ EDİN
- Addım 7: TANK PROQRAMI
- Addım 8: NƏZARƏT ARAYİŞİNƏ VƏ STREAMING SERVERİNİ BAŞLAYIN
Video: Veb interfeysi və video axını olan moruq tankı: 8 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Uzaqdan Veb İdarəetmə və Video Yayımına qadir olan kiçik bir WiFi Tankını necə həyata keçirdiyimi görəcəyik.
Bu, elektron və proqramlaşdırma proqramları haqqında ilkin biliklər tələb edən bir dərs olacaq. Bu səbəbdən bir Tank şassi dəsti (3D printerdən istifadə etməklə çap etmək əvəzinə, daha sonra təkmilləşdirilə bilər) və batareyalar da daxil olmaqla ümumilikdə 6 komponent seçdim. Proqram tərəfində, quraşdırma prosesini addım -addım izləyə bilərsiniz və proqramlaşdırma minimum səviyyədə saxlanılır, Raspberry şeyləri haqqında əsas məlumat kömək edə bilər.
12 saatlıq işimi 0 -dan hazır tanka qədər hesabladım. Bütün komponentlər üçün ümumi dəyəri 70 €.
Addım 1: BOM
1 - DIY RC Robot Şassi Tankı - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Dual Channel L298N DC Motor Sürücü Kartı - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Raspberry Pi Zero W Başlanğıc Kit - 26 (€)
amzn.eu/1ugAaMP
1 - 16 GB SD Kart - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Model Zero üçün Raspberry Pi 5MP Kamera Modulu Veb Kamerası - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1-9V batareya
Qarışıq Breadboard Kabeli Dupont Konnektoru
Raspberry qurulması üçün siçan, klaviatura, Monitor və ya TV (isteğe bağlı, yalnız ilk qurulmanı asanlaşdırmaq üçün)
Addım 2: Əsas komponentlərin xüsusiyyətləri
Motor
JGA25-370 DC dişli motor
Bu mühərrik D formalı çıxış milinə malikdir.
Xüsusiyyətlər
· İşləmə gərginliyi: 6 V və 18 V arasında
· Nominal gərginlik: 12 V.
· 12 V-da sərbəst sürət: 399 RPM
· 12 V: 50 mA-da sərbəst axın
· 12V -da dayanma axını: 1200 mA
· 12V -də dayanma torku: 2,2 kq.sm
· Dişli nisbəti: 1:21
· Redüktör ölçüsü: 19 mm
· Çəkisi: 84 q
İki Kanallı L298N DC Motor Sürücü Kartı
İki H-körpü motor sürücüsü, iki DC mühərriki və ya 4 telli iki fazalı pilləli mühərrikləri idarə edə bilər. Motor dayanacağından qorumaq üçün quraşdırılmış TSD.
Xüsusiyyətlər
· Modul təchizatı gərginliyi: DC 2V-10V
· Siqnal giriş gərginliyi: DC 1.8-7V
· Tək iş cərəyanı: 1.5A
· 2.5A -a qədər maksimum cərəyan
· Aşağı gözləmə axını (0.1uA -dan az)
· Daxili ümumi keçirici dövrə, giriş terminalı boşdur, motorda nasazlıq yoxdur
· Ölçüsü: 24.7 x 21 x 7 mm
Addım 3: QABLAMA
Bu, son naqillər olacaq, amma bəzilərini quraşdırmadan əvvəl gözləyin
proqram təminatıdır və hazır olduqda buraya qayıtdıqdan sonra onu daha sadə məftillərlə sınamaq yaxşı olar.
İki fərqli enerji mənbəyinə ehtiyacımız var: biri motor üçün, biri də Moruq üçün.
Motor sürücüsü Dual Channel L298N DC Motor Sürücü Kartı (maksimum giriş gərginliyi DC 2V-10V) 9V batareya ilə təchiz edilir və Raspberry Pi standartlar 5V USB akkumulyatorundan istifadə edir.
Motor sürücüsünün GND pimi mənfi batareya və Raspberry Pi (GND) ilə bağlanacaq. Raspberry Pi -nin GPIO pinləri motor sürücüsünə masa kimi bağlanır.
Addım 4: Raspberry hazırlamaq O. S
Bu tapa biləcəyiniz Raspbian əməliyyat sistemi üçün standart bir quraşdırmadır
İnternetdə bir çox ətraflı təlimat, əsasən addımlar bunlardır:
1. https://www.raspberrypi.org/downloads/raspbian/ saytından iso RASPBIAN STRETCH MASASI ÜZRƏ yükləyin.
2. 16 GB SD Kartı Formatlayın, SD Formatter istifadə etdim
3.. IMG faylını yazın, Win32DiskImager istifadə etdim
İndi moruq açılmağa hazırdır, onu bir USB enerji mənbəyinə (5V, 2A) qoşun və ilk açılış qurulmasına hazırlaşın. Siçan, klaviatura və monitor kimi xarici cihazlardan istifadə edərək və ya PC və Raspberry ilə uzaqdan əlaqədən istifadə edərək bunu iki yolla edə bilərsiniz. Bu mövzuda bir çox dərs var, bunlardan biri:
Addım 5: NODE. JS VE WEBSOCKET. IO İLƏ WIFI TANKIMIZI NECƏ NƏZARƏT EDİRİK
İndi işimizi yerinə yetirməyə hazır olan Raspberry mikro PC -nin yeni bir qurğusu var, buna görə … tanka əmr vermək üçün nədən istifadə edirik?
Python, Rapsberry proyektini işlətmək üçün çox istifadə olunan bir dildir, Rapsberry giriş və çıxış pinləri (GPIO) ilə qarşılıqlı əlaqə qurmaq üçün də istifadə edilə bilər
Ancaq məqsədim ümumi bir veb brauzerdən istifadə edərək tank wi-fi-ni hər hansı bir cihazdan (PC, cib telefonu, planşet …) bağlamaq və ondan video yayımlamaq idi. Beləliklə, Python -u hələlik unudun və NODE. JS və SOCKET. IO -ya keçək.
NODE.js
Node.js (https://github.com/nodejs/node/wiki), js dilinə əsaslanan açıq mənbə server çərçivə işidir. Raspberry Pi Zero (ARMv6 CPU) istifadə etdiyim üçün avtomatik quraşdırma prosesini (ARMv7 CPU üçün nəzərdə tutulmuş) istifadə edə bilmərik və bunu əl ilə etməliyik:
Nodejs -i yerli olaraq yükləyin (ARMv6 üçün 7.7.2 versiyasını istifadə etdim, digər versiyaları buradan yoxlayın
pi@moruq: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Bitirdikdən sonra sıxılmış faylı çıxarın:
pi@moruq: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Faylları /user /local -a kopyalayın və quraşdırın
pi@moruq: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/
Nodejs qurduğumuz yeri yola əlavə edin, ".profile" faylını redaktə edin:
pi@moruq: ~ $ nano ~/.profil
Faylın sonuna aşağıdakı sətri əlavə edin, qeyd edin və çıxın
YOL = $ PATH:/usr/local/bin
Yüklənmiş faylı silin:.
pi@moruq: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@moruq: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Nodejs quraşdırılmasını yoxlamaq üçün aşağıdakı əmrləri yazın:
pi@moruq: ~ $ node -v
pi@moruq: ~ $ npm -v
Cavab olaraq v7.7.2 və v4.1.2 oxumalısınız.
Hər şey yaxşı gedirsə, nodejs fayllarınızı yerləşdirmək üçün yeni bir qovluq yaradın:
pi@moruq: ~ $ mkdir nodehome
Yeni qovluğun içərisinə keçin:
pi@moruq: ~ $ cd nodehome
Açıq və Kapalı olaraq GPIO -nu ən sadə şəkildə idarə etmək üçün lazım olan əlavə modulu quraşdırın:
pi@moruq: ~ $ npm yükləyin
İlk layihəmiz "Blink.js" ni sınamağın vaxtıdır, nəticə… yanıb -sönən LED olacaq
pi@moruq: ~ $ nano blink.js
Aşağıdakı kodu yapışdırın, qeyd edin və çıxın:
var Gpio = tələb edin ('açma'). Gpio; // offoff daxildir
var LED = yeni Gpio (3, 'çıxdı'); // GPIO 3 istifadə edin
var blinkInterval = setInterval (yanıb -sönən, 250);
// hər 250 ms -də LED yanıb -sönür
yanıb -sönməyə başlamaq üçün funksiya blinkLED () {// funksiyası
əgər
(LED.readSync () === 0) {// vəziyyət 0 (və ya söndürülmüşsə) pin vəziyyətini yoxlayın
LED.writeSync (1);
// pin vəziyyətini 1 olaraq təyin edin (LED yandırın)
} başqa {
LED.writeSync (0);
// pin vəziyyətini 0 olaraq təyin edin (LED söndürün)
}
}
endBlink () {// yanıb sönməyi dayandırmaq funksiyası
clearInterval (blinkInterval); // Göz qırpma aralıqlarını dayandırın
LED.writeSync (0); // LED söndürün
LED.unexport (); // Pulsuz mənbələrə GPIO ixrac edin
}
setTimeout (endBlink, 5000); // 5 saniyədən sonra yanıb sönməyi dayandırın
Şemada göstərildiyi kimi bir LED, bir Rezistor (200ohms) bağlayın və layihəni işləyin:
pi@moruq: ~ $ node blink.js
Node hazırdır.
SOCKET. IO
WebSocket, bir server və müştəri yaratmaq üçün bir proqramçı təmin edən TCP bağlantısına əsaslanan bir kompüter ünsiyyət protokoludur. Müştəri serverə qoşulur və serverdən və serverdən mesajlar alır və alır. Node.js üçün WebSocket tətbiqi Socket.io adlanır (https://socket.io/).
Socket.io qurun:
pi@moruq: ~ $ npm socket.io qurun -saxla
Əvvəlcədən yaradılmış nodejs evinin içərisinə keçin:
pi@moruq: ~ $ cd nodehome
Və "ictimai" yeni bir qovluq yaradın:
pi@moruq: ~ $ mkdir ictimai
Yeni bir nümunə veb server yaradın, ona "webserver.js" deyin
pi@moruq: ~ $ nano webserver.js
Aşağıdakı kodu yapışdırın, qeyd edin və çıxın:
var http = tələb ('http'). createServer (işləyici); // http serveri tələb edin və funksiya işləyicisi ilə server yaradın ()
var fs = tələb ('fs'); // fayl sistemi modulu tələb olunur
http. dinlə (8080); // 8080 portunu dinləyin
funksiya işləyicisi (req, res) {// server yaradın
fs.readFile (_ dirname + '/public/index.html', funksiya (səhv, məlumat) {// oxu
ümumi qovluqdakı index.html fayl
əgər (səhv) {
res.writeHead (404, {'Content-Type': 'text/html'}); // xətada 404 göstərin
qayıt res.end ( 404 Xeyr
Tapıldı );
}
res.writeHead (200, {'Content-Type': 'text/html'}); // HTML yazın
res.write (məlumatlar); // məlumat yaz
index.html saytından
qayıt res.end ();
});
}
Bu veb server, 8080 Raspberry portunuzu dinləyəcək və onu birləşdirən hər hansı bir veb müştəriyə fayl təqdim edəcək. İndi müştərilərimizə ev sahibliyi etmək və təqdim etmək üçün bir şey yaratmalıyıq: "İctimai" qovluğa keçin: pi@moruq: ~ $ cd ictimai
Yeni "index.html" html faylı yaradın:
pi@moruq: ~ $ nano index.html
Əlavə edilmiş "HelloWorld.txt" dən kodu yapışdırın, qeyd edin və çıxın.
"Nodehome" nodejs qovluğuna keçin:
pi@moruq: ~ $ cd nodehome
HTTP veb serverini işə salın:
pi@moruq: ~ $ node webserver.js
Veb saytı https:// Raspberry_IP: 8080/istifadə edərək brauzerdə açın (Raspberry_IP -i IP ilə əvəz edin)
Addım 6: VİDEO YAYMA QABİLİYYƏTİNİ ƏLAVƏ EDİN
Bir Moruqda video axını həyata keçirməyin ən asan yolu var
İndiyə qədər gördüyüm yol, əla bir performans və bir veb interfeysinə inteqrasiya oluna biləcəyinin Miguel Mota layihəsinə əsaslanır:
miguelmota.com/blog/raspberry-pi-camera-bo…
Təşəkkürlər Migel! Onun blogundan bu addımlar:
Libjpeg8 və cmake komponentlərini quraşdırın:
pi@moruq: ~ $ sudo apt-get libjpeg8 qurun
pi@moruq: ~ $ sudo apt-get libjpeg8-dev quraşdırın
pi@moruq: ~ $ sudo apt-get install cmake
Raspicam plugin ilə mjpg-streamer yükləyin:
pi@moruq: ~ $ git klon
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Kataloqu dəyişdirin:
pi@moruq: ~ $ cd ~/mjpg-streamer/mjpg-streamer-təcrübi
Kompilyasiya edin:
pi@moruq: ~ $ hamısını təmizləyin
Köhnə-j.webp
pi@moruq: ~ $ sudo rm -rf /opt /-j.webp
pi@moruq: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-təcrübi
/opt/-j.webp
pi@moruq: ~ $ sudo rm -rf ~/mjpg -axın
Yeni bir "start_stream.sh" faylı yaradın, əlavə edilmiş "start_stream.txt" faylından kopyalayın və yapışdırın.
İcra olun (qabıq skriptləri yaradın):
pi@moruq: ~ $ chmod +x start_stream.sh
Axın serverinə başlayın:
pi@moruq: ~ $./start_stream.sh
Veb saytı https:// Raspberry_IP: 9000 istifadə edərək brauzerdə açın (Raspberry_IP -i IP ilə əvəz edin)
Addım 7: TANK PROQRAMI
Hər şey hazırdır, indi tankı idarə etmək üçün web səhifəmizi (index.html) və əmrlərimizi dinləmək üçün web serverimizi (webserver.js) yaratmalıyıq. Beləliklə, indiyə qədər görünən faylları (sistemi sınamaq üçün yalnız nümunələr) əlavə edilmiş webserver.txt və index.txt ilə əvəz edin.
Addım 8: NƏZARƏT ARAYİŞİNƏ VƏ STREAMING SERVERİNİ BAŞLAYIN
Xidmətlərə başlamaq üçün iki terminal pəncərəsini açın və bu əmrləri yerinə yetirin:
qovşaq nodehome/webserver.js
./nodehome/start_stream.sh
Veb saytı https:// Raspberry_IP: 8080 istifadə edərək brauzerdə açın (Raspberry_IP -i IP ilə əvəz edin)
Tövsiyə:
I2C Sensor İnterfeysi ilə Başlarsınız? - ESP32s istifadə edərək MMA8451 interfeysi: 8 addım
I2C Sensor İnterfeysi ilə Başlarsınız? - MMA8451 -in ESP32 -lərdən istifadə edərək interfeysi: Bu təlimatda, nəzarətçi ilə işləyən (Arduino, ESP32, ESP8266, ESP12 NodeMCU) işləyən I2C cihazının (Akselerometr) necə işə salınması, qoşulması və alınması haqqında hər şeyi öyrənəcəksiniz
Onlayn Balıq Tankı Veb Kamerası Hazırlamaq: 8 Adım (Şəkillərlə)
Onlayn Balıq Tankı Veb Kamerası hazırlamaq!: Bir IP kamerasının vəziyyətini birbaşa Balıq Tankına bağlamaq üçün modifikasiya etmək üçün addım -addım təlimat. Bunun lazım olmasının səbəbi odur ki, veb -kameralar ümumiyyətlə mövzunun önünə qoyulmaq üçün və ya bir stendə ehtiyac duyulur. Ancaq bir Balıq Ta ilə
20 funt sterlinqdən aşağı olan COVID-19 Ventilatoru üçün Arduino ilə dəqiq bir hava axını sensoru necə hazırlanır: 7 addım
20 funt sterlinqdən aşağı olan COVİD-19 Ventilatoru üçün Arduino ilə Həqiqi Hava Akış Hızı Sensoru Necə Hazırlanır: Zəhmət olmasa bu orifis axını sensorunun ən son dizaynı üçün bu hesabata baxın: https://drive.google.com/file/d/1TB7rhnxQ6q6C1cNb. ..Bu təlimatlar, aşağı qiymətli diferensial təzyiq sensoru ilə hava axını sensoru necə qurulacağını göstərir
Aşağı Gecikmədə DJI Drone -dan Canlı 4G/5G HD Video Axını [3 Addım]: 3 addım
Aşağı Gecikmədə DJI Drone-dan 4G/5G HD Video Yayımı [3 Addım]: Aşağıdakı bələdçi, demək olar ki, hər hansı bir DJI dronundan canlı HD keyfiyyətli video axını əldə etməyə kömək edəcək. FlytOS Mobil Tətbiqi və FlytNow Veb Tətbiqinin köməyi ilə drondan video axınına başlaya bilərsiniz
Yalnız bir DC Motoru olan 12V -dən 220V -ə qədər olan ən sadə çevirici: 3 addım (şəkillərlə)
12V -dən 220V -a qədər bir DC Motoru olan ən sadə İnverter: Salam! Bu təlimatda evdə sadə bir çevirici hazırlamağı öyrənəcəksiniz. Dəyişdirmə işlərindən yalnız DC Motor məsuldur