Përmbajtje:
- Hapi 1: BOM
- Hapi 2: Specifikimet e Komponentëve Kryesorë
- Hapi 3: WIRING
- Hapi 4: PRERGATITJA E RASPBERRY O.S
- Hapi 5: SI T CON KONTROLLONI TANKIN TON W WIFI ME NODE.JS DHE WEBSOCKET.IO
- Hapi 6: SHTIMI I Aftësive VIDEO STREAMING
- Hapi 7: PROGRAMI TANK
- Hapi 8: FILLONI SERVERIN E KONTROLLIT TTER NDTERRFYRS DHE STREAMING
Video: Rezervuari me mjedër me ndërfaqe në internet dhe transmetim video: 8 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Ne do të shohim se si kam kuptuar një rezervuar të vogël WiFi, të aftë për telekomandë në internet dhe transmetim video.
Ky synohet të jetë një mësim që kërkon njohuri themelore të programimit elektronik dhe softuerik. Për këtë arsye unë kam zgjedhur një Tank shasi Kit (në vend që ta printoj duke përdorur printer 3D, mund të jetë një azhurnim i mëvonshëm) dhe një total prej 6 përbërësish përfshirë bateritë. Nga ana softuerike mund të ndiqni hap pas hapi procesin e instalimit dhe programimin të mbahet në minimum, një njohuri bazë e gjërave të Mjedrës mund të ndihmojë.
Unë kam vlerësuar 12 orë punë nga 0 në gati për të drejtuar rezervuarin. Kosto totale prej 70 € për të gjithë përbërësit.
Hapi 1: BOM
1 - DIY RC Robot Chassis Tank - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Dual Channel L298N DC Motor Driver Board - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Raspberry Pi Zero W Starter Kit - 26 (€)
amzn.eu/1ugAaMP
Kartë SD 1 - 16 GB - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Webcam Raspberry Pi 5MP Camera Module për Model Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Banka e energjisë 5V
Bateri 1 - 9v
Lidhës i përzier me kabllo Breadboard Dupont
Miu, tastiera, monitori ose televizori për konfigurimin e mjedrës (opsionale, vetëm për ta bërë më të lehtë konfigurimin e parë)
Hapi 2: Specifikimet e Komponentëve Kryesorë
Motor
JGA25-370 gearmotor DC
Ky motor përmban një bosht dalës në formë D.
Specifikimet
· Tensioni i funksionimit: midis 6 V dhe 18 V
· Tensioni nominal: 12 V
· Shpejtësi e drejtimit të lirë në 12 V: 399 RPM
· Rrymë e lirë në 12 V: 50 mA
· Rryma e stallave në 12V: 1200 mA
· Çift rrotullues në stalla në 12V: 2.2 kg.cm
· Raporti i ingranazheve: 1:21
· Madhësia e reduktuesit: 19 mm
· Pesha: 84 g
Bordi i Drejtuesve të Motorëve me Dy Kanale L298N DC
Drejtuesi i dyfishtë i motorit me urë H, mund të drejtojë dy motorë DC ose një motor stepper me dy tela me 4 tela. TSD e integruar, për tu mbrojtur nga stalla e motorit.
Specifikimet
· Tensioni i furnizimit të modulit: DC 2V-10V
· Tensioni i hyrjes së sinjalit: DC 1.8-7V
· Rryma e vetme e punës: 1.5A
· Rryma maksimale deri në 2.5A
· Rrymë e ulët gatishmërie (më pak se 0.1uA)
· Qark i përcjelljes së përbashkët të integruar, terminali i hyrjes i lirë, motori nuk funksionon
· Madhësia: 24.7 x 21 x 7mm
Hapi 3: WIRING
Kjo do të jetë instalime elektrike përfundimtare, por PRIT, para se të duhet të instalojmë disa
softuer dhe është një ide e mirë për ta testuar atë me instalime elektrike më të thjeshta, kur të jeni gati që të ktheheni këtu.
Ne kemi nevojë për dy burime të ndryshme energjie, një për motorin dhe një për mjedrën.
Drejtuesi i motorit Dual Channel L298N DC Motor Driver Board (tensioni maksimal i hyrjes DC 2V-10V) mundësohet duke përdorur baterinë 9V dhe Raspberry Pi përdor standardet 5V akumulatori USB.
Kunja GND e drejtuesit të motorit do të lidhet me baterinë minus dhe Raspberry Pi (GND). Kunjat GPIO të Raspberry Pi janë të lidhura me drejtuesin e motorit si tabelë.
Hapi 4: PRERGATITJA E RASPBERRY O. S
Ky është një instalim standard për sistemin operativ Raspbian, mund ta gjeni
shumë mësime të hollësishme që kërkojnë në internet, në thelb hapat janë:
1. Shkarkoni iso RASPBIAN STRETCH ME DESKTOP nga
2. Formatoni një kartë SD 16 GB, unë kam përdorur SD Formatter
3. Djeg skedarin. IMG, kam përdorur Win32DiskImager
Tani mjedra juaj është gati për tu nisur, lidheni atë me një burim energjie USB (5V, 2A) dhe përgatituni për konfigurimin e nisjes së parë. Ju mund ta bëni atë në dy mënyra, duke përdorur pajisje të jashtme si miu, tastiera dhe monitori ose duke përdorur kompjuterin tuaj dhe një lidhje të largët me Raspberry. Ka shumë mësime për këtë, njëra është:
Hapi 5: SI T CON KONTROLLONI TANKIN TON W WIFI ME NODE. JS DHE WEBSOCKET. IO
Tani kemi një instalim të ri të mikro -kompjuterit tonë Raspberry gati për të drejtuar punën tonë, kështu që … çfarë përdorim për të lëshuar komanda në rezervuar?
Python është një gjuhë shumë e lehtë për t’u përdorur që përdoret zakonisht për të drejtuar rërën e projektit Rapsberry mund të përdoret lehtësisht edhe për të bashkëvepruar me kunjat e hyrjes dhe daljes së Rapsberry (GPIO)
Por, qëllimi im ishte të lidhja wi-fi të rezervuarit tim nga çdo pajisje (PC, telefon celular, tabletë …) duke përdorur një shfletues të zakonshëm në internet dhe gjithashtu të transmetoja video nga ai. Pra, harroni Python tani për tani dhe le të lëvizim në NODE. JS dhe SOCKET. IO.
NODE.js
Node.js (https://github.com/nodejs/node/wiki) është një punë kornizë e serverit me burim të hapur bazuar në gjuhën js. Meqenëse po përdor Raspberry Pi Zero (CPU ARMv6) ne nuk mund të përdorim procesin e instalimit automatik (të destinuar për CPU ARMv7) dhe ne duhet ta bëjmë atë me dorë:
Shkarkoni Nodejs në nivel lokal, (kam përdorur versionin 7.7.2 për ARMv6, kontrolloni versionet e tjera këtu
pi@mjedër: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Pasi të keni mbaruar, nxirrni skedarin e ngjeshur:
pi@mjedër: ~ $ tar -xzf nyje-v7.7.2-linux-armv6l.tar.gz
Kopjoni dhe instaloni skedarët në /përdorues /lokal
pi@mjedër: ~ $ sudo cp -R nyje-v7.7.2-linux-armv6l/*/usr/local/
Shtoni vendndodhjen ku instalojmë nodejs në shteg, modifikoni skedarin ".profile":
pi@mjedër: ~ $ nano ~/.profil
Shtoni rreshtin e mëposhtëm në fund të skedarit, ruani dhe dilni
PATH = $ PATH:/usr/local/bin
Hiq skedarin e shkarkuar:.
pi@mjedër: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@mjedër: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Shkruani komandat e mëposhtme për të kontrolluar instalimin e nodejs:
pi@mjedër: n $ nyje -v
pi@mjedër: ~ $ npm -v
Ju duhet të lexoni v7.7.2 dhe v4.1.2 si përgjigje.
Nëse gjithçka shkoi mirë, krijoni një dosje të re për të pritur skedarët tuaj nodejs:
pi@mjedër: ode $ mkdir nodehome
Zhvendoseni brenda dosjes së re:
pi@mjedër: ode $ cd nodehome
Instaloni modul shtesë të kërkuar për të menaxhuar GPIO në mënyrën më themelore, ON dhe OFF:
pi@mjedër: install $ npm instaloni onoff
Tani është koha për të testuar projektin tonë të parë "Blink.js", rezultati do të jetë … një LED që vezullon
pi@mjedër: n $ nano blink.js
Ngjitni kodin e mëposhtëm, ruani dhe dilni:
var Gpio = kërkoj ('fikur'). Gpio; // përfshini onoff
var LED = Gpio e re (3, 'jashtë'); // përdorni GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// ndez LED çdo 250ms
funksion blinkLED () {// funksion për të filluar ndezjen
nëse
(LED.readSync () === 0) {// kontrolloni gjendjen e kunjit, nëse gjendja është 0 (ose joaktive)
LED.writeSync (1);
// vendosni gjendjen e pinit në 1 (ndizni LED)
} tjetër {
LED.writeSync (0);
// vendosni gjendjen e pinit në 0 (fikni LED)
}
}
funksioni endBlink () {// funksioni për të ndaluar ndezjen
clearInterval (blinkInterval); // Ndaloni intervalet e ndezjes së syve
LED.writeSync (0); // Fikni LED -in
LED.unexport (); // Mos eksportoni GPIO në burime falas
}
setTimeout (fundBlink, 5000); // ndaloni së ndezuri pas 5 sekondash
Lidhni një LED, një Rezistor (200ohms) siç tregohet në skemë dhe drejtoni projektin:
pi@mjedër: n $ nyja blink.js
Nyja është gati.
SOCKET. IO
WebSocket është një protokoll komunikimi kompjuterik, i bazuar në lidhjen TCP, ai siguron një programues për të krijuar një server dhe klient. Klienti lidhet me serverin dhe lëshon dhe merr mesazhe nga dhe nga serveri. Zbatimi i WebSocket për Node.js quhet Socket.io (https://socket.io/).
Instaloni socket.io:
pi@mjedër: ~ $ npm instaloni socket.io -ruani
Lëvizni brenda shtëpisë së nodejs, e krijuar më parë:
pi@mjedër: ode $ cd nodehome
Dhe krijoni një dosje të re "publike":
pi@mjedër: m $ mkdir publike
Krijoni një server të ri shembull, quajeni "webserver.js"
pi@mjedër: ~ $ nano webserver.js
Ngjitni kodin e mëposhtëm, ruani dhe dilni:
var http = kërkojnë ('http'). createServer (mbajtës); // kërkojnë server http dhe krijoni server me funksionuesin ()
var fs = kërkoj ('fs'); // kërkojnë modul të sistemit të skedarëve
http.listen (8080); // dëgjoni portin 8080
mbajtës i funksioneve (req, res) {// krijoni server
fs.readFile (_ dirname + '/public/index.html', funksioni (gabim, të dhëna) {// lexo
file index.html në dosjen publike
nëse (gaboj) {
res.writeHead (404, {'Lloji i Përmbajtjes': 'tekst/html'}); // shfaq 404 mbi gabimin
kthehu res.end ( 404 Jo
U gjet );
}
res.writeHead (200, {'Lloji i Përmbajtjes': 'tekst/html'}); // shkruaj HTML
rishkruaj (të dhënat); // shkruaj të dhëna
nga indeksi.html
kthehu res.end ();
});
}
Ky server në internet do të dëgjojë portën tuaj Raspberry 8080 dhe do të sigurojë skedarë për çdo klient në internet që e lidh atë. Tani ne duhet të krijojmë diçka për të pritur dhe siguruar për klientët tanë: Lëvizni brenda dosjes "publike": pi@raspberry: ~ $ cd public
Krijoni skedarin e ri html "index.html":
pi@mjedër: n $ nano index.html
Ngjitni kodin nga bashkangjitur "HelloWorld.txt", ruani dhe dilni.
Zhvendoseni brenda dosjes nodejs "nodehome":
pi@mjedër: ode $ cd nodehome
Filloni serverin e uebit
pi@mjedër: er $ nyje webserver.js
Hapni uebfaqen në një shfletues duke përdorur https:// Raspberry_IP: 8080/(zëvendësoni Raspberry_IP me IP -në tuaj)
Hapi 6: SHTIMI I Aftësive VIDEO STREAMING
Ka mënyra të ndryshme për të zbatuar transmetimin e videove në një mjedër, më e lehtë
mënyra që kam gjetur deri më tani, se si një performancë e shkëlqyeshme dhe që mund të integrohet në një ndërfaqe në internet bazohet në projektin nga Miguel Mota:
miguelmota.com/blog/raspberry-pi-camera-bo…
Faleminderit Miguel! Nga blogu i tij këto janë hapat:
Instaloni përbërësit libjpeg8 dhe cmake:
pi@mjedër: ~ $ sudo apt-get install libjpeg8
pi@mjedër: ~ $ sudo apt-get install libjpeg8-dev
pi@mjedër: su $ sudo apt-get install cmake
Shkarkoni mjpg-streamer me shtojcën raspicam:
pi@mjedër: ~ $ git klon
github.com/jacksonliam/mjpg-streamer.git/mjpg-streamer
Ndrysho drejtorinë:
pi@mjedër: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental
Përpiloni:
pi@mjedër: ~ $ pastroni të gjitha
Zëvendësoni transmetuesin e vjetër mjpg:
pi@mjedër: ~ $ sudo rm -rf /opt /mjpg -streamer
pi@mjedër: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental
/opt/mjpg-streamer
pi@mjedër: ~ $ sudo rm -rf ~/mjpg -streamer
Krijoni një skedar të ri "start_stream.sh", kopjoni dhe ngjisni nga skedari "start_stream.txt" i bashkangjitur.
Bëjeni atë të ekzekutueshëm (krijoni skripte shell):
pi@mjedër: ~ $ chmod +x start_stream.sh
Filloni serverin e transmetimit:
pi@mjedër: ~ $./start_stream.sh
Hapni uebfaqen në një shfletues duke përdorur https:// Raspberry_IP: 9000 (zëvendësoni Raspberry_IP me IP -në tuaj)
Hapi 7: PROGRAMI TANK
Gjithçka është gati, tani duhet të krijojmë faqen tonë të internetit për të kontrolluar rezervuarin (index.html) dhe serverin tonë të internetit për të dëgjuar komandat tona (webserver.js). Pra, thjesht zëvendësoni skedarët e parë deri më tani (vetëm shembuj për të testuar sistemin) me webserver.txt dhe index.txt të bashkangjitur.
Hapi 8: FILLONI SERVERIN E KONTROLLIT TTER NDTERRFYRS DHE STREAMING
Për të filluar shërbimet, hapni dy dritare terminale dhe ekzekutoni këto komanda:
nyje nodehome/webserver.js
./nodehome/start_stream.sh
Hapni uebfaqen në një shfletues duke përdorur https:// Raspberry_IP: 8080 (zëvendësoni Raspberry_IP me IP -në tuaj)
Recommended:
Roboti SCARA: Mësoni Rreth Kinematikës Foward dhe Inverse !!! (Plot Twist Mësoni si të bëni një ndërfaqe në kohë reale në ARDUINO duke përdorur përpunimin !!!!): 5 hapa (me fotografi)
Roboti SCARA: Mësoni Rreth Kinematikës Foward dhe Inverse !!! (Plot Twist Mësoni si të bëni një ndërfaqe në kohë reale në ARDUINO duke përdorur përpunimin !!!!): Një robot SCARA është një makinë shumë e popullarizuar në botën e industrisë. Emri qëndron për krahun robot të Asamblesë selektive të pajtueshme ose krahun robot të artikuluar me pajtueshmëri selektive. Në thelb është një robot i lirisë me tre shkallë, duke qenë dy shpërndarësit e parë
Ndërfaqe LCD 16x2 me mjedër Pi: 7 hapa
Ndërfaqja LCD 16x2 me Raspberry Pi: Përshëndetje miq, sot jam duke ndërfaqe në ekranin 16x2 me Raspberry pi
Ndërfaqe pa tela Bluetooth për calippers Mitutoyo dhe tregues: 8 hapa (me fotografi)
Ndërfaqe pa tela Bluetooth për Kalibrat dhe Treguesit Mitutoyo: Ka miliona kalibra Mitutoyo Digimatic, mikrometra, tregues dhe pajisje të tjera në botë sot. Shumë njerëz si unë i përdorin ato pajisje për të mbledhur të dhëna direkt në një kompjuter. Kjo eliminon nevojën për të hyrë dhe shtypur ndonjëherë qindra
Ndërfaqe me dy tela (DMX) me ekran dhe butona: 5 hapa (me fotografi)
Ndërfaqe me dy tela (DMX) me ekran dhe butona: DMX është një protokoll i përdorur për të kontrolluar pajisjet e ndriçimit të skenës dhe efektet speciale. Çdo pajisje ka kanalin e vet të cilit i përgjigjet. Ky kanal mund të zgjidhet nga përdoruesi nga një çelës DIP ose një ekran me butona. Ka shumë mënyra për të zgjedhur një
ESP8266 Automatizimi me ndërfaqe në internet dhe DDNS: 8 hapa
Automatizimi ESP8266 Me Ndërfaqen e Uebit dhe DDNS: Në artikullin e sotëm, ne do të tregojmë një automatizim, i cili mund të jetë i banuar, duke përdorur veçorinë DDNS (Sistemi Dynamic Domain Name). Ju do të kuptoni se si të konfiguroni aplikacionin që do të vendosni në ESP8266, në NodeMCU. Gjithashtu, do të shohim se si