سرور در ابرها: آماده شدن برای راه اندازی

В پست در مورد رگاتا گفتیم که در مرداد ماه مسابقه ای با جوایز برای همه حبراژیتل ها برگزار می شود. زمان پاره کردن پرده پنهان کاری فرا رسیده است. به نوعی به این ایده رسیدیم که عبارت "سرور در ابرها" را می توان به معنای واقعی کلمه برداشت کرد. بیایید در واقع یک سرور فعال در آسمان راه اندازی کنیم که می توان آن را پینگ کرد! در ابتدا این ایده احمقانه به نظر می رسید، اما پس از پیچاندن آن به این طرف و آن طرف و بحث در مورد آن، در نهایت راهی برای ارسال سرور به سمت پرندگان پیدا کردیم. در پایان ماه آگوست یک راه اندازی دوران ساز انجام خواهد شد، اما در حال حاضر ما روی بخش سخت افزاری پروژه کار می کنیم. جزئیات زیر برش.

سرور در ابرها: آماده شدن برای راه اندازی

  1. این سرور مبتنی بر Raspberry Pi 3 خواهد بود

    بالا بردن یک سرور تک واحدی در هوا جالب خواهد بود، اما وزن آن + وزن یو پی اس... همه اینها به نیروی بالابر قابل توجهی نیاز دارد. و چرا، اگر بر اساس یک Raspberry Pi 3 جمع و جور می‌توانید یک سرور کاملاً مناسب را با قدرت محاسباتی چند صد برابر بیشتر از ماشینی که تیم برنرز لی در سال 1991 با آن سرگرم می‌کرد، مستقر کنید.

  2. بیایید سرور را در یک بالون هوای گرم راه اندازی کنیم

    ما ایده‌هایی برای بلند کردن سرور روی یک کاوشگر هلیوم داشتیم، اما بعد از آن سرور برای مدت طولانی پینگ نمی‌کرد تا اینکه بالون در ارتفاع بالا در یک فضای کمیاب منفجر شود و کل ساختار روی زمین بیفتد. من می خواستم "پنجره" زمان پخش را به یک ساعت و نیم افزایش دهم. و سپس آنها تصمیم گرفتند از یک بالون استفاده کنند. مدت زمان پرواز دو ساعت است. علاوه بر این، اگرچه پرواز کاملاً قابل کنترل نیست، ممکن است مهندس ما در سبد باشد که در صورت بروز نقص، بتواند به سرعت، درست در محل، آن را «روشن و خاموش کند».

  3. ما از ارتباطات سلولی به عنوان شبکه حمل و نقل استفاده خواهیم کرد

    آنتن های WiFi مدرن می توانند فواصل بسیار طولانی را "سوراخ" کنند، اما برای این کار لازم است یک مجتمع ارتباطی ساخته شود که از نظر پارامترهای آن نسبت به یک ایستگاه رادار نظامی بسیار پایین تر نباشد. و به خاطر 1,5-2 ساعت ارتباط، ساختن چنین سیستمی بی معنی است، زیرا در ارتفاع بالون، ارتباطات سلولی باید به طور پایدار کار کنند.

پس از تدوین این "مسئولات"، پروژه دیگر غیرقابل اجرا به نظر نمی رسید و به زودی ما در هر سه جهت به طور همزمان شروع به کار کردیم.

اول از همه، ما به بچه های از nearspace.ru، که سگ را خورد در حالی که انواع قطعات آهن را به هوا پرتاب کرد (با جستجو و نجات بعدی).

سپس Raspberry Pi 3 را که روی میز کنار تخت مدیر ما قرار داشت بیرون آوردیم و شروع به تنظیم آن کردیم.

سرور در ابرها: آماده شدن برای راه اندازی
دوربین را وصل کرد:

سرور در ابرها: آماده شدن برای راه اندازی
و ما آن را روی "Semyon" خود آزمایش کردیم:

سرور در ابرها: آماده شدن برای راه اندازی
سمیون به عنوان یک مدل و دستیار بسیار راحت است - او غذا نمی خواهد، تلفن حواسش پرت نمی شود، همیشه در خلق و خوی عالی است و با لبخندی گسترده از سراسر کلاه خود. البته ما برای پرواز به چنین لباس فضایی نیاز نداریم، اما فضای مناسبی را در دفتر ایجاد می کند.

طرح کلی پروژه به شرح زیر است:

سرور در ابرها: آماده شدن برای راه اندازی
پاوربانک برای آزمایش زمینی استفاده می شود؛ برای راه اندازی به چیزی قابل اعتمادتر نیاز است.

شاید جالب‌ترین قطعه سخت‌افزار، بردی برای دریافت داده‌ها از همه حسگرها باشد:

سرور در ابرها: آماده شدن برای راه اندازی
بچه ها از nearspace.ru ما برای مدت طولانی با آنالوگ های مختلف مبارزه کردیم و سپس خودمان یک رایانه داخلی ساختیم، زیرا قابلیت اطمینان از اهمیت تعیین کننده ای برخوردار است، سرنوشت کل پروژه به داده های تله متری بستگی دارد. رایانه داخلی وظیفه دریافت اطلاعات از تمام سنسورهای متصل و انتقال آنها به Raspberry Pi را بر عهده دارد.

ما آن را راه اندازی کردیم، پیکربندیش کردیم و پس از چند هفته برنامه نویسی و چمباتمه زدن با تنبور، موفق شدیم داده های تله متری و عکس سمیون را از یک دوربین زاویه باز به دست آوریم:

سرور در ابرها: آماده شدن برای راه اندازی
داده های تله متری در یک خط به شکل زیر ارسال می شود:

سرور در ابرها: آماده شدن برای راه اندازی
سپس این کد رشته را به یک آرایه تبدیل می کند و داده ها را به سایت خروجی می دهد:

$str = 'N:647;T:10m55s;MP.Stage:0;MP.Alt:49;MP.VSpeed:0.0;MP.AvgVSpeed:0.0;Baro.Press:1007.06;Baro.Alt:50;Baro.Temp:35.93;GPS.Coord:N56d43m23s,E37d55m68s;GPS.Home:N56d43m23s,E37d55m68s;Dst:5;GPS.HSpeed:0;GPS.Course:357;GPS.Time:11h17m40s;GPS.Date:30.07.2018;DS.Temp:[fc]=33.56;Volt:5.19,0.00,0.00,0.00,0.00,0.00,0.00,0.00';
parse_str(strtr($str, [
	
':' => '=',
	
';' => '&'
]), $result);
print_r($result);

شرح برخی از داده ها:

  • N:2432; - تعداد بسته داده، همیشه در حال افزایش است
  • T:40m39s; - زمان از لحظه روشن شدن کنترلر پرواز
  • MP.Stage:0; - مرحله پرواز (0 - روی زمین یا زیر 1 کیلومتر، 1 - صعود، 2 - شناور در ارتفاع، 3 - فرود)
  • MP.Alt:54; - ارتفاع فشارسنجی بر حسب متر از سطح دریا - باید نمایش داده شود
  • MP.VSpeed:0.0; - سرعت عمودی بر حسب متر بر ثانیه با فیلتر میانه
  • MP.AvgVSpeed:0.0; - سرعت عمودی بر حسب متر بر ثانیه با فیلتر میانگین
  • بارو.پرس:1006.49; - فشار فشارسنج بر حسب میلی بار
  • Baro.Alt:54; - ارتفاع با توجه به فشارسنج
  • Baro.Temp:36.99; - دمای خود فشارسنج
  • GPS.Coord:N56d43m23s,E37d55m68s; - مختصات فعلی
  • GPS.Home:N56d43m23s,E37d55m68s; - مختصات نقطه شروع
  • GPS.Alt:165; - ارتفاع GPS بر حسب متر
  • GPS.Dst:10; - فاصله از نقطه شروع به متر
  • DS.Temp:[fc]=34.56; - سنسور دما روی برد

خروجی به چه صورت است:

Array 
(
       [N] => 647
       [Т] => 10m55з
       [MP_Stage] => 0
       [MP_Alt] => 49
       [MP_VSpeed) => 0.0
       [MP_AvgVSpeed] => 0.0
       [Baro Рrеss] => 1007.06
       [Baro_Alt] => 50
       [Baro_Temp] => 35.93
       [GPS_Coord] => N56d43m23s,E37d55m68s 
       [GPS_Home) => N56d43m23s,E37d55m68s 
       [Dst] => 5
       [GPS_HSpeed] => 0
       [GPS_Course] => 357
       [GPS_Time] => 11h17m40s
       [GPS_Date] => 30.07.2018
       [DS_Temp] => [fс] ЗЗ.56
       [Volt] => 5.19, 0.00,0.00,0.00,0.00,0.00,0.00,0.00 
)

در صورت سقوط ارتباطات سلولی چه باید کرد؟ برای این مورد، ما یک کارت دوم داریم؛ دو سیم کارت در مودم (هر بار یک اسلات) وارد می شود:

سرور در ابرها: آماده شدن برای راه اندازی
اگر کانال اصلی به طور ناگهانی پاسخ ندهد، می تواند به طور خودکار به یک کانال یدکی تبدیل شود.

اگر هر دو شبکه تلفن همراه از دسترس خارج شوند چه اتفاقی می افتد؟

سرور در ابرها: آماده شدن برای راه اندازی(پسر از شماره «یرالاش» شماره 45 بی جهت نیست که او "نظریه احتمال" را می خواند)

در این صورت یک ردیاب GPS مستقل خواهیم داشت که سیگنالی در مورد موقعیت خود ارسال می کند. لطفاً توجه داشته باشید که این کار را نه از طریق یک شبکه تلفن همراه، که در دسترس بودن آن در فواصل طولانی توسط کسی تضمین نمی شود، بلکه از طریق یک ماهواره انجام می دهد.

سرور در ابرها: آماده شدن برای راه اندازی
بله، ردیاب GPS تا حدودی بزرگتر از ردیاب است که در زیر پوست جیمز باند کاشته شده است. از آنجایی که رقابت ما به مختصات سرور پرواز بستگی دارد، این بخش از داده های دریافتی از برد مهم ترین خواهد بود. اما در پست بعدی در این مورد صحبت خواهیم کرد. به زودی، وبلاگ ما را دنبال کنید!

ما آنقدر به موفقیت کل شرکت اعتقاد داریم که حتی برای کسانی که ناگهان می خواهند حدس بزنند توپ کجا فرود می آید، مسابقه ای اعلام کردیم. جزئیات در ما مطلب جدید.

منبع: www.habr.com

اضافه کردن نظر