Tartalomjegyzék:

Málna tartály webes interfésszel és videó streameléssel: 8 lépés (képekkel)
Málna tartály webes interfésszel és videó streameléssel: 8 lépés (képekkel)

Videó: Málna tartály webes interfésszel és videó streameléssel: 8 lépés (képekkel)

Videó: Málna tartály webes interfésszel és videó streameléssel: 8 lépés (képekkel)
Videó: Прославленный заброшенный ЗАМОК ВОЛКОВ - спрятанное сокровище! 2024, November
Anonim
Málnás tartály webes interfésszel és videó streameléssel
Málnás tartály webes interfésszel és videó streameléssel

Látni fogjuk, hogyan valósítottam meg egy kis WiFi -tartályt, amely képes a webes távvezérlésre és a videó streamelésre.

Ez oktatóanyag, amely alapvető ismereteket igényel az elektronikus és a szoftver programozásból. Ezért választottam egy tartály alváz készletet (3D nyomtató használatával történő nyomtatás helyett későbbi frissítés lehet) és összesen 6 komponenst, beleértve az elemeket is. A szoftveres oldalon lépésről lépésre követheti a telepítési folyamatot és a programozást minimális szinten tarthatja, a Raspberry dolgokkal kapcsolatos alapvető ismeretek segíthetnek.

12 órányi munkát becsültem 0 -tól üzemkész tankra. A teljes költség 70 € minden alkatrészre.

1. lépés: BOM

BOM
BOM
BOM
BOM
BOM
BOM
BOM
BOM

1 - DIY RC robot alváztartály - 32 (€)

www.banggood.com/DIY-RC-Robot-Chassis-Tan…

1 - Kétcsatornás L298N egyenáramú motorvezérlő kártya - 1, 39 (€)

www.banggood.com/Dual-Channel-L298N-DC-Mo…

1 - Raspberry Pi Zero W kezdő készlet - 26 (€)

amzn.eu/1ugAaMP

1 - 16 GB SD kártya - 5, 50 (€)

www.gearbest.com/memory-cards/pp_337819.h…

1 - Raspberry Pi 5MP kamera modul webkamera a Zero modellhez - 8 (€)

www.gearbest.com/raspberry-pi/pp_612249.h…

1 - Tápegység 5V

1 - 9 V -os akkumulátor

Vegyes Breadboard kábel Dupont csatlakozó

Egér, billentyűzet, monitor vagy TV a málna beállításához (opcionális, csak az első beállítás megkönnyítése érdekében)

2. lépés: A fő összetevők adatai

Motor

JGA25-370 DC hajtóműves motor

Ennek a motornak D alakú kimenő tengelye van.

Specifikációk

· Üzemi feszültség: 6 V és 18 V között

· Névleges feszültség: 12 V

· Szabadonfutási sebesség 12 V-nál: 399 RPM

· Szabadonfutó áram 12 V-nál: 50 mA

· Leállási áram 12V -nál: 1200 mA

· Elakadási nyomaték 12 V -nál: 2,2 kg.cm

· Áttétel: 1:21

· Reduktor mérete: 19 mm

· Súly: 84 g

Kétcsatornás L298N egyenáramú motor meghajtó panel

Kettős H-híd motor meghajtó, két egyenáramú motort vagy 4 vezetékes kétfázisú léptetőmotort hajthat. Beépített TSD, hogy megvédje a motor leállásától.

Specifikációk

· A modul tápfeszültsége: DC 2V-10V

· Jel bemeneti feszültség: DC 1,8-7V

· Egyetlen működő áram: 1,5A

· Csúcsáram 2,5A -ig

· Alacsony készenléti áram (kevesebb, mint 0,1uA)

· Beépített közös vezetési áramkör, a bemeneti csatlakozó üres, a motor nem hibásan működik

· Méret: 24,7 x 21 x 7 mm

3. lépés: BEKÖTÉS

VEZETÉK
VEZETÉK
VEZETÉK
VEZETÉK

Ez lesz a végső huzalozás, de VÁRJ, mielőtt telepítenünk kell néhányat

szoftvert, és jó ötlet egyszerűbb kábelezéssel tesztelni, ha készen áll, és térjen vissza ide.

Két különböző áramforrásra van szükségünk, az egyik a motorhoz, a másik a Málnához.

A motorvezérlő kétcsatornás L298N egyenáramú motorvezérlő kártya (max. DC 2V-10V bemeneti feszültség) a 9 V-os akkumulátor, a Raspberry Pi pedig a szabványos 5 V-os USB akkumulátort használja.

A motorvezérlő GND csapja az akkumulátor mínusz és a Raspberry Pi (GND) akkumulátorhoz lesz csatlakoztatva. A Raspberry Pi GPIO csapjai asztalként vannak csatlakoztatva a motor meghajtójához.

4. lépés: A MÁRKA O. S. ELŐKÉSZÍTÉSE

Ez a Raspbian operációs rendszer szabványos telepítése

sok részletes bemutató az interneten, alapvetően a lépések:

1. Töltse le a iso RASPBIAN STRETCH WITH DESKTOP címet a https://www.raspberrypi.org/downloads/raspbian/ webhelyről.

2. Formázzon egy 16 GB -os SD -kártyát, én SD formázót használtam

3. Írja be. IMG fájlt, Win32DiskImager -t használtam

Most a málna készen áll a rendszerindításra, csatlakoztassa azt egy USB áramforráshoz (5V, 2A), és készüljön fel az első rendszerindításra. Ezt kétféleképpen teheti meg: külső eszközök, például egér, billentyűzet és monitor használatával, vagy számítógépe és a Raspberry távoli kapcsolata segítségével. Sok oktatóanyag van erről, az egyik:

5. lépés: HOGYAN KONTROLLÁLJUK WIFI -TÁROLÓUNKOT NODE. JS ÉS WEBSOCKET. IO

HOGYAN KONTROLLÁLJUK WIFI TANKUNKAT NODE. JS ÉS WEBSOCKET. IO
HOGYAN KONTROLLÁLJUK WIFI TANKUNKAT NODE. JS ÉS WEBSOCKET. IO

Most a Raspberry mikro PC friss telepítése készen áll a munkánk elvégzésére, tehát… mit használunk parancsok kiadásához a tartályhoz?

A Python egy nagyon könnyen használható nyelv, amelyet általában használnak a Rapsberry projekt homokjának futtatásához.

De a célom az volt, hogy egy közös webböngésző segítségével bármilyen eszközről (PC-ről, mobiltelefonról, táblagépről …) csatlakoztassam tankom wi-fi-jét, és videót is streameljek belőle. Szóval, felejtsd el egyelőre a Python -t, és lépjünk tovább a NODE. JS és a SOCKET. IO -n.

NODE.js

A Node.js (https://github.com/nodejs/node/wiki) egy nyílt forráskódú szerverkeret, amely a js nyelvén alapul. Mivel Raspberry Pi Zero -t (ARMv6 CPU) használok, nem tudjuk használni az automatikus telepítési folyamatot (ARMv7 CPU -hoz szánt), és ezt manuálisan kell elvégeznünk:

Töltse le a Nodejs -t helyileg, (az ARMv6 7.7.2 verzióját használtam, a többi verziót itt találja:

pi@málna: ~ $ wget

nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…

Ha kész, bontsa ki a tömörített fájlt:

pi@málna: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz

Másolja és telepítse a fájlokat a /user /local mappába

pi@málna: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/

Adja hozzá a csomópont telepítési helyét az útvonalhoz, szerkessze a „.profile” fájlt:

pi@málna: ~ $ nano ~/.profile

Adja hozzá a következő sort a fájl végén, mentse és lépjen ki

PATH = $ PATH:/usr/local/bin

Távolítsa el a letöltött fájlt:.

pi@málna: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz

pi@málna: ~ $ rm -r ~/node-v7.7.2-linux-armv6l

Írja be a következő parancsokat a nodejs telepítésének ellenőrzéséhez:

pi@málna: ~ $ node -v

pi@málna: ~ $ npm -v

Válaszként olvassa el a 7.7.2. És a v4.1.2.

Ha minden jól ment, hozzon létre egy új mappát a nodejs fájlok tárolására:

pi@málna: ~ $ mkdir nodehome

Ugrás az új mappába:

pi@málna: ~ $ cd nodehome

Telepítse a GPIO legalapvetőbb kezeléséhez szükséges további modult, BE és KI:

pi@málna: ~ $ npm install onoff

Itt az ideje, hogy teszteljük első „Blink.js” projektünket, az eredmény… villogó LED

pi@málna: ~ $ nano blink.js

Illessze be a következő kódot, mentse és lépjen ki:

var Gpio = igényel ('ki'). Gpio; // bekapcsolás bekapcsolása

var LED = új Gpio (3, 'ki'); // GPIO 3 használata

var blinkInterval = setInterval (blinkLED, 250);

// 250 ms -onként villog a LED

function blinkLED () {// funkció a villogás megkezdéséhez

ha

(LED.readSync () === 0) {// ellenőrizze a tű állapotát, ha az állapot 0 (vagy kikapcsolt)

LED.writeSync (1);

// állítsa a pin állapotot 1 -re (kapcsolja be a LED -et)

} más {

LED.writeSync (0);

// állítsa a csap állapotát 0 -ra (kapcsolja ki a LED -et)

}

}

function endBlink () {// funkció a villogás leállítására

clearInterval (blinkInterval); // Állítsa le a pislogási időközöket

LED.writeSync (0); // Kapcsolja ki a LED -et

LED.unexport (); // A GPIO exportálása a szabad erőforrásokba

}

setTimeout (endBlink, 5000); // 5 másodperc múlva hagyja abba a villogást

Csatlakoztasson egy LED -et, egy ellenállást (200 ohm) a séma szerint, és futtassa a projektet:

pi@málna: ~ $ csomópont blink.js

A csomópont készen áll.

SOCKET. IO

A WebSocket egy számítógépes kommunikációs protokoll, amely TCP kapcsolaton alapul, és programozót biztosít szerver és ügyfél létrehozásához. Az ügyfél csatlakozik a szerverhez, és üzeneteket küld és fogad a szerverről és a szerverről. A Node.js WebSocket implementációjának neve Socket.io (https://socket.io/).

A socket.io telepítése:

pi@málna: ~ $ npm install socket.io --save

Mozgás a nodejs otthonába, korábban létrehozva:

pi@málna: ~ $ cd nodehome

És hozzon létre egy új „nyilvános” mappát:

pi@málna: ~ $ mkdir nyilvános

Hozzon létre új minta webszervert, hívja „webserver.js” -nek

pi@málna: ~ $ nano webszerver.js

Illessze be a következő kódot, mentse és lépjen ki:

var http = igényel ('http'). createServer (kezelő); // igényel http szervert, és hozzon létre szervert függvénykezelővel ()

var fs = igényel ('fs'); // fájlrendszer modul szükséges

http.listen (8080); // hallgassa meg a 8080 -as portot

függvénykezelő (req, res) {// szerver létrehozása

fs.readFile (_ dirname + '/public/index.html', function (err, data) {// olvas

fájl index.html nyilvános mappában

ha (téved) {

res.writeHead (404, {'Content-Type': 'text/html'}); // hiba esetén a 404 -es kijelző

return res.end ( 404 Nem

Megtalált );

}

res.writeHead (200, {'Content-Type': 'text/html'}); // HTML írása

res.write (adatok); // adatok írása

az index.html -ből

return res.end ();

});

}

Ez a webszerver figyelni fogja a Raspberry 8080 -as portját, és fájlokat szolgáltat az azt összekötő webes ügyfelekről. Most létre kell hoznunk valamit, amit vendégül láthatunk és biztosíthatunk ügyfeleinknek: Lépjen a „public” mappába: pi@málna: ~ $ cd public

Új „index.html” html fájl létrehozása:

pi@málna: ~ $ nano index.html

Illessze be a kódot a mellékelt "HelloWorld.txt" fájlból, mentse és lépjen ki.

Mozgás a nodejs mappában "nodehome":

pi@málna: ~ $ cd nodehome

Indítsa el a HTTP webszervert:

pi@málna: ~ $ node webserver.js

Nyissa meg a webhelyet egy böngészőben a https:// Raspberry_IP: 8080/segítségével (cserélje le a Raspberry_IP -t az IP -címére)

6. lépés: A VIDEO STREAMING KÉPESSÉG HOZZÁADÁSA

A videó streaming Raspberry -n való legegyszerűbb módja

Eddig azt találtam, hogy a nagy teljesítmény és a webes felületbe integrálható Miguel Mota projektje:

miguelmota.com/blog/raspberry-pi-camera-bo…

Köszi Miguel! A blogjában ezek a lépések:

Telepítse a libjpeg8 és a cmake összetevőket:

pi@málna: ~ $ sudo apt-get install libjpeg8

pi@málna: ~ $ sudo apt-get install libjpeg8-dev

pi@málna: ~ $ sudo apt-get install cmake

Letöltés mjpg-streamer raspicam beépülő modullal:

pi@málna: ~ $ git klón

github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer

Könyvtár módosítása:

pi@málna: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental

Fordítás:

pi@málna: ~ $ tisztítsa meg az összeset

A régi mjpg-streamer cseréje:

pi@málna: ~ $ sudo rm -rf /opt /-j.webp

pi@málna: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental

/opt/mjpg-streamer

pi@málna: ~ $ sudo rm -rf ~/mjpg -streamer

Hozzon létre egy új „start_stream.sh” fájlt, másolja ki és illessze be a csatolt „start_stream.txt” fájlból.

Tegye futtathatóvá (shell parancsfájlok létrehozása):

pi@málna: ~ $ chmod +x start_stream.sh

A Streaming szerver indítása:

pi@málna: ~ $./start_stream.sh

Nyissa meg a webhelyet egy böngészőben a https:// Raspberry_IP: 9000 használatával (cserélje le a Raspberry_IP -t az IP -címére)

7. lépés: TANKPROGRAM

Minden készen áll, most létre kell hoznunk a weboldalunkat a tartály vezérléséhez (index.html), és a webszerverünket, hogy meghallgassa a parancsainkat (webserver.js). Tehát csak cserélje le az eddig látott fájlokat (csak példák a rendszer tesztelésére) a mellékelt webserver.txt és index.txt fájlokra.

8. lépés: INDÍTSA EL A KEZELŐFELÜLETET ÉS A STREAMING SZERVERET

START CONTROL INTERFACE ÉS STREAMING SERVER
START CONTROL INTERFACE ÉS STREAMING SERVER

A szolgáltatások elindításához nyisson meg két terminál ablakot, és futtassa ezeket a parancsokat:

node nodehome/webserver.js

./nodehome/start_stream.sh

Nyissa meg a webhelyet egy böngészőben a https:// Raspberry_IP: 8080 használatával (cserélje le a Raspberry_IP -t az IP -címére)

Ajánlott: