Daftar Isi:

Tangki Raspberry Dengan Antarmuka Web dan Streaming Video: 8 Langkah (dengan Gambar)
Tangki Raspberry Dengan Antarmuka Web dan Streaming Video: 8 Langkah (dengan Gambar)

Video: Tangki Raspberry Dengan Antarmuka Web dan Streaming Video: 8 Langkah (dengan Gambar)

Video: Tangki Raspberry Dengan Antarmuka Web dan Streaming Video: 8 Langkah (dengan Gambar)
Video: Tutorial Internet of Things pada Raspberry PI dan NodeMCU: Part 2 - Sensor, Aktuator, Relay 2024, November
Anonim
Tangki Raspberry Dengan Antarmuka Web dan Streaming Video
Tangki Raspberry Dengan Antarmuka Web dan Streaming Video

Kita akan melihat bagaimana saya menyadari sedikit WiFi Tank, mampu Remote Web Control dan Video Streaming.

Ini dimaksudkan untuk menjadi tutorial yang membutuhkan pengetahuan dasar tentang pemrograman elektronik dan perangkat lunak. Untuk alasan ini saya telah memilih Kit sasis Tank (daripada mencetaknya menggunakan printer 3D, mungkin akan ditingkatkan nanti) dan total 6 komponen termasuk baterai. Di sisi perangkat lunak Anda dapat mengikuti langkah demi langkah proses instalasi dan pemrograman dijaga agar tetap minimum, pengetahuan dasar tentang hal-hal Raspberry dapat membantu.

Saya memperkirakan 12 jam kerja dari 0 hingga tangki siap pakai. Total biaya 70€ untuk semua komponen.

Langkah 1: BOM

BOM
BOM
BOM
BOM
BOM
BOM
BOM
BOM

1 - Tangki Chassis Robot RC DIY - 32 (€)

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

1 - Papan Driver Motor DC Dual Channel L298N - 1, 39 (€)

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

1 - Kit Pemula Raspberry Pi Zero W - 26 (€)

amzn.eu/1ugAaMP

Kartu SD 1 - 16 GB - 5, 50(€)

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

1 - Webcam Modul Kamera Raspberry Pi 5MP untuk Model Nol - 8 (€)

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

1 - Bank Daya 5V

Baterai 1 - 9v

Konektor Dupont Kabel Breadboard Campuran

Mouse, keyboard, Monitor, atau TV untuk pengaturan Raspberry (opsional, hanya untuk mempermudah pengaturan pertama)

Langkah 2: Spesifikasi Komponen Utama

Motor

JGA25-370 DC gearmotor

Motor ini memiliki poros keluaran berbentuk D.

spesifikasi

· Tegangan operasi: antara 6 V dan 18 V

· Tegangan nominal: 12 V

· Kecepatan lari bebas pada 12 V: 399 RPM

· Arus bebas pada 12 V: 50 mA

· Kios saat ini pada 12V: 1200 mA

· Torsi berhenti pada 12V: 2,2 kg.cm

· Rasio gigi: 1:21

· Ukuran reduktor: 19 mm

· Berat: 84 g

Papan Driver Motor DC Dual Channel L298N

Driver motor H-bridge ganda, dapat menggerakkan dua motor DC atau motor stepper dua fase 4-kawat. Built-in TSD, untuk melindungi dari kios motor.

spesifikasi

· Tegangan suplai modul: DC 2V-10V

· Tegangan input sinyal: DC 1.8-7V

· Arus kerja tunggal: 1.5A

· Arus puncak hingga 2.5A

· Arus siaga rendah (kurang dari 0.1uA)

· Sirkuit konduksi umum bawaan, terminal input kosong, motor tidak rusak

· Ukuran: 24,7 x 21 x 7mm

Langkah 3: KABEL

KABEL
KABEL
KABEL
KABEL

Ini akan menjadi pengkabelan terakhir, tapi TUNGGU, sebelum kita perlu menginstal beberapa

perangkat lunak dan merupakan ide bagus untuk mengujinya dengan kabel yang lebih sederhana, jika sudah siap, kembali ke sini.

Kami membutuhkan dua sumber daya yang berbeda, satu untuk motor dan satu untuk Raspberry.

Driver motor Dual Channel L298N DC Motor Driver Board (tegangan input maks DC 2V-10V) ditenagai dengan menggunakan baterai 9V dan Raspberry Pi menggunakan akumulator USB 5V standar.

Pin GND driver motor akan terhubung ke minus baterai dan Raspberry Pi (GND). Pin GPIO dari Raspberry Pi terhubung ke driver motor sebagai tabel.

Langkah 4: MEMPERSIAPKAN RASPBERRY O. S

Ini adalah instalasi standar untuk sistem operasi Raspbian, Anda dapat menemukan

banyak tutorial detail searching di web, pada dasarnya langkah-langkahnya adalah:

1. Unduh iso RASPBIAN STRETCH WITH DESKTOP dari

2. Format SD Card 16 GB, saya sudah menggunakan SD Formatter

3. Burn file. IMG, saya sudah menggunakan Win32DiskImager

Sekarang raspberry Anda siap untuk boot, sambungkan ke sumber daya USB (5V, 2A) dan siapkan untuk pengaturan boot pertama. Anda dapat melakukannya dengan dua cara, menggunakan perangkat eksternal seperti mouse, keyboard dan monitor atau menggunakan PC Anda dan koneksi jarak jauh ke Raspberry. Ada banyak tutorial tentang ini, salah satunya adalah:

Langkah 5: BAGAIMANA MENGONTROL TANGKI WIFI KAMI DENGAN NODE. JS DAN WEBSOCKET. IO

BAGAIMANA MENGONTROL TANGKI WIFI KAMI DENGAN NODE. JS DAN WEBSOCKET. IO
BAGAIMANA MENGONTROL TANGKI WIFI KAMI DENGAN NODE. JS DAN WEBSOCKET. IO

Sekarang kami memiliki instalasi baru dari PC mikro Raspberry kami yang siap untuk menjalankan pekerjaan kami, jadi … apa yang kami gunakan untuk mengeluarkan perintah ke tangki?

Python adalah bahasa yang sangat mudah digunakan yang biasa digunakan untuk menjalankan proyek Rapsberry dan dapat dengan mudah digunakan juga untuk berinteraksi dengan pin input dan output Rapsberry (GPIO)

Tapi, tujuan saya adalah menghubungkan tangki wi-fi saya dari perangkat apa pun (PC, ponsel, tablet …) menggunakan browser web umum dan juga streaming video darinya. Jadi, lupakan Python untuk saat ini, dan mari beralih ke NODE. JS dan SOCKET. IO.

NODE.js

Node.js (https://github.com/nodejs/node/wiki) adalah kerangka kerja server sumber terbuka berdasarkan bahasa js. Karena saya menggunakan Raspberry Pi Zero (CPU ARMv6), kami tidak dapat menggunakan proses instalasi otomatis (dimaksudkan untuk CPU ARMv7) dan kami harus melakukannya secara manual:

Unduh Nodejs secara lokal, (Saya telah menggunakan versi 7.7.2 untuk ARMv6, periksa versi lain di sini

pi@raspberry:~ $wget

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

Setelah selesai, ekstrak file terkompresi:

pi@raspberry:~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz

Salin dan Instal file ke /user/local

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

Tambahkan lokasi tempat kita menginstal nodejs ke path, edit file “.profile”:

pi@raspberry:~ $ nano ~/.profile

Tambahkan baris berikut di akhir file, simpan dan keluar

PATH=$PATH:/usr/local/bin

Hapus file yang diunduh:.

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

pi@raspberry:~ $ rm -r ~/node-v7.7.2-linux-armv6l

Ketik perintah berikut untuk memeriksa instalasi nodejs:

pi@raspberry:~ $ simpul -v

pi@raspberry:~ $npm -v

Anda harus membaca v7.7.2 dan v4.1.2 sebagai tanggapan.

Jika semuanya berjalan dengan baik, buat folder baru untuk meng-host file nodejs Anda:

pi@raspberry:~ $ mkdir nodehome

Pindahkan ke dalam folder baru:

pi@raspberry:~ $ cd nodehome

Instal modul tambahan yang diperlukan untuk mengelola GPIO dengan cara paling dasar, ON dan OFF:

pi@raspberry:~ $npm install onoff

Sekarang saatnya untuk menguji proyek pertama kami "Blink.js", hasilnya akan … LED berkedip

pi@raspberry:~ $ nano blink.js

Rekatkan kode berikut, simpan dan keluar:

var Gpio = membutuhkan('onoff'). Gpio; //sertakan onoff

var LED = Gpio baru(3, 'keluar'); //gunakan GPIO 3

var blinkInterval = setInterval(blinkLED, 250);

// berkedip LED setiap 250ms

function blinkLED() { //fungsi untuk mulai berkedip

jika

(LED.readSync() === 0) { //periksa status pin, apakah statusnya 0 (atau mati)

LED.writeSync(1);

// setel status pin ke 1 (nyalakan LED)

} lain {

LED.writeSync(0);

//set status pin ke 0 (matikan LED)

}

}

function endBlink() { //fungsi untuk berhenti berkedip

clearInterval(interval berkedip); // Hentikan interval kedip

LED.writeSync(0); // Matikan LED

LED.unekspor(); // Batalkan ekspor GPIO ke sumber daya gratis

}

setTimeout(endBlink, 5000); //berhenti berkedip setelah 5 detik

Hubungkan LED, Resistor (200ohm) seperti yang ditunjukkan pada skema dan jalankan proyek:

pi@raspberry:~ $ node blink.js

Node sudah siap.

SOCKET. IO

WebSocket adalah protokol komunikasi komputer, berdasarkan koneksi TCP, menyediakan programmer untuk membuat server dan klien. Klien terhubung ke server dan memancarkan dan menerima pesan ke dan dari server. Implementasi WebSocket untuk Node.js disebut Socket.io (https://socket.io/).

Instal socket.io:

pi@raspberry:~ $npm install socket.io --save

Pindahkan ke dalam rumah nodejs, dibuat sebelumnya:

pi@raspberry:~ $ cd nodehome

Dan buat folder baru "publik":

pi@raspberry:~ $ mkdir publik

Buat sampel web server baru, sebut saja “webserver.js”

pi@raspberry:~ $ nano webserver.js

Rekatkan kode berikut, simpan dan keluar:

var http = membutuhkan('http').createServer(penangan); //memerlukan server http, dan buat server dengan fungsi handler()

var fs = membutuhkan('fs'); //memerlukan modul sistem file

http.listen(8080); // dengarkan port 8080

function handler (req, res) { //buat server

fs.readFile(_dirname + '/public/index.html', function(err, data) { //read

file index.html di folder publik

jika (salah) {

res.writeHead(404, {'Tipe-Konten': 'teks/html'}); //tampilkan 404 pada kesalahan

kembali res.end( 404 Tidak

Ditemukan );

}

res.writeHead(200, {'Tipe-Konten': 'teks/html'}); //tulis HTML

res.write(data); //tulis data

dari index.html

kembali res.end();

});

}

Server web ini akan mendengarkan port Raspberry 8080 Anda dan menyediakan file sto ke klien web mana pun yang menghubungkannya. Sekarang kita perlu membuat sesuatu untuk di-host dan diberikan kepada klien kita: Pindah ke dalam folder "publik": pi@raspberry:~ $ cd public

Buat file html baru “index.html”:

pi@raspberry:~ $ nano index.html

Tempel kode dari "HelloWorld.txt" terlampir, simpan dan keluar.

Pindahkan ke dalam folder nodejs "nodehome":

pi@raspberry:~ $ cd nodehome

Mulai server web

pi@raspberry:~ $ node webserver.js

Buka website di browser menggunakan https://Raspberry_IP:8080/ (ganti Raspberry_IP dengan IP Anda)

Langkah 6: MENAMBAHKAN KEMAMPUAN STREAMING VIDEO

Ada berbagai cara untuk mengimplementasikan streaming video di Raspberry, paling mudah

cara yang saya temukan sampai sekarang, bahwa sebagai kinerja hebat dan dapat diintegrasikan dalam antarmuka web didasarkan pada proyek dari Miguel Mota:

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

Terima kasih Miguel! Dari blognya ini langkah-langkahnya:

Instal komponen libjpeg8 dan cmake:

pi@raspberry:~ $ sudo apt-get install libjpeg8

pi@raspberry:~ $ sudo apt-get install libjpeg8-dev

pi@raspberry:~ $ sudo apt-get install cmake

Unduh mjpg-streamer dengan plugin raspicam:

pi@raspberry:~ $ git clone

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

Ubah direktori:

pi@raspberry:~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental

Menyusun:

pi@raspberry:~ $ bersihkan semua

Ganti mjpg-streamer lama:

pi@raspberry:~ $ sudo rm -rf /opt/mjpg-streamer

pi@raspberry:~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental

/opt/mjpg-streamer

pi@raspberry:~ $ sudo rm -rf ~/mjpg-streamer

Buat file "start_stream.sh" baru, salin dan tempel dari file "start_stream.txt" terlampir.

Jadikan itu dapat dieksekusi (buat skrip Shell):

pi@raspberry:~ $ chmod +x start_stream.sh

Mulai server Streaming:

pi@raspberry:~ $./start_stream.sh

Buka website di browser menggunakan https://Raspberry_IP:9000 (ganti Raspberry_IP dengan IP Anda)

Langkah 7: PROGRAM TANGKI

Semuanya sudah siap, sekarang kita harus membuat halaman web kita untuk mengontrol tangki (index.html) dan server web kita untuk mendengarkan perintah kita (webserver.js). Jadi, ganti saja file yang terlihat sampai sekarang (hanya contoh untuk menguji sistem) dengan webserver.txt dan index.txt terlampir.

Langkah 8: MULAI ANTARMUKA KONTROL DAN SERVER STREAMING

MULAI ANTARMUKA KONTROL DAN SERVER STREAMING
MULAI ANTARMUKA KONTROL DAN SERVER STREAMING

Untuk memulai layanan, buka dua jendela terminal dan jalankan perintah ini:

simpul nodehome/server web.js

./nodehome/start_stream.sh

Buka website di browser menggunakan https://Raspberry_IP:8080 (ganti Raspberry_IP dengan IP Anda)

Direkomendasikan: