كيف بنيت أول مستقبِل ADS-B لي، في يوم أحد، في بروكسل

كُتب في مايو 2026. وقد تغير مثبّت المغذّي منذ ذلك الحين: للخطوات الحالية، اتبع ورشة العمل على radar.dataero.eu.
شرح غير تقني جدًا بقلم شخص ليس، بالمعنى الدقيق، تقنيًا جدًا.
حسنًا إذن.
يوم السبت الماضي عدت من رحلة قصيرة إلى لو توكيه. رياح جنوبية غربية بسرعة 12 عقدة، من ذلك الطقس الذي يجعلك تنسى أن التوقعات كانت تقول إنه سيكون أسوأ. وفي طريق العودة — في مكان ما فوق با دو كاليه، أراقب على SkyDemon سلسلة هادئة من طائرات A320 على ارتفاع عدة آلاف من الأقدام فوقي — خطرت لي فكرة خطرت لي أربع مرات على الأقل من قبل ولم أعمل بها قط.
ينبغي أن أنصب مستقبِل ADS-B.
هذه المرة، في القطار عائدة من غريمبرغن، طلبت القطع.
بحلول غداء الأحد كنت أشاهد الطائرات فوق بروكسل بعتادي الخاص. من حافة نافذة. وغلاية الماء تعمل. استغرق الأمر كله نحو ساعتين ونصف، وفنجانَي قهوة، ولحظة حيرة قصيرة واحدة حُلّت من تلقاء نفسها عندما قرأت سطر الوثائق الذي كنت قد تجاوزته. وأقدّر أن تسعين دقيقة من المجموع كانت قراءتي بعناية أكبر مما كنت أحتاج فعلًا.
هذا المقال لكل من فتح يومًا دليلًا عن Raspberry Pi وأغلق التبويب بهدوء. إنه نسخة الدليل التي كنت أتمناها صباح السبت.
قائمة المشتريات
كان لدي جهاز Raspberry Pi 5 في درج. ليس لدي تفسير جيد لذلك؛ اشتريته الربيع الماضي بنية فعل شيء مثير للاهتمام ثم لم أفعل. إن لم يكن لديك Pi بالفعل، فاحصل على Pi 5 (8 GB تكفي وزيادة) ومزود طاقة. ويعمل Pi 4 الأقدم جيدًا — فقط كان Pi 5 هو ما لدي.
وأضفت إلى ذلك شيئين من Amazon.de:
- دونغل SDR بمنفذ USB من نوع NooElec NESDR Smart — هيكل من الألومنيوم، وشريحة R820T2، بحجم ذاكرة USB سميكة مع مقبس هوائي صغير في أحد طرفيه. نحو 30 يورو. (وهو، إنصافًا، أجمل قطعة عتاد في شقتي.)
- هوائي Bingfu ثنائي النطاق بقاعدة مغناطيسية — 978 / 1090 MHz، و7 dBi، وثلاثة أمتار من الكابل، وموصل SMA. نحو 25 يورو. يبدو كمملحة سوداء صغيرة فوق قرص مغناطيسي. وهو، في عمومه، جيد. المزيد عنه في الأسفل.
إضافة إلى بطاقة microSD اضطررت إلى نبشها من درج مكتب. (كانت هناك منذ نحو عام 2019. وقد عاشت حياة أكثر إثارة مما أنصفتها به.)
إجمالي الإنفاق، بما أن Pi كان لي أصلًا: نحو 55 يورو وصباح أحد واحد. الأسعار تتقلب — فالعروض على Amazon تتغير مع المخزون والبائعين، لذا تحقق قبل الشراء؛ وتعامل مع الأرقام هنا كدليل تقريبي للحجم، لا كعرض سعر.
الأسطورة، والواقع
الأسطورة هي أن إعداد Pi هو الجزء من المشروع الذي تكتشف فيه أنك لا تفهم حقًا الحواسيب، أو شبكة wifi لديك، أو نفسك.
والواقع أقرب إلى التحضير للطيران. هناك قائمة تحقق؛ تنفذها بالترتيب؛ وإن فاتتك خطوة اكتشفت ذلك في غضون أربعين ثانية لأن شيئًا ما لا يعمل. وأهل الطيران مدرَّبون على حب هذا. وكل من طار في دائرة الهبوط وأجرى فحص HASELL يملك العقل المناسب لهذه الهواية.
إذن — قائمة التحقق.
ما الذي يحدث فعلًا على هذا الجهاز
برنامجان ينتهي بهما المطاف على هذا الصندوق الصغير.
الأول هو readsb — مفكك شفرة مفتوح المصدر تصونه مجموعة صغيرة من الأشخاص الذين يفهمون هندسة الراديو أكثر مما هو صحي لإنسان واحد. يستمع إلى النبضات الخافتة على 1090 MHz التي يلتقطها الدونغل من الهوائي، ويفكك آلاف إشارات أجهزة الإرسال والاستقبال المتداخلة للطائرات كل ثانية، ويكتب النتيجة في ملف JSON مرتب مرة كل ثانية. وهو، في عمومه، الجزء الصعب من المشروع كله. وقد أنجزه شخص آخر بالفعل.
والثاني هو مغذّي Dataero — خدمة Python صغيرة تقرأ ملف JSON الخاص بـreadsb وتمرّره إلى شبكة Dataero على radar.dataero.eu. إنه النصف السهل من المشكلة؛ وهو أيضًا النصف الذي يجعل عتادك مفيدًا لأي شخص غيرك.
تثبّت readsb أولًا، وتتأكد من أنه يسمع الطائرات، ثم تثبّت مغذّي Dataero فوقه.
هذه هي البنية كلها. ومن هنا الأمر حقًا مجرد قائمة تحقق.
الخطوة 1 — كتابة بطاقة SD
نزّل Raspberry Pi Imager على حاسوبك المحمول. يوجد لنظم Windows وMac وLinux، وهو بهدوء واحد من أفضل برامج التثبيت التي استخدمتها على الإطلاق. أدخل بطاقة SD في حاسوبك المحمول. اختر Raspberry Pi OS Lite (64-bit) — Lite، لأنه لا حاجة إلى سطح مكتب على شيء سيعيش على حافة نافذة ولن يرى شاشة أبدًا.
قبل أن تنقر Write، افتح إعدادات أيقونة الترس. اضبط اسم المضيف (اسمي هو radar-etterbeek، لأنني لست خفية الذوق)، واضبط اسم مستخدم وكلمة مرور، والصق بيانات اعتماد wifi، وعلّم Enable SSH. هذا يُعدّ مسبقًا كل ما تحتاج إليه؛ ولن تضطر إلى توصيل شاشة بجهاز Pi في أي مرحلة.
انقر write. أحضر قهوة. عد بعد خمس دقائق.
الخطوة 2 — تشغيل Pi
أخرج بطاقة SD من الحاسوب المحمول. أدخلها في الجهة السفلية من Pi. وصّل مزود الطاقة.
هناك صمت خاص يخيّم على المطبخ عندما يُقلع Raspberry Pi للمرة الأولى. دام نحو تسعين ثانية في مطبخي. على أنغام Brothers in Arms، وهو ما بدا مناسبًا تمامًا.
عندما ينتهي Pi من التفكير، اعثر عليه في شبكتك. صفحة إدارة الراوتر هي أسهل طريقة — ابحث عن radar-etterbeek (أو أيًا كان ما سميته) ودوّن عنوان IP.
الخطوة 3 — الدخول عبر SSH والتحديث
من طرفية حاسوبك المحمول:
ssh sandy@192.168.1.42(استخدم اسم المستخدم الخاص بك وعنوان IP لجهاز Pi.) في المرة الأولى سيسألك إن كنت تثق بالمضيف. أنت تثق به. ثم:
sudo apt update && sudo apt upgrade -yيستغرق هذا بضع دقائق. أعدّ قهوة ثانية.
الخطوة 4 — توصيل الدونغل والهوائي
أطفئ Pi (sudo shutdown now). وصّل دونغل NooElec بأحد منافذ USB-A في Pi. اربط كابل SMA الخاص بالهوائي بطرف الدونغل — بإحكام الأصابع، ثم ربع دورة بإصبعين؛ ولا تتحول إلى بطل بالكماشة.
انصب الهوائي في مكان يطل على السماء. وضعت هوائيي على الجهة الداخلية من نافذة غرفة المعيشة، على القرص المغناطيسي الملتصق بعلبة بسكويت فولاذية لأن حافة النافذة خشبية. أي شيء ينفع.
أعد تشغيل Pi. ادخل مجددًا عبر SSH.
الخطوة 5 — إنشاء حساب Dataero والحصول على مفتاح API
خطوتان قصيرتان في المتصفح لا تجريان على Pi.
- افتح radar.dataero.eu في متصفح حاسوبك المحمول. انقر Register، واملأ النموذج، وأكّد بريدك الإلكتروني إن طُلب منك.
- بعد تسجيل الدخول، انقر اسم المستخدم في الزاوية العلوية اليمنى، وانتقل إلى Profile، واعثر على قسم API Key، وانقر Request API Key. انسخ المفتاح إلى مكان يمكنك العثور عليه فيه خلال الثلاثين ثانية القادمة.
هذا كل شيء. تعامل مع المفتاح ككلمة مرور — لا تلصقه في Discord، ولا تودعه في مستودع عام، ولا تقرأه بصوت عالٍ على العشاء.
الخطوة 6 — تثبيت مغذّي Dataero
عودة إلى جلسة SSH على Pi. ينبغي أن تكون ما زلت في مجلد dataero-adsb-feeder من الخطوة 5؛ وإن كنت قد ابتعدت:
cd ~/dataero-adsb-feederثم شغّل مثبّت المغذّي:
sudo bash installer.shسيطرح عليك بضعة أسئلة مهذبة — وأهمها أن تلصق مفتاح API الذي نسخته للتو من ملفك الشخصي في Dataero. ينشئ المثبّت بيئة Python افتراضية تحت /usr/local/dataero-adsb-feeder، ويضع مفتاحك في ملف .env هناك، ويسجّل المغذّي كخدمة systemd تبدأ عند الإقلاع.
عندما ينتهي، تحقق من أنه يعمل:
sudo systemctl status dataero-feeder.serviceالتمرين نفسه: active (running)، بالأخضر. وإن لم يكن كذلك، فالسبب الأكثر شيوعًا هو خطأ إملائي في مفتاح API، وهو ما سيذكره journalctl -u dataero-feeder.service -e بصراحة لافتة.
الخطوة 7 — الاتصال الأول
افتح radar.dataero.eu مرة أخرى، وسجّل الدخول، واعثر على محطتك على الخريطة. في غضون دقيقة أو دقيقتين من بدء المغذّي ينبغي أن ترى علامة محطتك تتحول إلى الأخضر وكوكبة صغيرة من الطائرات تنتشر منها.
أول طائرة رأيتها كانت A320 تابعة لـLufthansa تصعد من فرانكفورت على FL340، متجهة غربًا. والثانية كانت Boeing C-17 عالية فوق هولندا، متجهة شرقًا على FL310 — في الطريق الطويل إلى مكان ما في الخليج على الأرجح. والثالثة هي التي جعلتني أبتسم ابتسامة عريضة حقًا: Cirrus SR22 — ليست طائرتي، لكنها قريبة بما يكفي — تتجول صعودًا على الساحل البلجيكي.
تلك هي اللحظة. بمجرد أن تشاهد مساراتك الثلاثة أو الأربعة الأولى تظهر على شاشتك، ملتقطة بعتادك أنت، ينتهي الجزء التقني من المشروع ويبدأ جزء الهواية.
أوامر مفيدة ستحتاج إليها لاحقًا
بطاقة مرجعية قصيرة لعندما تعود في عطلة نهاية الأسبوع القادمة وقد نسيت كل شيء:
# Status
sudo systemctl status readsb
sudo systemctl status dataero-feeder.service# Live logs
sudo journalctl -u readsb -f
sudo journalctl -u dataero-feeder.service -f# Restart after editing config
sudo systemctl restart dataero-feeder.service# Edit the feeder's config (API key, paths, debug)
sudo nano /usr/local/dataero-adsb-feeder/.envضبط DEBUG=TRUE في ملف .env وإعادة تشغيل الخدمة هو الخطوة الأولى الصحيحة عندما يكون شيء ما غير سعيد والسبب غير واضح. أعده إلى FALSE بعد حل المشكلة؛ فالسجلات تكون أهدأ هكذا.
ما الذي يمنحك إياه هوائي داخلي فعلًا
بصراحة؟ أكثر مما توقعت، وأقل مما أتمنى.
من نافذتي في إتربيك أرى، في الهندسة المناسبة، أي شيء تقريبًا فوق 5,000 قدم في نطاق نحو 100 ميل بحري. وهذا يشمل أغلب الوصول إلى زافنتم، والحركة الأوروبية على الارتفاعات العالية التي تعبر بلجيكا، ومعظم طائرات الطيران العام الخارجة من غريمبرغن وشارلروا بمجرد تجاوزها المباني.
ما يفوتني هو المنخفض والقريب — تدريبات دائرة الهبوط في المطارات الصغيرة، والمروحيات تحت 1,500 قدم، والرحلات الطبية ليلًا التي تبقى منخفضة. هوائي Bingfu يؤدي المهمة التي صُمم لها، وهي أن يكون صغيرًا، وداخليًا، ومعقولًا. ولم يُصمَّم ليكون أفضل ما يمكنك فعله.
لذا فعلت ما فعله كل مغذّي ADS-B قبلي. أنا أتطلع بالفعل إلى هوائي خارجي. هوائي Auratrove 1090 SMA outdoor، بنحو 60 يورو، هو الخطوة التالية الواقعية — كسب أفضل، ومقاوم للطقس، ويُثبَّت على درابزين الشرفة. والقفزة في الاستقبال من الداخلي إلى الخارجي، بشهادة الجميع، ليست طفيفة. سأعود بتقرير.
انحناءة صغيرة في اتجاه readsb
سيكون من الخطأ أن أختم هذا دون أن أقولها بوضوح: الجزء الذكي حقًا في هذا المشروع ليس Pi، وليس مغذّي Dataero أيضًا. إنه readsb. أما جانب Dataero — بما في ذلك هذا المقال كله — فهو النصف السهل.
readsb هو ما يستمع إلى النبضات الراديوية الخافتة على 1090 MHz من طائرات قد تبعد 200 ميل بحري، ويفكك آلاف رسائل Mode S المتداخلة كل ثانية، ويحوّل كل ذلك إلى ملف JSON نظيف على حاسوب صغير يكلف أقل من عشاء محترم. ينحدر من dump1090، وحمله Mictronics إلى الأمام، ويصونه حاليًا wiedehopf ومجتمع من المساهمين. لم يكتب أحد منا في Dataero أي جزء منه. نحن نمرّر البايتات فحسب.
لو كان هذا البرنامج فرقة موسيقية، لكان readsb المغني الرئيسي، وعازف الغيتار الرئيسي، وعازف الطبول، وعازف الباص، والمنتج، ومهندس الصوت، والشخص الذي كتب كل الأغاني. ومغذّي Dataero هو من يوزع المنشورات عند الباب.
إذن — انحناءة صغيرة، بصدق.
ملاحظة عن Dataero
وجّهت تغذيتي إلى Dataero — شبكة ADS-B الأوروبية التي يبنيها المجتمع ونديرها — جزئيًا لأنها مكان عملي، وجزئيًا لأن إضافة مستقبِلي إلى شبكة يملكها الأشخاص الذين يشغّلونها تروق لي أكثر من تسليم بياناتي إلى شركة لن أتحدث إليها أبدًا. التثبيت لا يختلف عن أي شيء آخر؛ ما يتغير هو ما يحدث للبيانات بعد ذلك.
إن كنت تغذّي شبكة ما بالفعل، فلست بحاجة إلى التحويل. Dataero تعمل بالتوازي.
ما كنت سأقوله لساندي صباح السبت
إن Raspberry Pi هو، في عمومه، مجرد حاسوب Linux صغير يؤدي شيئًا واحدًا جيدًا جدًا إن طلبت منه بلطف. وإن دونغل SDR بحجم ذاكرة USB. وإن الهوائي بحجم أداة مطبخ. وإن البرنامجين اللذين تحتاج إليهما يُثبَّتان كلاهما بسكربتات؛ وإن أحدهما سحر مفتوح المصدر والآخر مرحّل من ستين سطرًا؛ وإن لا شيء هنا لا يمكن إنقاذه. إن لم تنجح خطوة، فأعد قراءة السطر الذي فوقها وحاول مجددًا.
وإن الرضا الذي يمنحه فتح تبويب في المتصفح ومشاهدة طائرات حقيقية، التقطها عتادك أنت، الموضوع على حافة نافذتك، في شقتك — هو، بهدوء، أكبر بكثير من الجهد المبذول.
على أي حال. فنجان شاي، والعودة إلى العمل.
إن أردت إضافة عقدتك إلى Dataero، فمستودع المغذّي على github.com/dataero-adsb/dataero-adsb-feeder والشبكة التي ينضم إليها على radar.dataero.eu. سأكون عليها هذا المساء.
شاهدها ببياناتك الخاصة
أخبرنا عن مطارك أو هيئتك أو أسطولك وسنريك ما تراه الشبكة هناك بالفعل.