بناء محطة راديو باستخدام الراسبيري باي

مقدمة

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

raspberry-pi-internet-radio-and-streaming-station

المواد والأدوات

محطة راديو

 1× راسبيري باي

محطة راديو

 1× سلك (HDMI)

محطة راديو

1× سلك ايثرنت

محطة راديو

1× محول تيار (5V-2A)

محطة راديو

 1× كرت ذاكرة

محطة راديو

1× مايكروفون

محطة راديو

1× مكبر صوت

توصيل القطع

وصّل المايكروفون مع لوحة الراسبيري باي كما في الشكل.

raspberry-pi-internet-radio-and-streaming-station

وصّل مكبر الصوت مع لوحة الراسبيري باي كما في الشكل.

raspberry-pi-internet-radio-and-streaming-station

تهيئة الراسبيري باي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

raspberry-pi-internet-radio-and-streaming-station

للبدء، قم بإستخدام الـ Termial لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي.

reboot

بالبداية سنحتاج إلى تحميل حزمة (darkice) و التي تساعدنا على تشفير الصوت إلى ملفات صوتية وذلك من خلال الأوامر التالية

wget https://github.com/x20mar/darkice-with-mp3-for-raspberry-pi/blob/master/darkice_1.0.1-999~mp3+1_armhf.deb?raw=true
mv darkice_1.0.1-999~mp3+1_armhf.deb?raw=true darkice_1.0.1-999~mp3+1_armhf.deb
sudo apt-get install libmp3lame0 libtwolame0
sudo dpkg -i darkice_1.0.1-999~mp3+1_armhf.deb

 نحتاج إلى تحميل icecast2 و الذي يعد خادم لبث الملفات الصوتية، حيث يعمل على بث موجات الصوت التي تم استلامها من darkice.

sudo apt-get install icecast2

بعد إدخال هذا الأمر، ستظهر نافذة التحقق إذا كنت تريد تكوين Icecast2. حدد نعم (كما هو موضح أدناه).

raspberry-pi-internet-radio-and-streaming-station

بعد ذلك ، حدد “موافق” لاستخدام اسم المضيف الافتراضي “localhost”. اضغط على موافق على الإعدادات (كما هو موضح أدناه).

raspberry-pi-internet-radio-and-streaming-station

تظهر كلمة المرور الافتراضية hackme انقر على ok.

raspberry-pi-internet-radio-and-streaming-station

أنشئ ملف darkice.cfg.

sudo nano darkice.cfg

الصق الملف التالي في ملف darkice.cfg.

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected
 
[input]
device          = plughw:1,0 # Soundcard device for the audio input
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo
 
[icecast2-0]
bitrateMode     = cbr       # constant bit rate ('cbr' constant, 'abr' average)
#quality         = 1.0       # 1.0 is best quality (use only with vbr)
format          = mp3       # format. Choose 'vorbis' for OGG Vorbis
bitrate         = 320       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password for the IceCast2 server
mountPoint      = rapi.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = Raspberry Pi

انقر على crtl + x لحفظ الملف.

ثم انقر على حرف y.

ثم انقر Enter.

أنشئ ملف آخر باسم darkice.sh.

sudo nano darkice.sh

الصق الأمر التالي في ملف darkice.sh.

#!/bin/bash
sudo /usr/bin/darkice -c /home/pi/darkice.cfg

لجعل الملف darkice.sh قابلًا للتنفيذ ادخل الأمر التالي.

sudo chmod 777 /home/pi/darkice.sh

لبدء خدمة icecast2 ادخل الأوامر التالية.

sudo service icecast2 start
sudo chmod 777 /home/pi/darkice.sh
sudo service icecast2 start

ادخل الأمر التالي.

select-editor

من القائمة اختر الخيار الذي يحتوي على nano هنا يظهر رقم 1.

raspberry-pi-internet-radio-and-streaming-station

ادخل الأمر لتحرير الملف.

crontab -e

في نهاية الملف الصق هذا الأمر.

@reboot sleep 10 && sudo /home/pi/darkice.sh

انقر على Crtl + x لحفظ الملف.

ثم انقر على حرف y.

ثم انقر Enter.

أعد تشغيل الراسبيري باي.

reboot

ادخل الأمر التالي لبدء تنفيذ أوامر محطة الراديو.

./darkice.sh

raspberry-pi-internet-radio-and-streaming-station

اكتب الأمر التالي ثم انسخ عنوان الشبكة ستحتاج إليه في الخطوة التالية.

ifconfig

من المتصفح اكتب في مربع البحث و غيّر عنوان الشبكة وضع العنوان الخاص بك.

http://192.168.100.14:8000/

انقر على Administration وادخل البيانات التالية:

اسم المستخدم: localhost

كلمة المرور: hackme

انقر على Mountpoint List.

ستظهر لك هذه الصفحة مباشرة انقر على M3U سيبدأ ملف الصوت بالتحميل على جهازك.

raspberry-pi-internet-radio-and-streaming-station

شغل الصوت بأي مشغل تفضل استخدامه هنا استخدمنا VLC.

raspberry-pi-internet-radio-and-streaming-station

جرّب إرسال صوتك باستخدام المايكروفون.

تأكد بأن النظام يعمل بالشكل الصحيح.

لا تنسَ فصل وحدة الطاقة بعد الانتهاء من استخدام محطة راديو باستخدام الراسبيري باي.

 




كاميرا مراقبة تنقل الصور لتيليجرام باستخدام الراسبيري باي

مقدمة

تستخدم كاميرات المراقبة لمتابعة نشاط الأطفال داخل المنزل في ظل غياب الوالدين أو مراقبة المسابح الداخلية خشية وصول من لا يعرف السباحة فيها أو لحماية المنازل ومكاتب العمل من التعديات والسرقة، في هذا الدرس ستتعلم كيف تصنع كاميرا مراقبة ذكية تنقل الصور لتيليجرام باستخدام الراسبيري باي.

كاميرا مراقبة ذكية

المواد والأدوات

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

 1× راسبيري باي

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

 1× سلك (HDMI)

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

1× محول تيار (5V-2A)

كاميرا مراقبة ذكية

 1× كرت ذاكرة

كاميرا مراقبة ذكية

1× سلك ايثرنت

كاميرا مراقبة ذكية

1×  كاميرا للراسبري باي (raspberry pi camera module) أو USB webcam

توصيل الدائرة

وصل الكاميرا مع الراسبيري باي كما هو ظاهر في الشكل التالي.

كاميرا مراقبة ذكية

إنشاء بوت على التيليجرام

عليك بالبداية تنصيب برنامج التيليجرام على هاتفك أو أي جهاز لوحي تفضله Telegram.

بعد تنصيبه سجل اسمك وبياناتك ورقم هاتفك كما هو معتاد.

أنشئ بوت باسم (Geeksvalley) يتم إرسال أوامر التشغيل والاطفاء عليه بالخطوات التالية:

بالبداية تحتاج بوت BotFather الرسمي الخاص بالتيليجرام اكتب في صفحة البحث BotFather.

التحكم بالمصابيح

بعد ذلك اكتب رسالة start/ سيرد عليك برسالة تحتوي على جميع الأوامر التي يستطيع تنفيذها البوت.

التحكم بالمصابيح

لإنشاء بوت جديد أرسل newbot/.

سيرد عليك البوت برسالة تطلب منك تسمية البوت الذي قمت بإنشائه في هذا الدرس تمت تسميته GeeksValley.

سيرد عليك البوت برسالة تطلب منك تحديد اسم المستخدم للبوت وبنهاية اسم المستخدم اكتب bot_.

هنا اسم المستخدم GeeksValley_bot.

سيتم  إرسال رسالة بأنه تم انشاء البوت ويتضمن رابط HTTP API احفظ الرابط ستستخدمه عند كتابة كود المشروع على الراسبيري باي.

التحكم بالمصابيح

تهيئة الراسبيري باي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

كاميرا مراقبة ذكية

للبدء، قم بإستخدام الـ Termial  لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي.

reboot

حمّل البايثون على الراسبيري باي.

sudo apt install python3 idle3

بعد ذلك حمّل Telepot حتى تتمكن من تكوين جسر تواصل مع برنامج التيليجرام.

sudo pip install telepot

تفعيل الكاميرا على الراسبيري باي

من القائمة الرئيسية انقر على Preferences ثم اختر Raspberry Pi Configuration.

Raspberry Pi Configuration Tool

في أعلى الصفحة انقر على Interfaces مقابل Camera انقر على Enabled حتى تتمكن من تفعيلها.

Camera enabled

أعد تشغيل الراسبيري باي.

الكود البرمجي

ستشاهد في قائمة Programming وجود برنامج جديد وهو Python 3 (IDLE) انقر عليه.

كاميرا مراقبة ذكية

 من قائمة File اختر  New File.

انسخ الكود التالي والصقه بالملف الفارغ لكن هناك أمور مهمة عليك العمل بها قبل رفع الكود البرمجي إلى الراسبيري باي.

import telepot 
import time 
import os 
from picamera import PiCamera 

path=os.getenv("HOME") 

# Handling message from Telegram 
def handleMessage(msg): 
    id = msg['chat']['id']; 
    command = msg['text']; 
    print ('Command ' + command + ' from chat id' + str(id));
 if (command == '/photo'): 
    print ("Taking picture…");
 
# Initialize the camera  
camera = PiCamera(); 
camera.start_preview() 
camera.capture(path + '/pic.jpg',resize=(640,480)) 
time.sleep(2) 
camera.stop_preview() 
camera.close() 
# Sending picture  
bot.sendPhoto(id, open(path + '/pic.jpg', 'rb')) 

else: 
    bot.sendMessage(id, "Command not found..") 
    bot = telepot.Bot('your_bot_id'); 
    bot.message_loop(handleMessage); 
    print ("Listening to bot messages…."); 
while 1: 
    time.sleep(10);

شرح الكود البرمجي

هنا نستعدي المكتبات الضرورية للنظام مثل time, os و PiCamera  و telepot.

import telepot 
import time 
import os 
from picamera import PiCamera

في هذا الأمر يمكن الحصول على مسار أو موقع HOME.

path=os.getenv("HOME") 

بعد ذلك يستطيع المستخدم التحكم بالكاميرا وذلك بإدخال الأوامر في برنامج التيليجرام.

يقوم المستخدم بكتابة الأمر photo/ حتى يتمكن من التقاط الصور الحية وبعد ذلك سينطبع الأمر على الشاشة:

…Taking picture

# Handling message from Telegram 
def handleMessage(msg): 
    id = msg['chat']['id']; 
    command = msg['text']; 
    print ('Command ' + command + ' from chat id' + str(id));
 if (command == '/photo'): 
    print ("Taking picture…");

هنا سيتم تهيئة الكاميرا لالتقاط الصور وتعيين مقاسات خاصة لهذه الصور.

# Initialize the camera  
camera = PiCamera(); 
camera.start_preview() 
camera.capture(path + '/pic.jpg',resize=(640,480)) 
time.sleep(2) 
camera.stop_preview() 
camera.close()

في هذا الأمر سيتم تكوين جسر تواصل مع التيليجرام حتى يتم إرسال الصور الحية إليه.

# Sending picture  
bot.sendPhoto(id, open(path + '/pic.jpg', 'rb'))

في حالة كتب المستخدم أمر غير الأمر photo/ ستظهر له رسالة “Command not found” بمعنى أن الأمر غير موجود.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

bot.sendMessage(id, "Command not found..")

هذا السطر مهم وحساس للغاية عليك كتابة HTTP API الخاص بالبوت الذي قمت بإنشائه.

;(‘الصق HTTP API’) bot = telepot.Bot

bot = telepot.Bot('your_bot_id'); 

الرسالة التي ستظهر مباشرة بعد رفع الكود البرمجي هي “Listening to bot messages” بمعنى أن الراسبيري باي سيستجيب ويتفاعل مع الرسائل المرسلة من قبل التيليجرام.

bot.message_loop(handleMessage); 
print ("Listening to bot messages….");

احفظ الملف camera بالمسار الافتراضي.

يمكنك الآن رفع الكود البرمجي من قائمة Run اختر Run module.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

سيكون هناك رسالة مفادها بأن الراسبيري باي سيأخذ الأوامر من التيليجرام لتنفيذها.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

سيبدأ النظام بالعمل مباشرة يمكنك إرسال photo/ من التيليجرام وستلاحظ أنها مطابقة لمخرجات الشاشة.

cctv-send-photo-to-iot-telegram-bot-using-raspberry-pi

لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام النظام.

 




استخدم الراسبيري باي لتحويل شاشتك إلى شاشة ذكية

مقدمة

تختلف الشاشات العادية عن الشاشات الذكية بقدراتها المحدودة حيث إن الشاشة العادية تستخدم لعرض القنوات التي يستقبلها جهاز الاستقبال لديك، أو أن توصلها بذاكرة خارجية لعرض الصور ومقاطع الفيديو، أما الشاشة الذكية يمكن استخدامها لتصفح الإنترنت أو مشاهدة اليوتيوب ويكون التحكم بها عن طريق جهازك المحمول، في هذا الدرس استخدم الراسبيري باي لتحويل شاشتك إلى شاشة ذكية.

شاشة ذكية

المواد والأدوات

النظام الأمني

 راسبيري باي (Raspberry Pi 4)

النظام الأمني

 1× سلك (HDMI)

1× محول تيار

واجهة مستخدم

 1× كرت ذاكرة

سلك ايثرنت - الراسبيري باي

1× سلك ايثرنت

صور وفيديوهات جهازك المحمول

1× جهاز محمول بنظام اندرويد

تهيئة الراسبيري باي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالاطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء بإعداد نقطة وصول لاسلكية باستخدام الراسبيري باي.

شاشة ذكية

للبدء، قم بإستخدام الـ Termial  لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي.

reboot

حمّل الحزمة التالية والتي تتضمن مكتبات مهمة لتشغيل صيغ الصور PNG و JPGE .

sudo apt-get install libjpeg8-dev libpng12-dev

يستخدم المشغل OpenMax لعرض الصور، سنقوم بتحميل المشغل من خلال الأمر التالي.

git clone https://github.com/HaarigerHarald/omxiv

في هذا الأمر سندخل للمجلد cmxiv.

cd omxiv
اكتب الأوامر بالأسطر التالية
make ilclient
make -j4
sudo make install

اكتب الأمر التالي لمعرفة عنوان IP الخاص بلوحة الراسبيري باي.

ifconfig

انسخ عنوان IP ستحتاج إليه في قسم تهيئة الجهاز المحمول.

شاشة ذكية

تهيئة الجهاز المحمول

هذ الخاصية تعمل على أنظمة Android.

في البداية حمّل برنامج Raspicast من متجر التطبيقات Google Play.

هذا التطبيق مجاني ويسمح بالإتصال بالراسبيري باي وإرسال الصور والفيديوهات إليه.

بعد اكتمال عملية التثبيت افتح التطبيق.

ادخل على SSH Setting ثم اكتب عنوان IP واسم المستخدم وكلمة المرور للوحة الراسبيري باي.

اسم المستخدم لأجهزة الراسبيري باي الافتراضي هو pi وكلمة المرور raspberry.

شاشة ذكية

يمكنك عرض الصور والفيديوهات المحمّلة مسبقًا لديك على الجهاز من خلال الدخول على Cast واختيار الملف الذي تريد عرضه.

صور وفيديوهات جهازك المحمول

يمكنك أيضًا الدخول على YouTube أو غيره من البرنامج التي تفضلها ثم اختيار الفيديو الذي ترغب بعرضه ثم من القائمة اختر Cast (Raspicast) وسيبدأ المحتوى مباشرة على الراسبيري باي.

شاشة ذكية

تذكر فصل وحدة مزود الطاقة عند الانتهاء من استخدام نظام تحويل شاشتك إلى شاشة ذكية.




التحكم بمحرك السيرفو باستخدام النود-ريد (Node-RED)

تستخدم المحركات بشكل شائع في مجال الروبوتات، و يمكننا أن نتحكم بهذه الروبوتات عن طريق ربطها بالانترنت، في هذا المشروع نقوم بتوصيل محرك سيرفو  مع راسبيري باي Raspberry Pi والتحكم به من خلال صفحة ويب باستخدام النود-ريد (Node-RED)سيتم إنشاء صفحة منقلة لعرض زاوية المحرك و مزلاج من درجة 0-180 و ترسل قيم الزاوية المراد تحريكها إلى راسبيري باي (Raspberry Pi) للتحكم بمحرك سيرفو ،

Node-RED-servo-control

المواد و الأدوات

راسبيري باي

1X راسبيري باي

ذاكرة

1X ذاكرة (8 قيقا كحد أدنى )

محول طاقة راسبيري باي

1X محول طاقة (5V-2A)

محرك سيرفو

1Xمحرك سيرفو

أسلاك توصيل

أسلاك توصيل

توصيل الدائرة

توصيل الدائرة

تثبيت النودريد (Node-RED)

يتم تثبيت النود-ريد (Node-RED) عند تثبيت نظام التشغيل راسبيان (Raspbian) النسخة الكاملة  على راسبيري باي، لكن اذا ثبتت نظام (Raspbian Lite) فإنه لا يتضمن على النود-ريد (Node-RED) فلذلك في البداية ستحتاج إلى اتباع الخطوات التالية.

ابدأ بتثبيت أدوات (git) ، بالإضافة إلى أدوات البناء الأساسية التي ستكون مطلوبة في الخطوة التالية. عن طريق الأمر :

sudo apt install build-essential git

قم بتشغيل أمر (bash) لتثبيت نسخة جديدة من (Node-RED) عن طريق السطر التالي :

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

أثناء عملية التثبيت سيتطلب أن تجيب بنعم مرتين و ذلك بكتابة (Y) سيستغرق التثبيت بعض الوقت و بعد اكتمال التثبيت تظهر معلومات حول إعدادات نود-ريد (Node-RED) في وحدة التحكم.

اعدادات تثبيت النود-ريد (Node-RED)

اذا كنت تستخدم راسبيري باي (Raspberrypi 4) الذي يمتلك ذاكرة عشوائية أكثر من 2 غيغابايت يمكن البدء بخدمة نود-ريد ( Node-RED).بكتابة الأمر التالي:

node-red-start

بالنسبة لإصدارات راسبيري باي ( Raspberry Pi) الأقدم من الأفضل تحديد مقدار ذاكرة الوصول العشوائي المتاحة يمكن استخدام الأمر التالي:

node-red-pi --max-old-space-size=256

في ثواني سوف تبدأ خدمة النود-ريد (Node-RED) اكتب http: //nodered.local: 1880 في شريط العنوان الخاص بمتصفحك

اكتب عنوان   IPالخاص بالراسبيري باي لديك بدل من “nodered.local”

و ستظهر لديك واجة النود-ريد

واجهة النود ريد

 

إنشاء التدفق

في البداية يمكنك الاطلاع على السلسلة التعليمية الخاصة بالنود-ريد (Node-RED) من الرابط

أولًا: الاتصال بمنفذ الادخال و الاخراج (GPIO) في لوحة الراسبيري باي :

من قسم عقد راسبيري باي نسحب المخرجات “rpi gpio” و التي تكون رمز الراسبيري على اليمين

Node-RED-servo-control

حدد المنفذ الذي قمت بتوصيل محرك سيرفو معه

rpi gpio

نحدد نوع الاشارة و قيمة التردد

rpi gpio

ثانيًا : تعين قيم التحكم بالخرج 

سنقوم بمعادلة قيم الدخل (0-26) مع أعلى و أقل قيمة لزاوية محرك سيرفو التي نود أن يتحرك خلالها و هي (0-180) قسم الدوال نسحب “range”

Node-RED-servo-control

 نحدد المدى للدخل ،و كذلك نحدد المدى للخرج

renge

ثالثًا: واجهة المستخدم 

: واجهة المستخدم سوف يظهر في واجهة المستخدم عنصرين العنصر الأول المزلاج للتحكم بالسيرفو العنصر الثاني شكل المنقلة لإظهار زاوية محرك سيرفو

لتتمكن من انشاء واجهة مستخدم تحتاج إلى تنزيل مكتبة لوحة التحكم (Dashboard)

تحميل مكتبة

ستظهر لك قائمة يمكن من خلالها البحث عن المكتبة و تنزيلها

تنزيل مكتبة الداشبوريد

اسحب “slider” من قائمة عقد لوحة التحكم (Dashboard)

Node-RED-servo-control

بالنقر على العقدة ستظهر لنا قائمة تساعدنا في التحكم باعدادات العقدة

بالبداية قم باضافة مجموعة

انشاء مجموعة

انقر على اشارة القلم ثم انشئ مجموعة لواجهة المستخدم

انشاء المجموعة

 

حدد المجموعة و المدى من (0-26)

pwm

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

Node-RED-servo-control

نظيف لواجهة المستخدم شكل المنقلة الذي يشير للزاوية التي يوجد عندها محرك سيرفو

نسحب “gauge” من قسم “Dashboard”

Node-RED-servo-control

نحدد القيمة التي سيمثلها الشكل

Node-RED-servo-control

نوصل العقد معا لإنشاء التدفق المطلوب

Node-RED-servo-control

أخيرًا: نشر التدفق
تم الانتهاء من التدفق، حتى نتمكن من نشره. انقر على زر Deploy الأحمر الكبير أعلى يمين الشاشة. ستظهر رسالة في الأعلى تقول تم نشرها بنجاح “Successfully deployed”

getting-started-with-node-red
 اكتب http: //nodered.local: 1880/ui في شريط العنوان الخاص بمتصفحك اكتب عنوان IP الخاص راسبيري باي لديك بدل من “nodered.local” لتظهر واجهة المستخدم التي قمت ببنائها لتتحكم بمحرك سيرفو
Node-RED-servo-control
يمكنك التحكم من خلال الواجهة التي أنشأتها بالنود-ريد (NodeRED) بمحرك سيرفو



مؤشر أسعار العملة الرقمية بتكوين باستخدام الراسبيري باي

يعد بتكوين (Bitcoin) الشكل الأكثر شهرة من العملات الرقمية، في هذا الدرس سنتعلم صناعة جهاز مؤشر أسعار العملة الرقمية (Bitcoin)، باستخدام راسبيري باي (RaspberryPi) وشاشة عرض كرستالية ( LCD )

تابع سعر العملات المشفرة

المواد و الأدوات

بتكوين راسبيري باي

 1X راسبيري باي 

lcd

1X شاشة كرستالية (LCD)

لوحة تجارب

1X لوحة تجارب 

مقاومة متغيرة

1Xمقاومة متغيرة

مقاومة 220

1X مقاومة 220 أوم 

اسلاك توصيل

مجموعة أسلاك توصيل 

توصيل الدائرة

راسبيري باي بتكوين
راسبيري باي بتكوين

 

الكود البرمجي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على راسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل راسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

قم بتحديث النظام بالبداية

sudo apt-get update -y
sudo apt-get upgrade -y

تثبيت البايثون و مدير المكتبات في البايثون  (PIP3 )

يتم تثبيت البايثون و(pip3) عند تثبيت نظام التشغيل Raspbian على راسبيري باي  كامل ، لكن اذا ثبتت نظام Raspbian Lite فإنه لا يتضمن على البايثون و مدير المكتبات pip3 لذا يجب تثبيتهما بالأمر التالي

sudo apt install python3 idle3
sudo apt-get install python3-pip

تحميل مكتبة (Install adafruit-blinka)

sudo pip3 install adafruit-blinka

تثبيت مكتبة (Install adafruit-circuitpython-charlcd)و مكتبة (Install adafruit-circuitpython-charlcd) التي ستساعدنا في تعريف شاشة LCD و الطباعة عليها

sudo pip3 install adafruit-circuitpython-charlcd
تثبيت مكتبة (json) التي تساعد في ارسال البيانات إلى راسبيري باي  بالأمر التالي
sudo apt-get install -y php-json
نفتح ملف بايثون لكتابة الكود البرمجي من خلال قائمة (Programming) نختر (Python 3) و ننشئ ملف جديد

نكتب الكود البرمجي لتعقب راسبيري باي سعر بتكوين وعرضه على شاشة (LCD)

from subprocess import Popen, PIPE
from time import sleep
from datetime import datetime
import json
import requests
import board
import digitalio
import adafruit_character_lcd.character_lcd as characterlcd

# Modify this if you have a different sized character LCD
lcd_columns = 16
lcd_rows = 2

# compatible with all versions of RPI as of Jan. 2019
# v1 - v3B+
lcd_rs = digitalio.DigitalInOut(board.D22)
lcd_en = digitalio.DigitalInOut(board.D17)
lcd_d4 = digitalio.DigitalInOut(board.D25)
lcd_d5 = digitalio.DigitalInOut(board.D24)
lcd_d6 = digitalio.DigitalInOut(board.D23)
lcd_d7 = digitalio.DigitalInOut(board.D18)


# Initialise the lcd class
lcd = characterlcd.Character_LCD_Mono(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6,
                                      lcd_d7, lcd_columns, lcd_rows)



# set variables for last price of currency
lastPrice = 0


# Preload btc price before beginning while loop
def btcPrice():
    try:
        b = requests.get('https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD')
        priceFloat = float(json.loads(b.text)['USD'])
        return priceFloat
    except requests.ConnectionError:
        print ("Error querying Crytocompare API")
    for line in btcPrice.splitlines():
        if "state UP" in line:
            dev_name = line.split(':')[1]
    return dev_name
      


# wipe LCD screen before we start
lcd.clear()

# before we start the main loop 
sleep(10)


while True:
    
    sleep(0.4)
    lastPrice = btcPrice()



    lcd_line_2 = "$ " + str(btcPrice())  + " /BTC"

    # date and time
    lcd_line_1 = datetime.now().strftime('%b %d  %H:%M:%S\n')

    

    lcd.message = lcd_line_1 + lcd_line_2
    lastPrice = btcPrice()

قم بحفظ الكود البرمجي

اعطي أمر التشغيل للكود البرمجي من خلال النقر على قائمة (RUN) ثم (RUN Module)

شرح الكود البرمجي

استدعاء المكتبات لتشغيل المشروع

from subprocess import Popen, PIPE
from time import sleep
from datetime import datetime
import json
import requests
import board
import digitalio
import adafruit_character_lcd.character_lcd as characterlcd

تحديد حجم شاشة ( LCD )

# Modify this if you have a different sized character LCD
lcd_columns = 16
lcd_rows = 2

تحديد منافذ شاشة LCD التي تم توصيلها مع راسبيري باي

# compatible with all versions of RPI as of Jan. 2019
# v1 - v3B+
lcd_rs = digitalio.DigitalInOut(board.D22)
lcd_en = digitalio.DigitalInOut(board.D17)
lcd_d4 = digitalio.DigitalInOut(board.D25)
lcd_d5 = digitalio.DigitalInOut(board.D24)
lcd_d6 = digitalio.DigitalInOut(board.D23)
lcd_d7 = digitalio.DigitalInOut(board.D18)


# Initialise the lcd class
lcd = characterlcd.Character_LCD_Mono(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6,
lcd_d7, lcd_columns, lcd_rows)

ننشئ متغير لقيمة سعر البتكوين

# set variables for last price of currency
lastPrice = 0

ننشئ دالة باسم ( btcPrice ) وضيفتها أخذ القيم رابط الموقع و حفظها في متغير سعر البتكوين

 # Preload btc price before beginning while loop
def btcPrice():
try:
b = requests.get('https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD')
priceFloat = float(json.loads(b.text)['USD'])
return priceFloat

في حال انقطع الاتصال بالانترنت يتم طباعة التص التالي “Error querying Crytocompare API”

except requests.ConnectionError:
print ("Error querying Crytocompare API")

نحدد السطر الذي سيتم طباعة السعر عليه

for line in btcPrice.splitlines():
if "state UP" in line:
dev_name = line.split(':')[1]
return dev_name

مسح الشاشة (LCD) بالبداية

# wipe LCD screen before we start
lcd.clear()

نحدد وقت 10 ثواني لتحديث طباعة القيم

# before we start the main loop 
sleep(10)


while True:

sleep(0.4)
lastPrice = btcPrice()

طباعة سعر بتكوين في السطر الثاني

lcd_line_2 = "$ " + str(btcPrice()) + " /BTC"

طباعة الوقت و التاريخ

lcd_line_1 = datetime.now().strftime('%b %d %H:%M:%S\n')

lcd.message = lcd_line_1 + lcd_line_2
lastPrice = btcPrice()

وسيت ارسال سعر بتكوين استمرار إلى الراسبيري باي و يقوم البرنامج بعرض السعر على شاشة (LCD)

بتكوين راسبيري باي




تحكم في طابعة 3D عن بُعد باستخدام راسبيري باي و octopi

يمكن أن تكون تجربة الطباعة ثلاثية الأبعاد أسهل إذ كان بالإمكان التحكم في الطابعة ومراقبة عملية الطباعة على متصفح الويب وطباعة الأشياء عن بُعد . ولتحقيق ذلك نستطيع الاعتماد لوحة الراسبيري (RaspberryPi) باي و اوكتو برنت (OctoPrint)الذي يعد خادم ويب مفتوح المصدر يتيح لك مراقبة جميع جوانب الطابعة ثلاثية الأبعاد، و يمكنك من تحميل مطبوعات جديدة عن بُعد ومراقبة درجة حرارة الطارد وإيقاف تشغيل الطابعة وتشغيلها والتحقق من حالة المطبوعات ومشاهدة مطبوعاتك من خلال بث فيديو مباشر، ومراقبة التقدم في الطباعة، عندما يكون جهاز الحاسوب الخاص بك و الراسبيري باي (RaspberryPi) متصلين على ذات الشبكة المحلية (LAN). في هذا الدرس سنتعلم تهيئة خادم اوكتوبرنت (OctoPrint) على (RaspberryPi) الراسبيري باي

المواد و الأدوات

راسبيري باي

1X راسبيري باي 
راسبيري باي كاميرا

 1X كاميرا للراسبري باي (raspberry pi camera module) أو USB webcam

 

ذاكرة

1X ذاكرة صغيرة (Micro SD card) 8 قيقا كحد أدنى

قارئ بطاقة الذاكرة

1X قارئ بطاقة الذاكرة 

سلك يو اس بى A-B

1X سلك يو اس بي (USB) A-B

محول طاقة راسبيري باي

1X محول طاقة 5V 2A 

تثبيت أوكتو باي (OctoPi):

تهيئة الراسبيري باي (Raspberry Pi):

يتضمن الأوكتو باي (Octopi) كل ما يلزم لتشغيل كل من راسبيري باي (Raspberry Pi) وخادم (OctoPrint). وخطوات تثبيت الأوكتو باي (Octopi)تشبه تثبيت أي نظام تشغيل بمجرد تهيئة اللوحة سيعمل النظام بدون أي تكوين إضافي. بالبداية لا تنس أن تقوم بتهيئة الذاكرة باستخدام برنامج (SD Card Formatter)

أولا:  قم بتنزيل الأوكتو باي (Octopi) من خلال الرابط  ثم قم بفك الضغط عن الملف

ثانيا : استخدم (install Raspberry Pi Imager) لرفع نظام التشغيل على الذاكرة يمكنك معرفة خطوات التحميل بزيارة الرابط 

الاتصال بالشبكة:

لتوصيل الراسبيري باي (Raspberry Pi) بالشبكة ستحتاج إلى تحرير ملف نصي على بطاقة الذاكرة، حدد موقع بطاقة SD الخاصة بك في (Finder (MacOS)) أو (Explorer (Windows)) بعد ذلك، افتح ملف octopi-wpa-supplicant.txt في Notepad أو Sublime Text. لا تستخدم (Microsoft Word) أو (Wordpad )

قم بإلغاء التعليق على الأسطر أدناه، وأدخل شبكة اسم الشبكة اللاسلكية وكلمة المرور الخاصة بك:

## WPA/WPA2 secured 
network={ 
    ssid="your-wifi-network-name" 
    psk="your-wifi-password" 
}

إلغاء التعليق أو إضافة رمز البلد الخاص بك:

# Uncomment the country your Pi is in to activate Wifi in RaspberryPi 3 B+ and above 
# For full list see: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 
#country=GB # United Kingdom 
#country=CA # Canada 
#country=DE # Germany 
#country=FR # France 
#country=US # United States
country=SA #add my country Saudi Arabia

ابحث عن رمز بلد ISO 3166-1 المكون من رقمين واستخدمه بدلاً من الرمز المستخدم .

 قم بتوصيل الراسبيري باي (Raspberry Pi) مع الشاشة ولوحة المفاتيح والفأرة، أو التحكم بالراسبيري عن بعد من خلال الدرس لمعرفة رقم (IP) على الشبكة

 

sudo ifconfig

 

يمكنك الآن الاتصال بـ OctoPrint لعرض واجهة OctoPrint. من جهاز جهاز الحاسوب الخاص بك، تأكد من أنك على نفس الشبكة مع الراسبيري باي (Raspberry Pi) الخاص بك، ثم قم بكتابة رقم (IP) للخادم في شريط العنوان على متصفح الويب الخاص بك. إذا لم تستطع الوصول إلى الخادم قم بتوصيل الراسبيري باي (Raspberry Pi) مع الراوتر باستخدام سلك ايثرنت، للتأكد من سبب المشكلة إذا استطعت الوصول إلى الخادم فان المشكلة من في اعدادات الاتصال قم بمراجعتها

 

اعدادات الأوكتوبرنت (OctoPrint):

OCTOPRINT

بعد تحميل واجهة (OctoPrint) على  متصفحك، سترى معالج إعداد (OctoPrint)

صلاحية التحكم بالدخول (Access Control)

استخدم الصلاحية لتعيين اسم مستخدم وكلمة مرور آمنين للتحكم في الوصول.

راسبيري باي RASBERRY PI

التحقق من الاتصال عبر الإنترنت (Online Connectivity Check)

سيؤدي هذا إلى اختبار اتصال خادم DNS الخاص بـ Google بشكل دوري للتأكد من اتصال Pi الخاص بك عبر الإنترنت، قم بتمكينه، واتركه في الفاصل الزمني الافتراضي لمدة 15 دقيقة.

OCTOPRINT

القائمة السوداء للمكونات الإضافية (Plugin Blacklist)

يمنع هذا الإعداد تثبيت المكونات الإضافية غير الموقعة أو التي يحتمل أن تكون ضارة على Pi الخاص بك. قم بتمكين هذا حتى تتمكن لاحقًا من اكتشاف إضافات OctoPrint الآمنة.

Enable-Plugin-Blacklist

قم بتكوين الطابعة الخاصة بك (Configure your printer for OctoPrint)

أدخل تفاصيل الطابعة الخاصة بك.

إذا لم تكن متأكدًا من مواصفات الطابعة قد تجدها في برنامج التقطيع (مثل Cura) أو بإجراء بحث سريع على Google.

اعدادات الطابعة

 




اصنع منبه لرسائل البريد الإلكتروني باستخدام الراسبيري باي

مقدمة

يعتبر المنبه من الوسائل التي يستخدمها الأفراد لتذكيرهم بمواعيدهم المهمة في السابق اعتاد الناس على وضع الساعة الرملية وفي وقتنا الحاضر أصبحت الأجهزة الذكية محلًا لها، في هذا الدرس ستتعلم كيفية صناعة منبه لرسائل البريد الإلكتروني باستخدام الراسبيري باي والثنائي المشع للضوء.

منبه لرسائل البريد الإلكتروني

المواد والأدوات

raspberry-pi-e-mail-notifier-using-leds

 1× راسبيري باي

raspberry-pi-e-mail-notifier-using-leds

 1× سلك (HDMI)

raspberry-pi-e-mail-notifier-using-leds

1× محول تيار (5V-2A)

منبه لرسائل البريد الإلكتروني

 1× كرت ذاكرة

منبه لرسائل البريد الإلكتروني

1× لوحة تجارب – حجم كبير

منبه لرسائل البريد الإلكتروني

حزمة أسلاك توصيل (ذكر – أنثى)

منبه لرسائل البريد الإلكتروني

 1× ثنائي مشع للضوء أحمر (LED)

 

منبه لرسائل البريد الإلكتروني1× ثنائي مشع للضوء أخضر (LED)

raspberry-pi-e-mail-notifier-using-leds

2× مقاومة 220 Ω

توصيل الدائرة

وصل الدائرة الكهربائية كما في الشكل حتى تتمكن من صنع منبه لرسائل البريد الإلكتروني.

للمزيد حول توصيل الراسبيري باي مع الثنائي المشع للضوء يمكنك الرجوع للدرس نظام التحكم ومراقبة الإضاءه عن بعد

منبه لرسائل البريد الإلكتروني

تهيئة الراسبيري باي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

raspberry-pi-e-mail-notifier-using-leds

للبدء، قم بإستخدام الـ Termial  لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي.

reboot

حمّل البايثون على الراسبيري باي.

sudo apt install python3 idle3

بعد ذلك حمّل مكتبة adafruitblinka.

sudo pip3 install adafruit-blinka

حمّل آخر مكتبة imapclient.

sudo pip3 install imapclient

الكود البرمجي

ستشاهد في قائمة Programming وجود برنامج جديد وهو Python 3 (IDLE) انقر عليه.

التحكم بالمصابيح

 من قائمة File اختر  New File.

انسخ الكود لنظام منبه لرسائل البريد الإلكتروني والصقه بالملف الفارغ لكن هناك أمور مهمة عليك العمل بها قبل رفع الكود البرنامجي إلى الراسبيري باي.

import time
import board
from imapclient import IMAPClient
from digitalio import DigitalInOut, Direction HOSTNAME = 'imap.gmail.com' MAILBOX = 'Inbox' MAIL_CHECK_FREQ = 10 # check mail every 10 seconds # The following three variables must be customized for this # script to work USERNAME = 'Your Email' PASSWORD = 'Your Passsword' NEWMAIL_OFFSET = 0 # setup Pi pins as output for LEDs green_led = DigitalInOut(board.D18) red_led = DigitalInOut(board.D23) green_led.direction = Direction.OUTPUT red_led.direction = Direction.OUTPUT def mail_check(): # login to mailserver server = IMAPClient(HOSTNAME, use_uid=True, ssl=True) server.login(USERNAME, PASSWORD) # select our MAILBOX and looked for unread messages unseen = server.folder_status(MAILBOX, ['UNSEEN']) # number of unread messages # print to console to determine NEWMAIL_OFFSET newmail_count = (unseen[b'UNSEEN']) print('%d unseen messages' % newmail_count) if newmail_count > NEWMAIL_OFFSET: green_led.value = True red_led.value = False else: green_led.value = False red_led.value = True time.sleep(MAIL_CHECK_FREQ) while True: mail_check()
شرح الكود البرمجي

هنا نستعدي المكتبات الضرورية لنظام منبه لرسائل البريد الإلكتروني مثل time و board و imapclient و DigitalInOut, Direction.

import time
import board
from imapclient import IMAPClient
from digitalio import DigitalInOut, Direction

في HOSTNAME يتم تعريف اسم المستضيف جميل Gmail.

وفي MAILBOX يتم توضيح أي المجلدات التي سيتم فحصها هنا سنستخدم المجلد Inbox.

HOSTNAME = 'imap.gmail.com'
MAILBOX = 'Inbox'

المتغير NEWMAIL_OFFSET يحمل القيمة 0 وستستخدم هذه القيمة فيما بعد لمقارنة عدد رسائل البريد الالكتروني.

NEWMAIL_OFFSET = 0

في المتغير MAIL_CHECK_FREQ يتم تعيين المدة الزمنية التي سيتم بها فحص مجلد Inbox هنا سيتم فحصه كل ثانية للتأكد من وجود رسائل جديدة أم لا.

MAIL_CHECK_FREQ = 1 # check mail every 1 second

في المتغير USERNAME ضع الايميل الخاص بك.

وفي المتغير PASSWORD ضع كلمة السر.

USERNAME = 'Your Email'
PASSWORD = 'Your Passsword'

في المتغير green_led يتم تعريف المدخل المستخدم لربط الثنائي المشع للضوء الأخضر وهو GPIO 18.

 وفي المتغير red_led يتم تعريف المدخل المستخدم لربط الثنائي المشع للضوء الأحمر وهو GPIO 23.

green_led = DigitalInOut(board.D18)
red_led = DigitalInOut(board.D23)

في الدالة def mail_check سيتم أخذ الصلاحية لتسجيل الدخول للبريد الالكتروني بناء على البيانات الموجودة في المتغيرين USERNAME  و PASSWORD.

def mail_check():
# login to mailserver
server = IMAPClient(HOSTNAME, use_uid=True, ssl=True)
server.login(USERNAME, PASSWORD)

في المتغير unseen يتم فحص مجلد Inbox.

unseen = server.folder_status(MAILBOX, ['UNSEEN'])

في المتغير newmail_count يتم حساب عدد الرسائل التي لم تقرأ بعد.

سينطبع على الشاشة unseen messages وبجانبها عدد الرسائل التي لم تقرأ وسيتم تحديث المتغير كل ثانية.

newmail_count = (unseen[b'UNSEEN'])
print('%d unseen messages' % newmail_count)

raspberry-pi-e-mail-notifier-using-leds

إذا كان عدد الرسائل المرسلة المخزنة في NEWMAIL_OFFSET أكبر من القيمة المعينة في المتغير NEWMAIL_OFFSET سيضيء الثنائي المشع للضوء الأخضر ليفيد الأفراد بوجود رسائل جديدة.

وإذا كان أقل سيضيء الثنائي المشع للضوء الأحمر وهكذا يستمر النظام.

if newmail_count > NEWMAIL_OFFSET:
green_led.value = True
red_led.value = False
else:
green_led.value = False
red_led.value = True

time.sleep(MAIL_CHECK_FREQ)

يمكنك رفع الكود البرمجي واختبار صحة الخطوات.

لا تنس فصل وحدة مزود الطاقة بعد الانتهاء من استخدام نظام منبه لرسائل البريد الإلكتروني.

 




التحكم بالاضاءة عن طريق الراسبيري باي والتيليجرام

مقدمة

مع تطور الهواتف الذكية والتطبيقات وعالم الإتصال أصبح الآن بإمكانك التحكم في أجهزة المنزل أو العمل من خلال هاتفك، في هذا الدرس ستتعلم كيفية التحكم بالاضاءة عن طريق الراسبيري باي والتيليجرام.

controlling-raspberry-pi-using-telegram

المواد والأدوات

controlling-raspberry-pi-using-telegram

 1× راسبيري باي

controlling-raspberry-pi-using-telegram

 1× سلك (HDMI)

controlling-raspberry-pi-using-telegram

1× محول تيار (5V-2A)

controlling-raspberry-pi-using-telegram

 1× كرت ذاكرة

controlling-raspberry-pi-using-telegram

1× سلك ايثرنت

التحكم بالمصابيح

لوحة تجارب – حجم كبير

التحكم بالمصابيح

حزمة أسلاك توصيل (ذكر – أنثى)

التحكم بالمصابيح

 1× ثنائي مشع للضوء أحمر (LED)

التحكم بالمصابيح

ثنائي مشع للضوء أبيض (LED)

التحكم بالمصابيح

ثنائي مشع للضوء أزرق (LED)

التحكم بالمصابيحثنائي مشع للضوء أخضر (LED)

arduino-smoke-gas-sensor

3× مقاومة 220 Ω

توصيل الدائرة

controlling-raspberry-pi-using-telegram

إنشاء بوت على التيليجرام

عليك بالبداية تنصيب برنامج التيليجرام على هاتفك أو أي جهاز لوحي تفضله Telegram.

بعد تنصيبه سجل اسمك وبياناتك ورقم هاتفك كما هو معتاد.

أنشئ بوت باسم (Geeksvalley) يتم إرسال أوامر التشغيل والاطفاء عليه بالخطوات التالية:

بالبداية تحتاج بوت BotFather الرسمي الخاص بالتيليجرام اكتب في صفحة البحث BotFather.

التحكم بالمصابيح

بعد ذلك اكتب رسالة start/ سيرد عليك برسالة تحتوي على جميع الأوامر التي يستطيع تنفيذها البوت.

التحكم بالمصابيح

لإنشاء بوت جديد أرسل newbot/.

سيرد عليك البوت برسالة تطلب منك تسمية البوت الذي قمت بإنشائه في هذا الدرس تمت تسميته GeeksValley.

سيرد عليك البوت برسالة تطلب منك تحديد اسم المستخدم للبوت وبنهاية اسم المستخدم اكتب bot_.

هنا اسم المستخدم GeeksValley_bot.

سيتم  إرسال رسالة بأنه تم انشاء البوت ويتضمن رابط HTTP API احفظ الرابط ستستخدمه عند كتابة كود المشروع على الراسبيري باي.

التحكم بالمصابيح

تهيئة الراسبيري باي

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

LX نقطة اتصال لاسلكية راسبيري

للبدء، قم بإستخدام الـ Termial  لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي.

reboot

حمّل البايثون على الراسبيري باي.

sudo apt install python3 idle3

حمل أداة Pip.

sudo apt-get install python-pip

بعد ذلك حمّل Telepot حتى تتمكن من تكوين جسر تواصل مع برنامج التيليجرام.

sudo pip install telepot

ستشاهد في قائمة Programming وجود برنامج جديد وهو Python 3 (IDLE) انقر عليه.

التحكم بالمصابيح

 من قائمة File اختر  New File.

انسخ الكود التالي والصقه بالملف الفارغ لكن هناك أمور مهمة عليك العمل بها قبل رفع الكود البرنامجي إلى الراسبيري باي.

import time, datetime
import RPi.GPIO as GPIO
import telepot
from telepot.loop import MessageLoop blue = 26
white = 19
red = 13
green = 6 now = datetime.datetime.now()
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
#LED blue
GPIO.setup(blue, GPIO.OUT) GPIO.output(blue, 0) #Off initially
#LED white
GPIO.setup(white, GPIO.OUT)
GPIO.output(white, 0) #Off initially
#LED Red
GPIO.setup(red, GPIO.OUT)
GPIO.output(red, 0) #Off initially
#LED green
GPIO.setup(green, GPIO.OUT) GPIO.output(green, 0) #Off initially def action(msg): chat_id = msg['chat']['id']
command = msg['text'] print ('Received: %s') % command if 'on' in command:
message = "Turned on "
if 'blue' in command:
message = message + "blue " GPIO.output(blue, 1) if 'white' in command:
message = message + "white "
GPIO.output(white, 1)
if 'red' in command:
message = message + "red "
GPIO.output(red, 1)
if 'green' in command:
message = message + "green " GPIO.output(green, 1)
if 'all' in command:
message = message + "all "
GPIO.output(blue, 1)
GPIO.output(white, 1) GPIO.output(red, 1)
GPIO.output(green, 1) message = message + "light(s)"
telegram_bot.sendMessage (chat_id, message) if 'off' in command:
message = "Turned off "
if 'blue' in command:
message = message + "blue"
GPIO.output(blue, 0)
if 'white' in command:
message = message + "white "
GPIO.output(white, 0)
if 'red' in command: message = message + "red "
GPIO.output(red, 0)
if 'green' in command:
message = message + "green "
GPIO.output(green, 0)
if 'all' in command: message = message + "all "
GPIO.output(blue, 0)
GPIO.output(white, 0)
GPIO.output(red, 0)
GPIO.output(green, 0)
message = message + "light(s)"
telegram_bot.sendMessage (chat_id, message) telegram_bot = telepot.Bot('1657513784:AAG2Wl0ji-VGLTqGEKTdKruABD0FbS4Dwbk')
print (telegram_bot.getMe()) MessageLoop(telegram_bot, action).run_as_thread()
print ('Up and Running....')
while 1: time.sleep(10)

شرح الكود البرمجي

هنا نستعدي المكتبات الضرورية للنظام مثل time, datetime و RPi.GPIO  و telepot.

import time, datetime
import RPi.GPIO as GPIO
import telepot
from telepot.loop import MessageLoop

في هذه الأسطر يتم تعريف المدخلات المستخدمة وهي أربعة المصباح الأخضر والأزرق والأبيض والأحمر.

blue = 26
white = 19
red = 13
green = 6

ستكون المصابيح في حالتها الابتدائية بحالة سكون.

now = datetime.datetime.now()
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
#LED blue
GPIO.setup(blue, GPIO.OUT)
GPIO.output(blue, 0) #Off initially
#LED white
GPIO.setup(white, GPIO.OUT)
GPIO.output(white, 0) #Off initially
#LED Red
GPIO.setup(red, GPIO.OUT)
GPIO.output(red, 0) #Off initially
#LED green
GPIO.setup(green, GPIO.OUT)
GPIO.output(green, 0) #Off initially

بعد ذلك يستطيع المستخدم التحكم بالاضاءة وذلك بإدخال الأوامر في برنامج التيليجرام.

سيكون أمر تشغيل المصابيح مبتدئيًا بـ Turn on متبوعًا باسم المصباح (blue, red, green or white) .

 إذا كنت ترغب بتشغيل كل المصابيح بنفس الوقت (Turn on all).

والعكس صحيح أيضًا عند إيقاف أحد المصابيح أكتب Turn off متبوعًا باسم المصباح (blue, red, green or white).

 إذا كنت ترغب بإيقاف كل المصابيح بنفس الوقت (Turn off all).

def action(msg):
chat_id = msg['chat']['id']
command = msg['text']
print ('Received: %s') % command
if 'on' in command:
message = "Turned on "
if 'blue' in command:
message = message + "blue "
GPIO.output(blue, 1)
if 'white' in command:
message = message + "white "
GPIO.output(white, 1)
if 'red' in command:
message = message + "red "
GPIO.output(red, 1)
if 'green' in command:
message = message + "green "
GPIO.output(green, 1)
if 'all' in command:
message = message + "all "
GPIO.output(blue, 1)
GPIO.output(white, 1)
GPIO.output(red, 1)
GPIO.output(green, 1)
message = message + "light(s)"
telegram_bot.sendMessage (chat_id, message)
if 'off' in command:
message = "Turned off "
if 'blue' in command:
message = message + "blue"
GPIO.output(blue, 0)
if 'white' in command:
message = message + "white "
GPIO.output(white, 0)
if 'red' in command:
message = message + "red "
GPIO.output(red, 0)
if 'green' in command:
message = message + "green "
GPIO.output(green, 0)
if 'all' in command:
message = message + "all "
GPIO.output(blue, 0)
GPIO.output(yellow, 0)
GPIO.output(red, 0)
GPIO.output(green, 0)
message = message + "light(s)"

هذا السطر مهم وحساس للغاية.

عليك كتابة HTTP API الخاص بالبوت الذي قمت بانشاءه.

telegram_bot = telepot.Bot('HTTP API الصق')

احفظ الملف بالمسار الافتراضي.

controlling-raspberry-pi-using-telegram

بعد ذلك افتح الشاشة السوداء LXterminal.

واكتب الأمر التالي لتنفيذ الكود البرمجي.

python ControllingLED.py

سيكون هناك رسالة مفادها بأن عملية اتصالك صحيحة.

سيبدأ النظام بالعمل مباشرة يمكنك إرسال رسائل من التيليجرام وستلاحظ أنها مطابقة لمخرجات الشاشة السوداء.

التحكم بالمصابيح التحكم بالمصابيح

لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام النظام.




حجب الإعلانات باستخدام الراسبيري باي وباي هول (Pi-hole)

مقدمة

في هذا الدرس ستتعلم كيف تستخدم الراسبيري باي وباي هول (Pi-hole) لحجب الإعلانات المزعجة؛ حتى لا تواجهك أو تواجه أبنائك أثناء استخدام الانترنت

راسبيري باي وباي هول

المواد والأدوات

حجب الإعلانات الراسبيري باي

 1× راسبيري باي

الراسبيري باي وباي هول

 1× كرت ذاكرة

الراسبيري باي وباي هول

 1× سلك (HDMI)

الراسبيري باي وباي هول

1× محول تيار (5V-2A)

Fan

1× مروحة الراسبيري باي

الراسبيري باي وباي هول

غطاء الراسبيري باي

raspberry-pi-hole-block-ads

1× سلك ايثرنت

تبريد المعالج

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

ثبت المسرب الحراري على وحدة (SOC) ووحدة (USB controller)

الراسبيري باي وباي هول

وصل السلك الأحمر لمروحة التبريد(الموجب) مع المنفذ رقم 4

وصل السلك الأسود لمروحة التبريد (السالب) مع المنفذ رقم 6

الراسبيري باي وباي هول

تصبح المروحة بهذا الشكل بعد تثبيتها.

المروحة والراسبيري باي

تثبيت وتكوين باي هول (Pi-hole)

أولًا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالاطلاع على الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء باستخدام الراسبيري باي.

LXterminal

للبدء، سنقوم بإستخدام الـ Termial لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

أعد تشغيل الراسبيري باي.

reboot

في هذه الخطوة سيتم تثبيت باي هول (Pi-hole) من خلال الأمر التالي:

curl -sSL https://install.pi-hole.net | bash

سوف تبدأ عملية التحديث وتثبيت باي هول (Pi-hole).

تثبيت باي هول

عليك فقط اتباع الأوامر التي تظهر على الشاشة لتثبيت باي هول (Pi-hole) على الشاشة.

اختر الإعدادات الافتراضية دائمًا وانتظر حتى ينتهي الإعداد.

اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

اختر طريقة اتصال الراسبيري باي مع الانترنت

الخيار الأول: هل عن طريق سلك ايثرنت؟

الخيار الثاني: أم عن طريق شبكة لاسلكية؟

ثم انقر على Ok.

حجب الإعلانات الراسبيري باي وباي هول

لاختيار الإعدادات الافتراضية اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

اختر كافة الخيارات المتاحة لك؛ لكي يتم حجب الإعلانات من كافة المزودين لها ثم اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

اختر كل البروتكولات المتاحة ثم اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

هنا يطلب منك التأكد من عنوان الشبكة إذا كنت متأكد من رغبتك باستخدامه اضغط Yes.

raspberry-pi-hole-block-ads

تحميل خادم الويب اضغط على OK.

web server

استكمال التثبيت اضغط على OK.

Wep server & PHP

استكمال التثبيت اضغط على OK.

web server

اضغط على الخيار الأول لعرض كل شيء ثم Ok.

Show Everything

ستبدأ عملية تعريف وتحميل الحزمة سيأخذ عدة دقائق.

حجب الإعلانات الراسبيري باي وباي هول

عند اكتمال تعريف الحزمة سيتم إخطارك بذلك.

سيظهر لك عنوان الراسبيري باي IPv4 ستحتاج إليه في الخطوات القادمة.

انقر على OK.

raspberry-pi-hole-block-ads

ادخل الأمر التالي ثم ضع كلمة المرور التي يسهل عليك تذكرها.

pihole -a -p

إعدادات باي هول (Pi-hole)

افتح المتصفح الخاص بك وغيّر العنوان التالي إلى عنوان الراسبيري باي.

http://192.168.100.14/admin/

انقر على Login واكتب كلمة المرور التي عينتها مسبقًا.raspberry-pi-hole-block-ads

في Dashboard يتم عرض الإحصائيات والمواقع التي تم حجبها.

وفي أسفل الصفحة قائمة بأسماء الأجهزة التي تستخدم (Pi-hole) لحجب الإعلانات.

raspberry-pi-hole-block-adsraspberry-pi-hole-block-ads

ستظهر لك هذه الصفحة.

انقر على Settings.

الراسبيري باي وباي هول

انقر على DNS.

فعّل الخيارات الظاهرة بالصورة.

الراسبيري باي وباي هول

انزل أسفل الصفحة واكتب عنوان الشبكة الخاصة بك على سبيل المثال هنا ألياف بصرية بدء من العنوان 192.168.100.0.

ثم انقر على Save.

ثم انقر على DHCP.

وفعّل خيار DHCP server enabled.

ثم اكتب نطاق الشبكة.

وانقر على Save.
raspberry-pi-hole-block-ads

حدّث الصفحة.

 تغيير (DNS) على ويندوز

افتح “إعدادات الشبكة” على جهاز الكمبيوتر الخاص بك الذي يعمل بنظام ويندوز وتأكد من أنه متصل بالراوتر انتقل للمسار التالي:

انقر بالزر اليمين على قائمة ابدأ > اتصالات الشبكة > خصائص > تحرير.

اكتب عنوان الراسبيري باي بجانب Preferred DNS server.

اكتب عنوان الشبكة بدء من صفر على سبيل المثال 192.168.100.0 بجانب Alternate DNS server.

ثم انقر على حفظ.
raspberry-pi-hole-block-ads

 تغيير (DNS) على ماك

لتغيير DNS على ماك ، افتح “تفضيلات النظام”.

اضغط على مفتاح CMD + SPACE لإظهار البحث في spotlight واكتب System Preferences واضغط مفتاح الإدخال على النتيجة.

ابحث عن الشبكة من الخيارات وانقر نقرًا مزدوجًا لفتح إعدادات الشبكة.

Mac

سترى خادم DNS.

انقر على زر القفل في أسفل يسار النافذة.

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

Mac

انقر فوق DNS وانقر فوق الزر + لإضافة إدخال DNS.

أدخل عنوان الراسبيري باي وانقر فوق موافق.

تم تكوين Pihole DNS الخاص بك الآن على جهاز كمبيوتر Mac.

Mac

 تغيير (DNS) على الايفون

الشبكات اللاسلكية > معلومات الشبكة > DNS > يدوي ثم اكتب عنوان الراسبيري باي واحفظ ذلك.

واحذف العناوين السابقة.

IPhone

IPhone

سيتم حجب الإعلانات مباشرة Yahoo.

  إذا أردت حجب إعلان معين أو موقع معين يمكنك إكمال الخطوات التالية.

WhiteList و BlackList

Whitelist يمكنك وضع فيها قائمة المواقع التي تريد حجب الإعلانات عنها فقط.

Blacklist يمكنك وضع فيها قائمة المواقع التي تريد حجبها بالكامل.

الراسبيري باي وباي هولأضف الرابط بهذا الشكل لقائمة BlackList.

www.اسم الموقع.com

على سبيل المثال هنا نريد حجب موقعwww.theguardian.com.
raspberry-pi-hole-block-ads

حدّث الصفحة.

ستلاحظ أن الموقع انحجب بالكامل.

raspberry-pi-hole-block-ads

المشاكل والإصلاحات

في بعض الأوقات قد تواجهك هذه الرسالة عند إدخال أسماء المواقع في BlackList و WhiteList.

raspberry-pi-hole-block-ads

ادخل الأمر التالي وسيتم حلّها مباشرة.

pihole -a -p

 لا تنسَ فصل مصدر الطاقة بعد الانتهاء من استخدام نظام حجب الإعلانات باستخدام الراسبيري باي وباي هول .




انشاء منصة ألعاب باستخدام الراسبيري باي

مقدمة

تعد ألعاب الفيديو من أساليب التسلية لقضاء أوقات الفراغ وتتوفر ألعاب متنوعة , متناسبة مع الفئات العمرية المختلفة، في هذا الدرس ستتعلم انشاء منصة ألعاب الفيديو، وذلك باستخدام الراسبيري باي مع نظام التشغيل (RetroPie).

install-retropie-raspberry-pi

القطع المطلوبة

install-retropie-raspberry-pi

 1× راسبيري باي

ذاكرة

 1× كرت ذاكرة

raspberry-pi-HDMI

 1× سلك (HDMI)

raspberrypi-cable

1× محول تيار (5V-2A)

المروحة منصة ألعاب الراسبيري باي

1× مروحة الراسبيري باي

غطاء الراسبيري باي منصة ألعاب

غطاء الراسبيري باي

ذراع تحكم راسبيري باي منصة ألعاب

1× ذراع تحكم سلكية

راسبيري باي منصة ألعاب

1× ذاكرة خارجية (Flash memory)

توصيل القطع

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

ثبت المسرب الحراري على وحدة (SOC) ووحدة (USB controller)

wifi

قم بإضافة المروحة؛ لتقوم بالتبريد على أجزاء اللوحة وحفظها من التلف

raspberry-pi-connection

تصبح المروحة بهذا الشكل بعد تثبيتها.

المروحة - رازبيري باي - نقطة اتصال لاسلكية

يتكون غطاء الراسبيري باي من طبقتين يمكنك تثبيتهما على اللوحة.

غطاء الراسبيري باي منصة ألعاب

 

تنصيب ريترو باي (Retro Pie)

تتوفر أنظمة تشغيل متناسبة مع الراسبيري باي ويمكن تنصيبها بسهولة على بطاقة الذاكرة، تحتاج في البداية إلى تهيئة البطاقة الذاكرة قبل رفع نظام التشغيل عليها؛ ليتم مسح جميع البيانات على الذاكرة نهائيًا. ثم رفع نظام التشغيل باستخدام Raspberry Pi Imager يمكن متابعة الدرس الأول من سلسلة تعليم الراسبيري باي لمعرفة خطوات تنصيب برنامج تهيئة البطاقة و Raspberry Pi Imager.

سنحتاج في هذا الدرس إلى نظام التشغيل (Retro Pie) لرفع البرنامج على الذاكرة بعد التهيئة افتح برنامج rRaspberry Pi Image

منصة ألعاب راسبيري باي

يوجدة عدة نسخ لنظام التشغيل (Retro Pie) اختر النظام المتوافق مع اصدار لوحة الراسبيري باي لديك:

الراسبيري باي منصة ألعاب

من قائمة (SD Card) اختر الذاكرة التي ستنصب النظام عليها:

منصة ألعاب الراسبيري باي

اضغط على (Write) ليتم تثبيت نظام (RetroPie).

راسيري باي منصة ألعاب

تهيئة نظام ريترو باي (Retro Pie)

بعد رفع نظام التشغيل على الذاكرة يمكنك إزالة كرت الذاكرة ووضعه على لوحة الراسبيري باي.

وصل سلك (HDMI) وسلك محول التيار وذراع التحكم على لوحة الراسبيري باي وشغل الشاشة.

يمكنك الرجوع لطريقة التوصيل في الدرس الثاني.

 بعد توصيل الراسبيري باي بالطاقة سيبدأ النظام بالتهيئة.

منصة ألعاب الراسبيري باي

 راسبيري باي منصة ألعاب

راسبيري باي منصة ألعاب

تأكد أنك قمت بتوصيل ذراع التحكم بالراسبيري باي حتى يتعرف الراسبيري باي عليها حيث ستظهر رسالة: (GAMEPAD DETECTED 1)

منصة ألعاب الراسبيري باي

تعريف أزرار المتحكم مع الأوامر

لتحديد مهام أزرار المتحكم ستعمل على ربط  كل زر موجود على ذراع التحكم (يظهر اسم الزر باللون الرمادي) مع تعريفها على الراسبيري باي الظاهرة باللون الأسود الغامق:

بعد الانتهاء من تعريفها اضغط OK.

حجب الإعلانات الراسبيري باي وباي هول

تظهر في القائمة التي على اليسار أسماء ازرار المتحكم و نحدد في القائمة التي على اليمين اسم الزر بالنسبة للراسبيري باي.

راسبيري باي منصة ألعاب

بعد الانتهاء انقر على (OK).

الآن نظام ريترو باي (Retro Pie) أصبح مفعل ومهيئ للألعاب.

راسبيري باي منصة ألعاب

ألعاب ريترو باي (Retro)

1. تحميل الألعاب

بعد تنصيب نضام التشغيل الرترو باي (retropie) أصبح الراسبيري باي جاهز كمنصة ألعاب ـ ويمكن تحميل ألعاب الرومس (Roms game) التي تعد نسخة محاكاة للألعاب الشهيرة مثل ( العاب البلاستيشن – ألعاب الأتاري) فيمكنك لعب هذه الألعاب بدون امتلاك جهاز أتاري أو جهاز البلايستيشن ، ولتحميل الألعاب تحتاج إلى ذاكرة خارجية و يتم مسح بيانات الذاكرة وتهيئتها، ثم قم بانشاء مجلد داخل الذاكرة الخارجية باسم (retropie) يكتب بأحرف صغيرة  ثم داخل مجلد (retropie) أنشئ مجلد آخر باسم (roms).

سيكون عنوان الملف كالتالي:

F:\retropie\roms

اخرج الذاكرة الخارجية من جهاز الحاسوب وقم بتوصيلها مع لوحة الراسبيري باي ستبدأ لوحة الراسبيري باي بالوميض انتظر عدة دقائق حتى ينتهي الوميض.

راسبيري باي منصة ألعاب

بعد أن تم تهيئة الذاكرة قم باعادة توصيلها مع جهاز الكمبيوتر ستجد أن هناك عدة مجلدات تم اضافتها داخل المجلد الذي قمنا بانشائه (roms)  لتحميل الألعاب عليها.

roms

يمكنك الان تحميل الألعاب من خلال الرابط 

 في هذا الدرس سنقوم بتحميل لعبة  Mario Brothers (1988)  وهي أحد ألعاب(Atary 7800) 

راسبيري باي منصة ألعاب

بعد تحميل اللعبة قم بفك الملف المضغوط للعبة، واحفظ ملفات اللعبة داخل المجلد المناسب لها من مجلدات (roms) بالذاكرة.

لعبة Mario Brothers (1988) سيتم حفظها داخل مجلد (Atary 7800).

2.  رفع الألعاب على الراسبيري باي

قم بإعادة الذاكرة الخارجية للوحة الراسبيري باي انتظر عدة دقائق حتى ينتهي الوميض.

راسبيري باي

حتى تظهر كل الألعاب على واجهة ريترو باي اتبع الخطوات التالية:

اضغط على القائمة الرئيسية (MAIN MENU) ثم اضغط على (GAME COLLECTION SETTINGS):

تنصيب نظام التشغيل

اضغط على (AUTOMATIC GAME COLLECTIONS).

الراسبيري باي منصة ألعاب

اختر (ALL GAMES).

الراسبيري باي منصة ألعاب

ستظهر مباشرة قائمة الألعاب التي قمت بتحميلها.

بدء اللعبة

الآن قد اكتملت منصة الألعاب لتشغيل اللعبة يمكنك إدارة ذلك من خلال ذراع التحكم.

ريترو باي

تذكر فصل وحدة مزود الطاقة عند الانتهاء من استخدام المنصة.




استخدام الراسبيري باي كنقطة وصول لاسلكية (Access Point)

مقدمة

تساعدنا نقطة الوصول اللاسلكية لربط الجوال أو أجهزة الحاسوب الموجودة في الاماكن التي لا تصلها إشارة الانترنت أو تكون ضعيفة بدلاً من استخدام الأسلاك والكابلات في هذا الدرس ستتعلم كيف تستخدم الراسبيري باي كنقطة وصول لاسلكية تساعدك على توزيع شبكة الانترنت وتوسيع نطاق الإشارة وتدعيم الانترنت اللاسلكي في المنزل أو مكاتب العمل أو المقاهي.

الراسبيري باي نقطة وصول لاسلكية

المواد والأدوات

الرازبيري باي نقطة وصول لاسلكية

 1× راسبيري باي

raspberry-pi-sandisk

 1× كرت ذاكرة

raspberry-pi-HDMI

 1× سلك (HDMI)

raspberrypi-cable

1× محول تيار (5V-2A)

المروحة نقطة وصول لاسلكية

1× مروحة الراسبيري باي

سلك ايثرنت - الراسبيري باي - نقطة وصول لاسلكية

1× سلك ايثرنت

 

1 × مسرب حراري 

تبريد المعالج

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

ثبت المسرب الحراري على وحدة (SOC) ووحدة (USB controller)

wifi

وصل السلك الأحمر لمروحة التبريد(الموجب) مع المنفذ رقم 4

وصل السلك الأسود لمروحة التبريد (السالب) مع المنفذ رقم 6

raspberry-pi-connection

تصبح المروحة بهذا الشكل بعد تثبيتها.

المروحة - رازبيري باي - نقطة اتصال لاسلكية

تثبيت خادم (dnsmasq) ومضيف نقطة الوصول

أولا، سوف تحتاج إلى تثبيت نظام الراسبيان على الراسبيري باي إذا لم تكن قد فعلت ذلك قم بالإطلاع على  الدرس الأول نظام تشغيل الراسبيري باي

وبعد تثبيت النظام، يمكنك تهيئة النظام من خلال الرجوع  للدرس الثاني تهيئة نظام التشغيل

افتح الشاشة السوداء LXterminal للبدء بإعداد نقطة وصول لاسلكية باستخدام الراسبيري باي.

LX نقطة اتصال لاسلكية راسبيري

للبدء، قم بإستخدام الـ Termial  لتحديث الراسبيري باي إلى أحدث إصدار.

sudo apt-get update
sudo apt-get upgrade

ثم أعد تشغيل الراسبيري باي:

reboot

يعد خادم (dnsmasq) من الخيارات الجيدة عند بناء الشبكات الصغيرة فهو مصدر مفتوح وسهل التكوين وبحجم صغير، وتكمن أهميته في تنفيذ وظائف  (DNS): لتحليل أسماء النطاق  إلى عنوان IP للاتصال، و تنفيذ وظائف (DHCP) : لتوفير عنوان IP لأجهزة الكمبيوتر المتصلة بالشبكة.

وكذلك سنقوم بتحميل حزمة نقطة الوصول (hostapd)

و لتثبيت حزمة (dnsmasq) و حزمة (hostapd)اكتب الأمر التالي:

sudo apt install dnsmasq
sudo apt install hostapd

نظرًا لأن ملفات التكوين ليست جاهزة بعد، قم بإيقاف تشغيل البرنامج بكتابة الأمر التالي:

sudo systemctl stop dnsmasq
sudo systemctl stop hostapd

تكوين IP ثابت

يحتاج الراسبيري باي إلى الحصول على عنوان IP ثابت مخصص للمنفذ اللاسلكي. سنقوم بتعيين عنوان IP للخادم 192.168.4.1. الجهاز اللاسلكي المستخدم هو wlan0. لتكوين عنوان IP الثابت ، قم بتحرير ملف تكوين dhcpcd باستخدام:

sudo nano /etc/dhcpcd.conf

قم بتحرير الملف باضافة الأسطر التالية:

interface wlan0 
static ip_address=192.168.4.1/24 
nohook wpa_supplicant

أعد تشغيل (dhcpcd) بكتابة السطر التالي:

sudo service dhcpcd restart

تكوين خادم DHCP (dnsmasq)

يتم توفير خدمة DHCP من خلال dnsmasq. بشكل افتراضي. أعد تسمية ملف التكوين، وقم بتحرير ملف جديد من خلال كتابة الأسطر التالية:

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf

سنقوم بتوفير عناوين IP بين 192.168.4.2 و 192.168.4.20، مع فترة تأجير تبلغ 24 ساعة، ولذلك اكتب في ملف تكوين dnsmasq الأسطر التالية:

interface=wlan0 # Use the require wireless interface - usually wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h

ثم اضغط ctrl , x ثم Y لحفظ الملف.

فعل dnsmasq سيستخدم الآن التكوين المحدث:

sudo systemctl start dnsmasq

تكوين برنامج مضيف نقطة الوصول اللاسلكية (hostapd)

تحتاج إلى تحرير ملف تكوين hostapd ؛ لإضافة المعلومات الخاصة بنقطة الوصول اللاسلكية.

اكتب السطر التالي للوصول لملف التكوين:

sudo nano /etc/hostapd/hostapd.conf

ادخل البيانات التالية وحدد عنوان نقطة الوصول اللاسكية (ssid) الذي تريده و الرقم السري مع مراعاة أن يتراوح طول الرقم السري بين 8 و 64 حرفًا.

interface=wlan0
driver=nl80211
ssid=NameOfNetwork
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YOURPASS
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

ثم اضغط ctrl , x ثم Y لحفظ الملف

حدد للنظام المثبت على الراسبيري باي مكان العثور على ملف التكوين الذي تم إنشاؤه:

sudo nano /etc/default/hostapd
ثم اكتب السطر التالي في نهاية الملف:
DAEMON_CONF="/etc/hostapd/hostapd.conf"

تفعيل الاتصال

تفعيل وتمكين برنامج مضيف نقطة الاتصال بالأوامر التالية:

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

اضف التويجه:

sudo nano /etc/sysctl.conf

ثم اكتب السطر التالي داخل الملف واحفظ الملف:

net.ipv4.ip_forward=1

اكتب الأمر التالي:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sudo nano /etc/rc.local
iptables-restore < /etc/iptables.ipv4.nat

الراسبيري باي كنقطة وصول لاسلكية في أجهزة الحاسوب.

 الرازبيري باي كـ نقطة وصول لاسلكية

استخدام الرازبيري باي كـ نقطة وصول لاسلكية في منازلنا أو مكاتب عملنا

وكنقطة وصول لاسلكية في هاتفك المحمول أيضًا.

استخدام الراسبيري باي كـ نقطة وصول لاسلكية في هواتفنا المحمولة

يمكنك اختبار سرعة الانترنت من خلال التطبيقات أو المواقع المخصصة لذلك.

سرعة الراسبيري باي كـ نقطة وصول لاسلكية




التحكم بالـ LED من خلال Node-RED

خلال هذا المشروع، ستتعرف على كيفية استخدام الـ Node-RED للتواصل مع منافذ GPIO الخاصة بالـ Raspberry Pi.
سنقوم بإنشاء تدفق Node-RED للتحكم في LED.

getting-started-with-node-red

القطع المطلوبة :

الأدوات التي تحتاجها لهذا المشروع :

5mm Red LED

العدد :1

220 Ω resistor

مقاومة 220 اوم

العدد :1

لوح تجارب صغير

Raspberry Pi 3 Model B

Female-Male Jumper Wires

 اسلاك توصيل أنثى/ذكر (Jumper Wires Female/male)

5V 2A Switching Power Supply MicroUSB Cable

Power Supply

Samsung 8Gb Class 6 Microsd Memory Card 2

Samsung 8Gb Class 10 Microsd Memory Card

تصميم لوحة التجارب:

قم بتوصيل الـ LED إلى منفذ GPIO 17 على الـ Raspberry Pi من خلال اتباع الشكل التالي :

getting-started-with-node-red

عادة ما يكون الطرف الموجب للـ LEDأطول، وهذا الطرف موصل إلى الـ GPIO 17 على الجانب الأيسر من اللوح.

البدء مع الـ Node-RED

ابدأ من الـ Raspberry Pi ، قم بالنقر على أيقونة Raspberry (القائمة الرئيسية) ، ثم قائمة البرمجة Programming لفتح Node-RED

getting-started-with-node-red

يجب أن تشاهد نافذة تعرض معلومات حول بدء تشغيل Node-RED

getting-started-with-node-red

انتقل الآن إلى قائمة الإنترنت وافتح متصفح الويب Chromium .

getting-started-with-node-red

في المتصفح عند شريط العنوان في الأعلى قم بكتابة localhost:1880 ، ثم اضغط على Enter .  سيعرض هذا واجهة الـ Node-RED

getting-started-with-node-red

لا يحتاج جهاز الراسبيري باي إلى الاتصال بالانترنت لاستخدام Node-RED: localhost هو العنوان الذي يستخدمه الراسبيري باي للإشارة إلى نفسه و :1880 يعني ان يستخدم المنفذ 1880.

إنشاء التدفق

أولا الاتصال بمنفذ GPIO :

البرامج في الـ Node-RED تسمى تدفقات. يمكنك إنشاء العديد من التدفقات كما تريد، ويمكن تشغيلها كلها في نفس الوقت.
البلوك الملونه على الجانب الأيسر من الواجهة هي العقد. قم بالتمرير إلى اسفل القائمة وسترى بعض العقد المسمى بـ Raspberry Pi.

getting-started-with-node-red

سترى عقدتين مسمية بإسم rpi gpio هذه هي التي يتم استخدامها للتحدث إلى منافذ GPIO في الراسبيري باي. أول واحد في القائمة ، مع رمز التوت على اليسار، هو للمدخلات. مثل استخدام زر الضغط للتحكم في شيء ما. العقدة الثانية، مع رمز الراسبيري باي على اليمين، هي للمخرجات.
سيتم استخدام العقدة الخاصة بالمخرجات ، قم عقدة الإخراج إلى الصفحة الفارغة في المنتصف.

getting-started-with-node-red

انقر نقرا مزدوجا على العقدة وسيظهر مربع يتيح لك إعداد وتهيئة هذه العقدة.

أولا نقوم بتحديد منفذ الـ GPIO الذي تم استخدامه GPIO17، وتحديد القيمة الابتدائية للمنفذ low . يمكنك تغير اسم العقد هنا تم تسميتها بإسم Green LED . عند الإنتهاء ، انقر فوق تم Done.

getting-started-with-node-red

ثانيا التحكم بمخرجات المنفذ :

الآن انتقل مرة أخرى إلى قائمة العقد. لتشغيل وإيقاف الـ LED، نحن بحاجة إلى عقدة إدخال. في Node-RED، يمكننا إدخال الرسائل في التدفقلتؤدي بعد ذلك إلى حدوث أشياء نتيجة لذلك. قم بسحب عقدة الإدخال inject node للتدفق.

getting-started-with-node-red

انقر نقراً مزدوجاً فوق عقدة الإدخال inject node . استخدم القائمة المنسدلة بجانب Payload لتغير نوع البيانات إلى string . قم بكتابة القيمة 1 في مربع Payload – ستمثل هذه الرسالة قيمة 1 والتي سيتم اخراجها على المنفذ ليتم تشغيل الـ LED.
يمكنك تغير اسم العقدة إلى ON.

 

getting-started-with-node-red

كرر الخطوات السابقة لإنشاء عقدة إدخال أخرى، ولكن سيتم إخراج قيمة 0 كرسالة محمولة، وتسمية هذه العقدة OFF.

Create two inject nodes

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

getting-started-with-node-red

نشر التدفق

تم الانتهاء من التدفق، حتى نتمكن من نشره. انقر على زر Deploy الأحمر الكبير أعلى يمين الشاشة. ستظهر رسالة في الأعلى تقول تم نشرها بنجاح “Successfully deployed”

getting-started-with-node-red

انقر الآن على المربع الأزرق على يسار العقدة on لإدخال الرسالة 1. تتلقى عقدة Green LED الرسالة وينبغي أن يضيء الـ LED. يجب أن تكون قادراً على إيقاف تشغيل الـ LED بالنقر على عقدة OFF.

getting-started-with-node-red