云中的服务器:准备启动

В 关于帆船赛的帖子 我们提到,八月将为所有 Habrazhitels 举办一场有奖竞赛。 揭开秘密面纱的时候到了。 不知何故,我们发现“云中的服务器”一词可以按字面意思理解。 让我们实际启动一个可以 ping 通的工作服务器! 起初这个想法看起来很疯狂,但经过这样那样的扭曲,通过各种方式讨论后,我们终于想出了一种将服​​务器发送到鸟儿的方法。 划时代的发布将于八月底进行,但目前我们正在研究该项目的硬件部分。 细节下切。

云中的服务器:准备启动

  1. 服务器将基于 Raspberry Pi 3

    将单体服务器吊到空中会很有趣,但它的重量+UPS 的重量……所有这些都需要相当大的升力。 为什么,如果在紧凑的 Raspberry Pi 3 的基础上,您可以部署一个相当不错的服务器,其计算能力比 Tim Berners-Lee 在 1991 年玩的机器强数百倍。

  2. 让我们在热气球中启动服务器

    我们有想法用氦探测器举起服务器,但服务器不会发出响声,气球在高空稀薄大气中爆炸,整个结构就会坠落到地面。 我想将播出时间“窗口”扩大到一个半小时。 然后他们决定使用气球。 飞行时间为两个小时。 另外,虽然飞行不是完全可控的,但篮子里可能有我们的工程师,一旦出现故障,可以在现场迅速“打开和关闭它”。

  3. 我们将使用蜂窝通信作为传输网络

    现代WiFi天线可以“穿透”相当长的距离,但为此,有必要建造一个其参数不比军用雷达站差多少的通信综合体。 而为了1,5-2小时的通信,构建这样的系统是没有意义的,因为在气球的高度,蜂窝通信必须稳定工作。

制定了这些“假设”后,这个项目不再显得不切实际,很快我们就开始同时在三个方向开展工作。

首先,我们求助于来自 近太空.ru,他一边向空中发射各种铁片一边吃掉了狗(随后进行了搜救)。

然后我们拿出了管理员床头柜上的 Raspberry Pi 3,并开始设置它。

云中的服务器:准备启动
连接相机:

云中的服务器:准备启动
我们在“Semyon”上进行了测试:

云中的服务器:准备启动
Semyon 作为模特和助理非常方便——他不会要食物,不会因为电话而分心,总是心情愉快,头盔上到处都是灿烂的笑容。 当然,我们在飞行中不需要这样的宇航服,但它可以在办公室中营造合适的氛围。

项目概要如下:

云中的服务器:准备启动
充电宝用于地面测试;发射时需要更可靠的东西。

也许最有趣的硬件是用于从所有传感器接收数据的板:

云中的服务器:准备启动
伙计们 近太空.ru 我们与各种类似物斗争了很长时间,然后我们自己制作了一个机载计算机,因为可靠性具有决定性的重要性,整个项目的命运取决于遥测数据。 板载计算机负责从所有连接的传感器接收数据并将其传输到 Raspberry Pi。

我们启动了它,配置了它,经过几周的编程和手鼓蹲下,我们成功地从广角相机中获取了遥测数据和 Semyon 的照片:

云中的服务器:准备启动
遥测数据以下列形式在一行中传输:

云中的服务器:准备启动
然后,此代码将字符串转换为数组并将数据输出到站点:

$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);

部分数据说明:

  • 编号:2432; — 数据包数量,一直在增加
  • 时间:40米39秒; — 飞控开机后的时间
  • MP阶段:0; — 飞行阶段(0—地面或1公里以下,1—上升,2—高空悬停,3—下降)
  • MP.Alt:54; —距海平面的气压高度(以米为单位)—应显示
  • MP.V速度:0.0; — 带中值滤波器的垂直速度(以米每秒为单位)
  • MP.AvgVSpeed:0.0; — 带平均滤波器的垂直速度(米每秒)
  • 巴罗出版社:1006.49; — 气压(毫巴)
  • 巴罗.Alt:54; - 根据气压计的海拔高度
  • 气压:36.99; - 气压计本身的温度
  • GPS坐标:N56d43m23s,E37d55m68s; — 当前坐标
  • GPS.Home:N56d43m23s,E37d55m68s; — 起点坐标
  • GPS.Alt:165; — GPS 高度(以米为单位)
  • GPS.Dst:10; — 距起点的距离(以米为单位)
  • DS.温度:[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 
)

如果蜂窝通信“掉线”怎么办? 对于本例,我们有第二张卡;将两张 SIM 卡插入调制解调器(一次一个插槽):

云中的服务器:准备启动
如果主通道突然停止响应,它可以自动切换到备用通道。

如果两个蜂窝网络都不可用,会发生什么情况?

云中的服务器:准备启动(男孩来自 《Yeralash》第45期 他读《概率论》不是没有缘由的)

在这种情况下,我们将拥有一个独立的 GPS 跟踪器,用于发送有关其位置的信号。 请注意,它不是通过蜂窝网络来实现这一点的,任何人都不能保证蜂窝网络的长距离可用性,而是通过卫星。

云中的服务器:准备启动
是的,GPS 追踪器比植入詹姆斯·邦德皮下的追踪器要大一些。 由于我们的比赛取决于飞行服务器的坐标,因此从主板收到的这部分数据将是最重要的。 但我们将在下一篇文章中讨论这个问题。 即将推出,请关注我们的博客!

我们非常相信整个企业的成功,以至于我们甚至宣布为那些突然想猜球会落在哪里的人举办一场竞赛。 详细信息在我们的 最新帖子.

来源: habr.com

添加评论