جدول المحتويات:

Raspberry Tank بواجهة ويب وتدفق الفيديو: 8 خطوات (بالصور)
Raspberry Tank بواجهة ويب وتدفق الفيديو: 8 خطوات (بالصور)

فيديو: Raspberry Tank بواجهة ويب وتدفق الفيديو: 8 خطوات (بالصور)

فيديو: Raspberry Tank بواجهة ويب وتدفق الفيديو: 8 خطوات (بالصور)
فيديو: ESP32-CAM - Guide to making YOUR first DIY Security Camera 2024, شهر نوفمبر
Anonim
تانك التوت مع واجهة ويب وتدفق الفيديو
تانك التوت مع واجهة ويب وتدفق الفيديو

سنرى كيف أدركت خزان WiFi صغيرًا ، قادرًا على التحكم في الويب عن بُعد وبث الفيديو.

الغرض من هذا أن يكون تعليميًا يتطلب معرفة أساسية بالبرمجة الإلكترونية والبرمجيات. لهذا السبب ، اخترت مجموعة هيكل الخزان (بدلاً من طباعتها باستخدام طابعة ثلاثية الأبعاد ، قد تكون ترقية لاحقًا) وما مجموعه 6 مكونات بما في ذلك البطاريات. على جانب البرنامج ، يمكنك اتباع عملية التثبيت خطوة بخطوة ويتم الاحتفاظ بالبرمجة على الأقل ، ويمكن أن تساعد المعرفة الأساسية بأشياء Raspberry.

لقد قدرت 12 ساعة من العمل من 0 إلى الخزان الجاهز للتشغيل. التكلفة الإجمالية 70 يورو لجميع المكونات.

الخطوة 1: BOM

BOM
BOM
BOM
BOM
BOM
BOM
BOM
BOM

1 - خزان هيكل روبوت RC DIY - 32 (€)

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

1 - ثنائي القناة 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

بطاقة SD من 1 إلى 16 جيجابايت - 5 ، 50 (يورو)

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

1 - كاميرا ويب وحدة كاميرا Raspberry Pi 5MP للطراز Zero - 8 (€)

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

1 - باور بانك 5 فولت

1- بطارية 9 فولت

كابل اللوح المختلط دوبونت موصل

الماوس أو لوحة المفاتيح أو الشاشة أو التلفزيون لإعداد Raspberry (اختياري ، فقط لجعل الإعداد الأول أسهل)

الخطوة 2: مواصفات المكونات الرئيسية

محرك

JGA25-370 DC محرك التروس

يتميز هذا المحرك بعمود إخراج على شكل حرف D.

تحديد

· جهد التشغيل: بين 6 فولت و 18 فولت

· الجهد الاسمي: 12 فولت

سرعة التشغيل الحر عند 12 فولت: 399 لفة في الدقيقة

تيار التشغيل الحر عند 12 فولت: 50 مللي أمبير

تيار المماطلة عند 12 فولت: 1200 مللي أمبير

· عزم الكشك عند 12 فولت: 2.2 كجم. سم

نسبة التروس: 1:21

· حجم المخفض: 19 مم

الوزن: 84 جم

لوحة تشغيل محرك ثنائي القناة L298N DC

محرك محرك جسر H مزدوج ، يمكنه قيادة محركين DC أو محركات متدرجة ثنائية الطور بأربعة أسلاك. مدمج TSD ، للحماية من كشك المحرك.

تحديد

· جهد إمداد الوحدة النمطية: DC 2V-10V

· جهد دخل الإشارة: DC 1.8-7V

العمل الحالي: 1.5A

تيار الذروة يصل إلى 2.5A

· تيار الاستعداد المنخفض (أقل من 0.1uA)

· دائرة التوصيل المشتركة المدمجة ، طرف الإدخال شاغر ، المحرك لا يعطل

الحجم: 24.7 × 21 × 7 ملم

الخطوة 3: الأسلاك

الأسلاك
الأسلاك
الأسلاك
الأسلاك

سيكون هذا هو الأسلاك النهائية ، ولكن انتظر ، قبل أن نحتاج إلى تثبيت البعض

البرنامج وإنها لفكرة جيدة أن تختبرها بأسلاك أبسط ، عندما تكون جاهزة ، تعود هنا مرة أخرى.

نحتاج إلى مصدرين مختلفين للطاقة ، أحدهما للمحرك والآخر لتوت العليق.

يتم تشغيل المحرك ثنائي القناة L298N DC Motor Driver Board (الحد الأقصى لجهد الإدخال DC 2V-10V) باستخدام بطارية 9 فولت ويستخدم Raspberry Pi معايير 5V USB المركب.

سيتم توصيل دبوس GND الخاص بسائق المحرك بالبطارية ناقصًا و Raspberry Pi (GND). يتم توصيل دبابيس GPIO الخاصة بـ Raspberry Pi بسائق المحرك كجدول.

الخطوة 4: تحضير RASPBERRY O. S

هذا تثبيت قياسي لنظام التشغيل Raspbian ، يمكنك أن تجده

الكثير من البرامج التعليمية التفصيلية التي تبحث في الويب ، والخطوات هي في الأساس:

1. قم بتنزيل iso RASPBIAN STRETCH WITH DESKTOP من

2. تنسيق بطاقة SD سعة 16 جيجابايت ، لقد استخدمت SD Formatter

3. نسخ ملف. IMG ، لقد استخدمت Win32DiskImager

الآن أصبح التوت جاهزًا للتمهيد ، وقم بتوصيله بمصدر طاقة USB (5 فولت ، 2 أمبير) واستعد لإعداد التمهيد الأول. يمكنك القيام بذلك بطريقتين ، باستخدام أجهزة خارجية مثل الماوس ولوحة المفاتيح والشاشة أو باستخدام جهاز الكمبيوتر الخاص بك والاتصال عن بُعد بـ Raspberry. هناك الكثير من البرامج التعليمية حول هذا الموضوع ، أحدها:

الخطوة 5: كيفية التحكم في خزان WIFI الخاص بنا باستخدام NODE. JS و WEBSOCKET. IO

كيفية التحكم في خزان WIFI الخاص بنا باستخدام NODE. JS و WEBSOCKET. IO
كيفية التحكم في خزان WIFI الخاص بنا باستخدام NODE. JS و WEBSOCKET. IO

الآن لدينا تثبيت جديد لجهاز Raspberry micro PC جاهز لتشغيل مهمتنا ، لذا … ما الذي نستخدمه لإصدار الأوامر إلى الخزان؟

لغة Python هي لغة سهلة الاستخدام جدًا تُستخدم عادةً لتشغيل مشروع Rapsberry ويمكن بسهولة استخدامها أيضًا للتفاعل مع دبابيس إدخال وإخراج Rapsberry (GPIO) https://www.raspberrypi.org/documentation/usage/p …

ولكن ، كان هدفي هو توصيل جهاز wi-fi الخاص بي من أي جهاز (كمبيوتر شخصي ، هاتف محمول ، جهاز لوحي …) باستخدام متصفح ويب شائع ودفق الفيديو منه أيضًا. لذا ، انسَ لغة Python الآن ، ودعنا ننتقل إلى NODE. JS و SOCKET. IO.

NODE.js

Node.js (https://github.com/nodejs/node/wiki) هو إطار عمل خادم مفتوح المصدر يعتمد على لغة js. نظرًا لأنني أستخدم Raspberry Pi Zero (ARMv6 CPU) ، لا يمكننا استخدام عملية التثبيت التلقائي (المخصصة لوحدة المعالجة المركزية ARMv7) ونحتاج إلى القيام بذلك يدويًا:

قم بتنزيل Nodejs محليًا ، (لقد استخدمت إصدار 7.7.2 لـ ARMv6 ، تحقق من الإصدارات الأخرى هنا

بي @ التوت: ~ $ wget

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

بمجرد الانتهاء من ذلك ، قم باستخراج الملف المضغوط:

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

قم بنسخ الملفات وتثبيتها في / user / local

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

أضف الموقع حيث نقوم بتثبيت nodejs إلى المسار ، قم بتحرير ملف ".profile":

pi @ raspberry: ~ $ nano ~ /.profile

أضف السطر التالي في نهاية الملف واحفظه واخرج منه

PATH = $ PATH: / usr / local / bin

قم بإزالة الملف الذي تم تنزيله:.

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

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

اكتب الأوامر التالية للتحقق من تثبيت nodejs:

pi @ raspberry: ~ $ node -v

pi @ raspberry: ~ $ npm -v

يجب أن تقرأ v7.7.2 و v4.1.2 كرد.

إذا سارت الأمور على ما يرام ، فأنشئ مجلدًا جديدًا لاستضافة ملفات nodejs الخاصة بك:

pi @ raspberry: ~ $ mkdir nodehome

التنقل داخل مجلد جديد:

pi @ raspberry: ~ $ cd nodehome

قم بتثبيت وحدة إضافية مطلوبة لإدارة GPIO بأبسط الطرق ، تشغيل وإيقاف:

pi @ raspberry: ~ npm $ للتثبيت onoff

حان الوقت الآن لاختبار مشروعنا الأول "Blink.js" ، وستكون النتيجة… وميض LED

pi @ raspberry: ~ $ nano blink.js

الصق التعليمات البرمجية التالية ، احفظها واخرج منها:

var Gpio = يتطلب ('onoff'). Gpio؛ // تضمين onoff

var LED = Gpio جديد (3 ، 'out') ؛ // استخدم GPIO 3

var blinkInterval = setInterval (blinkLED، 250) ؛

// وميض LED كل 250 مللي ثانية

الدالة blinkLED () {// وظيفة لبدء الوميض

لو

(LED.readSync () === 0) {// تحقق من حالة الدبوس ، إذا كانت الحالة 0 (أو متوقفة)

LED.writeSync (1) ؛

// ضبط حالة الدبوس على 1 (تشغيل LED)

} آخر {

LED.writeSync (0) ؛

// ضبط حالة الدبوس على 0 (إيقاف تشغيل LED)

}

}

function endBlink () {// وظيفة لإيقاف الوميض

clearInterval (blinkInterval) ؛ // إيقاف فترات الوميض

LED.writeSync (0) ؛ // إيقاف تشغيل LED

LED.unexport () ؛ // Unexport GPIO لتحرير الموارد

}

setTimeout (endBlink ،

5000) ؛ // توقف عن الوميض بعد 5 ثوانٍ

قم بتوصيل LED ، المقاوم (200 أوم) كما هو موضح في المخطط وقم بتشغيل المشروع:

pi @ raspberry: ~ $ node blink.js

العقدة جاهزة.

مقبس

WebSocket هو بروتوكول اتصالات كمبيوتر ، يعتمد على اتصال TCP ، ويوفر مبرمجًا لإنشاء خادم وعميل. يتصل العميل بالخادم ويقوم بإرسال واستقبال الرسائل من وإلى الخادم. يُطلق على تطبيق WebSocket لـ Node.js اسم Socket.io (https://socket.io/).

تثبيت socket.io:

pi @ raspberry: ~ $ npm قم بتثبيت socket.io - حفظ

التحرك داخل منزل nodejs ، الذي تم إنشاؤه مسبقًا:

pi @ raspberry: ~ $ cd nodehome

وأنشئ مجلدًا جديدًا "عام":

pi @ raspberry: ~ $ mkdir للجمهور

إنشاء نموذج خادم ويب جديد ، أطلق عليه اسم "webserver.js"

pi @ raspberry: ~ nano webserver.js

الصق التعليمات البرمجية التالية ، احفظها واخرج منها:

var http = يتطلب ('http'). createServer (معالج) ؛ // تتطلب خادم HTTP ، وأنشئ خادمًا باستخدام معالج الوظيفة ()

var fs = تتطلب ('fs') ؛ // تتطلب وحدة نظام الملفات

http.listen (8080) ، // استمع إلى المنفذ 8080

معالج الوظيفة (مطلوب ، الدقة) {// إنشاء الخادم

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

ملف index.html في المجلد العام

إذا (يخطئ) {

res.writeHead (404 ،

{'نوع المحتوى': 'text / html'}) ؛ // عرض 404 عند الخطأ

عودة res.end ( 404 لا

وجد )؛

}

res.writeHead (200 ،

{'نوع المحتوى': 'text / html'}) ؛ // اكتب HTML

res.write (البيانات) ؛ // كتابة البيانات

من index.html

عودة res.end () ؛

});

}

سيستمع خادم الويب هذا إلى منفذ Raspberry 8080 الخاص بك ويوفر ملف تخزين لأي عميل ويب متصل به. نحتاج الآن إلى إنشاء شيء لاستضافته وتقديمه لعملائنا: الانتقال داخل المجلد "العام": pi @ raspberry: ~ $ cd public

إنشاء ملف html جديد "index.html":

pi @ raspberry: ~ $ nano index.html

الصق الكود من الملف المرفق "HelloWorld.txt" ، احفظه واخرج.

التحرك داخل مجلد nodejs "nodehome":

pi @ raspberry: ~ $ cd nodehome

بدء خادم الويب

pi @ raspberry: ~ $ node webserver.js

افتح موقع الويب في متصفح باستخدام https:// Raspberry_IP: 8080 / (استبدل Raspberry_IP بـ IP الخاص بك)

الخطوة 6: إضافة قدرة دفق الفيديو

هناك طريقة مختلفة لتنفيذ دفق الفيديو على Raspberry ، أسهل

بالطريقة التي اكتشفتها حتى الآن ، أن الأداء الرائع ويمكن دمجه في واجهة الويب هو أساس المشروع من Miguel Mota:

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

ميغيل شكرا! هذه هي الخطوات من مدونته:

تثبيت المكونات libjpeg8 و cmake:

pi @ raspberry: ~ sudo apt-get install libjpeg8

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

pi @ raspberry: ~ sudo apt-get install cmake

تنزيل mjpg-Streamer مع البرنامج المساعد raspicam:

pi @ raspberry: ~ $ git clone

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

تغيير الدليل:

pi @ raspberry: ~ $ cd ~ / mjpg-streamer / mjpg-streamer-تجريبي

تجميع:

بي @ التوت: ~ $ تنظيف كل شيء

استبدال mjpg-streamer القديم:

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

pi @ raspberry: ~ $ sudo mv ~ / mjpg-streamer / mjpg-streamer-تجريبي

/ opt / mjpg-streamer

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

قم بإنشاء ملف "start_stream.sh" جديد ، انسخه والصقه من ملف "start_stream.txt" المرفق.

اجعله قابلاً للتنفيذ (إنشاء برامج نصية للقذيفة):

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

بدء تشغيل الخادم:

pi @ raspberry: ~ $./start_stream.sh

افتح موقع الويب في متصفح باستخدام https:// Raspberry_IP: 9000 (استبدل Raspberry_IP بـ IP الخاص بك)

الخطوة 7: برنامج الخزان

كل شيء جاهز ، الآن علينا إنشاء صفحة الويب الخاصة بنا للتحكم في الخزان (index.html) وخادم الويب الخاص بنا للاستماع إلى أوامرنا (webserver.js). لذلك ، ما عليك سوى استبدال الملفات التي تمت مشاهدتها حتى الآن (مجرد أمثلة لاختبار النظام) مع webserver.txt و index.txt المرفقين.

الخطوة 8: بدء واجهة التحكم وخادم البث

بدء واجهة التحكم وخادم التدفق
بدء واجهة التحكم وخادم التدفق

لبدء الخدمات ، افتح نافذتين طرفيتين وقم بتشغيل هذه الأوامر:

عقدة nodehome / webserver.js

./nodehome/start_stream.sh

افتح موقع الويب في متصفح باستخدام https:// Raspberry_IP: 8080 (استبدل Raspberry_IP بـ IP الخاص بك)

موصى به: