基于微信的远程天文台控制软件设计
和寿圣1,2, 王传军1,2, 范玉峰1,2, 余晓光1,2, 王德清1,2, 黄永萍1,2, 王建坤1     
1. 中国科学院云南天文台,云南 昆明 650216;
2. 中国科学院天体结构与演化重点实验室,云南 昆明 650216
摘要: 远程天文台(Remote Observatory, RO)具有观测效率高、运行成本低等优点,因此远程观测应用越来越广泛。5G网络技术的发展为利用手机等移动终端实现远程观测提供了可能,物联网(Internet of Things, IOT)和社交网络(Social Networks, SN)技术的进步也为其提供了数据传输、数据共享以及人性化操作的新途径。为实现云南天文台14英寸望远镜的远程观测,验证基于物联网和社交网络的远程天文台技术,自行设计研发了一套远程天文台控制软件,以微信聊天模式收发控制命令,以微信图片格式传输观测图像,以微信群组方式控制用户权限,实现了手机等移动终端基于微信的远程观测功能,为远程天文台控制软件设计及社交网络在天文观测中的应用提供了可借鉴的经验和方法。
关键词: 远程天文台    远程观测    社交网络    微信    
Design of Remote Observatory Control Software Based on WeChat
He Shousheng1,2, Wang Chuanjun1,2, Fan Yufeng1,2, Yu Xiaoguang1,2, Wang Deqing1,2, Huang Yongping1,2, Wang Jiankun1     
1. Yunnan Observatories, Chinese Academy of Sciences, Kunming 650216, China;
2. Key Laboratory for the Structure and Evolution of Celestial Objects, Chinese Academy of Sciences, Kunming 650216, China
Abstract: Remote observatory has the advantages of high observation efficiency and low operation cost. Therefore, remote observation has become more and more popular. The development of 5G network technology makes it possible to realize remote observation by using mobile terminals such as mobile phones, and the progress of Internet of Things(IoT) and social network technology also provides it with new ways of data transmission, data sharing and humanized operation. In order to realize the remote observation of the 14 inch telescope of Yunnan Observatories and verify the Remote Observatory technology based on the Internet of Things and social network, a remote Observatory Control Software is designed and developed. By sending and receiving control commands in WeChat chat mode, transmitting observation images in WeChat picture format, and controlling user permissions in WeChat group mode, the remote observation function of mobile terminals such as mobile phones based on WeChat is realized. It provides experience and methods for the design of remote Observatory Control Software and the application of social network in astronomical observation.
Key words: Remote Observatory    remote observation    social network    WeChat    

远程天文台是互联网和自动化技术高度发展的产物,具有观测效率高、运行成本低等优点。远程观测已成为天文观测的主流趋势,在天文研究、天文选址、科普教育等领域发挥了越来越重要的作用[1-3]

近年来5G网络技术的发展极大提高了移动网络质量,使基于手机等移动终端的远程观测成为可能。昆明理工大学云南省计算机技术应用重点实验室采用(Hyper Text Transfer Protocol, HTTP)协议与微信小程序进行JSON(JavaScript Object Notation)数据交互,实现了RTS2自主控制系统监测和控制[4]。业余天文界常用“向日葵”等远程桌面软件进行远程观测。受屏幕尺寸等因素限制,常规电脑远程观测模式在移动设备上使用极不方便,观测数据实时传输及共享等也有一定的局限性。物联网[5]和社交网络[6]技术的发展为远程观测提供了全新的机遇,借助这些技术进一步完善和提高远程观测的数据传输、数据共享以及人性化操作等功能。

为实现云南天文台14英寸望远镜的远程观测,同时验证基于物联网和社交网络的远程天文台技术,我们设计了一套基于微信的远程天文台控制软件,本文主要介绍其设计方法和实测结果。

1 系统结构

远程天文台控制软件系统结构如图 1,远程天文台服务器(Remote Observatory Server)为系统核心,与圆顶或平移顶(Dome/Roof)、望远镜(Telescope)、照相机(Camera)、滤光片(Filter)、调焦器(Focuser)、消旋器(Rotator)和台址监测系统(Observation conditions)等天文仪器设备共同组成远程天文台硬件系统。远程天文台控制软件部署于远程观测服务器,一方面负责控制天文仪器设备实现观测功能; 另一方面负责与观测终端交互实现远程服务。微信服务器(WeChat Server)为腾讯官方服务器,手机/平板/电脑(Mobile/Pad/PC)等观测终端与远程观测服务器之间通过微信客户端通信。

图 1 系统结构图 Fig. 1 System schematic

以微信为载体的远程控制通常采用公众号和小程序两种方案[7-8],公众号具有物联网专用方案即微信硬件平台,具有更多高级设备功能。公众号和小程序均有如下特点:首先,基于超时通信机制,由微信客户端主动访问远程服务器实现,实时性有所欠缺,如照相机曝光等较为耗时的操作需要采用Ajax轮询或者WebSocket技术; 其次,远程服务器对网络要求较高,通常需要固定网址(公网IP)或者通过独立服务器中转。针对上述特点,本文采用微信聊天模式开发远程天文台控制软件,相对于公众号和小程序,该模式支持双向通信,实时性较好,网络门槛较低。

2 软件设计

软件在Windows10操作系统下,采用C#语言面向对象编程开发。

2.1 软件结构

软件开发按4层结构展开,如图 2,从下往上分别为设备驱动层、基本控制层、高级控制层和界面层,按层编写类如表 1

图 2 软件层次 Fig. 2 Software level
表 1 Table 1 Class
Class Description
Dome Dome(Roof) control class
Telescope Telescope control class
Camera Camera control class
Filter Filter wheel control class
Focuser Focuser control class
Rotator Rotator control class
ObsCondition Observing conditions class
OCS Observatory control system class
LO Local observation class
WeChat WeChat remote observation class
AO Autonomous observation class
MainForm MainForm interface class
Fits Fits image file class

设备驱动层是天文仪器设备的驱动控制基础,由圆顶、望远镜、照相机、滤光片、调焦器、消旋器和台址监测系统等设备类构成,分别提供这些仪器设备的基本操作函数。设备驱动层支持天文公共对象模型(Astronomy Common Object Model, ASCOM)协议[9-10],同时支持基于串口和网络的自定义协议。

基本控制层实现观测控制系统的基本功能,OCS类直接调用设备驱动层的设备类基本函数,结合设备操作逻辑关系实现特定观测功能。如圆顶天窗开关操作必须考虑台址观测条件,圆顶随动依赖望远镜指向跟踪参数,照相机操作与圆顶、望远镜、滤光片和调焦器状态之间的相互关系等。

高级控制层实现观测控制系统的高级功能,结合本地观测需求、远程控制接口和自主观测算法等实现本地观测(LO)、远程观测(RO)和自主观测(AO),WeChat类是基于微信的远程观测实现。

界面层是软件系统的顶层框架,包括MainForm等多个窗口界面类,主要用于系统设置和观测控制等高级操作。除此之外,软件系统包含观测图像的生成、存储和显示的FITS(Flexible Image Transport System)图像类等其他功能。

2.2 远程接口

远程观测功能以微信电脑版为载体进行开发,以微信聊天模式收发控制命令,以微信图片格式传输观测图像,以微信群组方式控制用户权限。微信控制接口采用第三方开源代码wechat-bot(https://github.com/cixingguangming55555/wechat-bot)。

远程观测流程如图 3。系统首先根据台址监测数据判断观测条件,具备观测条件则轮询读取微信消息; 然后判断消息发送者是否为授权用户(即是否具备控制权限),若用户具备控制权限,则处理命令并进行相应的观测控制操作如目标指向、相机曝光及各种设备控制; 相机曝光命令完成操作后主动发送观测图片给相应的微信用户。

图 3 远程观测流程图 Fig. 3 Flow chart of remote observation

远程控制基本命令如表 2。最简单的远程观测步骤:首先用dome open命令打开圆顶天窗(或平移顶),dome track命令设置圆顶随动; 然后以goto命令驱动望远镜指向目标; 望远镜处于跟踪状态后以expose命令(包含filter参数)曝光获取观测图像,如需调焦则用focuser命令; 观测结束用dome close命令关闭圆顶,park命令使望远镜停止。如需查看当前观测条件,以state obsc命令获取台址信息。

表 2 基本命令 Table 2 Basic command
Command Description
Dome o Dome operation: o-open/close/track/stop/park
Goto ra dec Goto target: ra-RightAscension, dec-Declination
Park Park telescope
Expose F [t] [f] Expose: f-light/dark/bias/flat/abort, t-expose time, f-filter wheel name
Filter f Set filter wheel: f-filter name/number
Focuser n Set focuser steps: n-focuser steps
Rotator n Set rotator angle: n-rotator angle
State d Get device state: d-tele/came/filt/focu/rota/obsc

用户权限控制是远程观测的安全保障,本系统采用微信群组分组控制实现基本用户权限控制,将待观测用户或者群组加入控制用户列表,系统自动过滤非控制用户列表的用户信息。高级权限控制功能可以结合观测时间、操作功能(如观测控制、数据操作等)和用户群组等因素进行精准分配控制用户权限,本文不再讨论。

2.3 实测情况

我们在云南天文台14英寸RC望远镜上,以NGC 6530为观测目标,B波段曝光600 s进行软件测试。图 4为远程观测服务器本地观测界面,上方为远程天文台控制软件主界面,左下方为电脑版微信客户端远程观测界面,右下方为远程天文台控制软件的界面。图 5为基于手机微信的远程观测界面。系统运行时先用远程天文台管理员微信账号登录电脑版微信客户端,远程天文台控制软件连接微信客户端并选择相应用户或者群组分配控制权限后自动进入远程观测模式。本文以群组观测为例,观测员以命令行方式进行远程观测操作,管理员负责命令处理及设备控制,观测完成后自动发送观测图像至观测群。实测结果表明,该远程天文台控制软件工作正常,满足软件设计的基本要求。

图 4 本地观测界面 Fig. 4 Interface of local observation
图 5 远程观测界面 Fig. 5 Interface of remote observation
3 总结

与微信公众号和小程序模式相比,微信聊天模式实现远程控制有如下优势:(1)实时性较好,易于实现,无需采用Ajax,WebSocket等技术; (2)网络门槛较低,无需公网IP,微信聊天便可以开展远程控制; (3)数据传输共享更方便,以微信聊天模式传输观测图像,方便观测人员共享数据; (4)远程观测同时在观测群进行正常语音文字沟通交流,可以及时评估和调整观测方案等。但该模式同时也存在以下不足:(1)以命令行模式操作,没有图形操作界面,必须熟悉操作命令,用户门槛相对较高; (2)由于电脑版微信客户端采用扫码登录机制,远程观测服务器开机或者重启时需要借助远程桌面软件或者专门编写代码发送二维码至远程终端才能实现远程登录。

总体来说,本文设计研发了一套基于微信的远程天文台控制软件,并在云南天文台14英寸望远镜上进行相关测试,达到了基于物联网和社交网络的远程天文台技术验证的目的,为远程天文台控制软件设计及社交网络在天文观测中的应用提供了可借鉴的经验和方法。远程天文台控制软件是复杂的系统软件工程,本设计仅实现了部分基本功能和方法,在下一步工作中,仍需不断改进和完善。

参考文献
[1] 王川中, 苏丽颖, 韩军, 等. 远程天文台电源集成控制与监控模块的设计与实现[J]. 天文研究与技术, 2020, 17(1): 104–110
WANG C Z, SU L Y, HAN J, et al. Design and realization of remote observatory power integrated control and monitoring module[J]. Astronomical Research & Technology, 2020, 17(1): 104–110.
[2] 卫守林, 曹子皇, 王锋, 等. 基于WebSocket的RTS2 Web控制研究[J]. 天文研究与技术, 2014, 11(4): 404–409
WEI S L, CAO Z H, WANG F, et al. A study of Web control of an RTS2 system based on the WebSocket[J]. Astronomical Research & Technology, 2014, 11(4): 404–409. DOI: 10.3969/j.issn.1672-7673.2014.04.011
[3] 冉凡辉, 邓辉, 梁波, 等. 基于XML-RPC的RTS2自主观测系统远程访问技术[J]. 天文研究与技术, 2013, 10(4): 372–377
RAN F H, DENG H, LIANG B, et al. A study of remote access techniques for an RTS2 autonomous observation software system based on the XML-RPC[J]. Astronomical Research & Technology, 2013, 10(4): 372–377. DOI: 10.3969/j.issn.1672-7673.2013.04.007
[4] 梁波, 田智雁, 王锋, 等. 一种基于微信小程序在RTS2的控制框架扩展[J]. 天文研究与技术, 2018, 15(2): 202–207
LIANG B, TIAN Z Y, WANG F, et al. A control framework for RTS2 based on the WeChat micro-program[J]. Astronomical Research & Technology, 2018, 15(2): 202–207.
[5] 林轶琦, 李磊, 江崟, 等. 物联网技术在深圳西涌天文-气象综合探测基地管理中的应用[J]. 科技创新导报, 2015, 12(25): 8–11
LIN Y Q, LI L, JIANG Y, et al. The application of the internet of thing techniques on the management of the Shenzhen Xichong astronomy and meteorology comprehensive exploration base[J]. Science and Technology Innovation Herald, 2015, 12(25): 8–11. DOI: 10.3969/j.issn.1674-098X.2015.25.005
[6] ZHANG J J, DUAN Q S, SHANG R, et al. iGreenhouse: a case study for connecting physical devices into mobile social networks[J]. International Journal of Smart Home, 2015, 9: 163–172.
[7] 肖奇军, 伍世豪, 郑杰东, 等. 基于微信公众号的智能家居系统[J]. 机电工程技术, 2020, 49(11): 58–60
XIAO Q J, WU S H, ZHEN J D, et al. Smart home system based on public account of WeChat[J]. Mechanical & Electrical Engineering Technology, 2020, 49(11): 58–60. DOI: 10.3969/j.issn.1009-9492.2020.11.016
[8] 冯拔, 李熙, 唐剑, 等. 基于微信小程序的纯电动客车远程控制平台的设计与实现[J]. 新型工业化, 2020, 10(4): 98–103
FENG B, LI X, TANG J, et al. Design and implementation of remote control platform for pure electric bus based on WeChat program[J]. Journal of New Industrialization, 2020, 10(4): 98–103.
[9] 张冠军, 宋腾飞, 程向明, 等. 基于ASCOM及PLC的随动天文圆顶控制[J]. 天文研究与技术, 2020, 17(4): 548–554
ZHANG G J, SONG T F, CHENG X M, et al. Automatic control of astronomical dome based on ASCOM and PLC[J]. Astronomical Research & Technology, 2020, 17(4): 548–554. DOI: 10.3969/j.issn.1672-7673.2020.04.016
[10] 彭亚杰, 季凯帆, 梁波, 等. ASCOM在选址望远镜远程控制中的可用性研究[J]. 天文研究与技术, 2013, 10(1): 49–54
PENG Y J, JI K F, LIANG B, et al. The usability of the ASCOM in remote control of a site-survey telescope[J]. Astronomical Research & Technology, 2013, 10(1): 49–54.
由中国科学院国家天文台主办。
0

文章信息

和寿圣, 王传军, 范玉峰, 余晓光, 王德清, 黄永萍, 王建坤
He Shousheng, Wang Chuanjun, Fan Yufeng, Yu Xiaoguang, Wang Deqing, Huang Yongping, Wang Jiankun
基于微信的远程天文台控制软件设计
Design of Remote Observatory Control Software Based on WeChat
天文研究与技术, 2022, 19(5): 518-523.
Astronomical Research and Technology, 2022, 19(5): 518-523.
收稿日期: 2021-09-06
修订日期: 2021-10-05

工作空间