جدول المحتويات:
- الخطوة 1: BOM
- الخطوة 2: مواصفات المكونات الرئيسية
- الخطوة 3: الأسلاك
- الخطوة 4: تحضير RASPBERRY O.S
- الخطوة 5: كيفية التحكم في خزان WIFI الخاص بنا باستخدام NODE.JS و WEBSOCKET.IO
- الخطوة 6: إضافة قدرة دفق الفيديو
- الخطوة 7: برنامج الخزان
- الخطوة 8: بدء واجهة التحكم وخادم البث
فيديو: Raspberry Tank بواجهة ويب وتدفق الفيديو: 8 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
سنرى كيف أدركت خزان WiFi صغيرًا ، قادرًا على التحكم في الويب عن بُعد وبث الفيديو.
الغرض من هذا أن يكون تعليميًا يتطلب معرفة أساسية بالبرمجة الإلكترونية والبرمجيات. لهذا السبب ، اخترت مجموعة هيكل الخزان (بدلاً من طباعتها باستخدام طابعة ثلاثية الأبعاد ، قد تكون ترقية لاحقًا) وما مجموعه 6 مكونات بما في ذلك البطاريات. على جانب البرنامج ، يمكنك اتباع عملية التثبيت خطوة بخطوة ويتم الاحتفاظ بالبرمجة على الأقل ، ويمكن أن تساعد المعرفة الأساسية بأشياء Raspberry.
لقد قدرت 12 ساعة من العمل من 0 إلى الخزان الجاهز للتشغيل. التكلفة الإجمالية 70 يورو لجميع المكونات.
الخطوة 1: 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
الآن لدينا تثبيت جديد لجهاز 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 الخاص بك)
موصى به:
كيفية عمل برنامج تشغيل ثابت لشاشة LCD بواجهة I²C: 12 خطوة
كيفية عمل برنامج تشغيل LCD ثابت بواجهة I²C: تُستخدم شاشات الكريستال السائل (LCD) على نطاق واسع للتطبيقات التجارية والصناعية نظرًا لخصائصها المرئية الجيدة وتكلفتها المنخفضة واستهلاكها المنخفض للطاقة. تجعل هذه الخصائص شاشة LCD الحل القياسي للأجهزة التي تعمل بالبطاريات ،
أتمتة ESP8266 بواجهة الويب و DDNS: 8 خطوات
أتمتة ESP8266 بواجهة الويب و DDNS: في مقال اليوم ، سنعرض أتمتة ، والتي يمكن أن تكون سكنية ، باستخدام ميزة DDNS (نظام اسم المجال الديناميكي). سوف تفهم كيفية تكوين التطبيق الذي ستضعه على ESP8266 ، على NodeMCU. سنرى أيضًا كيف
بث الصوت وتدفق الفيديو باستخدام Raspberry Pi 3: 6 خطوات
البث الصوتي وتدفق الفيديو باستخدام Raspberry Pi 3: الأداة الرئيسية لهذا المشروع هي بث الصوت إلى Raspberry Pi 3 من أي جهاز متصل بشبكة WiFi العامة والحصول على فيديو من Raspberry Pi 3 إلى أي جهاز متصل بشبكة WiFi مشتركة
كيفية استخدام كاميرا الفيديو الخاصة بك ككاميرا ويب: 4 خطوات
كيفية استخدام كاميرا الفيديو الخاصة بك ككاميرا ويب: إذا كنت مثلي ، فلديك الكثير من الأصدقاء الذين انتقلوا بعيدًا عن المنزل ، ويعيشون على بعد آلاف الكيلومترات ، أو لديك أصدقاء ذهبت إلى الجامعة معهم ويعيشون جميعًا فيها أماكن مختلفة. أنا شخصياً أكره الهواتف والمعلومات الإضافية
30 دولار نظام مراقبة بواجهة مستخدم: 7 خطوات
30 دولار نظام مراقبة بواجهة مستخدم: نظام مراقبة رخيص للغاية وسهل الاستخدام. ليس عليك أن تكون أي نوع من علماء الصواريخ للقيام بذلك. من المحتمل أن يتم العثور على جميع الأجزاء المطلوبة من متجر الأجهزة المحلي. ستحتاج فقط إلى قضيبين زاويتين ، محركين مؤازرين ، cou