IoT: FIWARE+Docker 城市天气信息收集与可视化( 一)

本文介绍了利用FIWARE平台和Docker部署FIWARE组件,包括mosquitto、mongo、Orion和IoT Agent,以实现城市天气信息的收集和通过FreeBoard进行可视化展示。作者详细描述了Docker容器的部署过程,并提到获取城市天气和空气质量信息的API使用。
摘要由CSDN通过智能技术生成

前言

最近因为实习的原因一直在研究FIWARE,虽然只是做了一点微小的工作,但也足够让我褪层皮。

FIWARE来源于欧盟推出的”FIWARE加速器计划”,整个项目的内容很庞大,国内虽然也曾有过相应的报道,还是个商务部发布的红头消息,但是并没有引起相应也没有引起关注。直接导致我在研究这玩意儿的时候只能去看它的官方文档,中间还踩了好多坑(官方挖坑,最为致命),这段不提也罢。

我所应用的FIWARE部分的基本功能是用来收集、传送、储存、处理信息。这些信息可以来自互联网,也可以来自实地传感器,或者作为发送到动作器的命令。这也是为什么题目里有个IoT(Internet of Things), 物联网的原因。这些已经收集、储存的信息可以通过其特有的NGSI协议来查看,也可以通过FreeBoard将其可视化。

在此我将利用FIWARE平台,实现一个储存并集中展示城市天气信息的小应用。能够实现类似功能的工具有很多,但这一个“舶来品”在国内的网络上却并没有能用的资料,希望这篇文章能够作为他山之石。

这一系列工作比较多,篇幅会比较长,所以会分成好几篇(预计3篇)。本篇将讲述如何用Docker容器部署FIWARE组件,以及获取城市的天气、空气质量信息。

最终结果展示:

最终结果

准备工作

编程语言:python3.6 : 没有原因,只是我习惯了
系统:Ubuntu : 不要是老古董的version就行
Docker : 在本地安装FIWARE全家桶是一件比较麻烦的事,所幸在DockerHub上有现成的镜像,pull下来后稍作配置即可使用。所以需要事先安装一个Docker Engine。Docker的使用方法在此不做说明,网上资料一大堆。
FreeBoard:可视化数据

利用Docker 完成所需的FIWARE组件部署

实现本文的既定目标需要4个模块:Mosquitto, MongoDB, IoTAgent, Orion

mosquitto

在FIWARE中传输信息可以用HTTP的方式,也可以用MQTT的方式,我采用的是后者。维基百科对MQTT的解释:

MQTT[1] (MQ Telemetry Transport or Message Queue Telemetry Transport) is an ISO standard (ISO/IEC PRF 20922)[2] publish-subscribe-based “lightweight” messaging protocol for use on top of the TCP/IP protocol. It is designed for connections with remote locations where a “small code footprint” is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker. The broker is responsible for distributing messages to interested clients based on the topic of a message. Andy Stanford-Clark and Arlen Nipper of Cirrus Link authored the first version of the protocol in 1999.[3]

简而言之,MQTT就是一个轻量级的基于“订阅-推送”结构的传输协议,其特点便是lightweight。在此处应用它的原因便是其轻便的特性,数据传输的压力会比HTTP要小。

MQTT只是一套协议,要实际在计算机上使用这套协议传输信息需要安装对应的工具。最为常见的就是mosquitto

Eclipse Mosquitto™ is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for “Internet of Things” messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino.

基本上mosquitto官网的解释和MQTT的解释没差多少、
然而本文并不在原理上进行阐述(其实也讲不出来,怕被喷),着重在于使用的方法论上。

直接上命令:

下载Docker镜像

sudo docker pull toke/mosquitto

然后去GitHub这个镜像的项目上下载config/mosquitto.conf文件,之后有用。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值